Fawkes API  Fawkes Development Version
Fawkes Thread Aspects

This group contains the aspects that a thread loaded and run by Fawkes may have. More...

Classes

class  fawkes::BlackBoardAspect
 Thread aspect to access to BlackBoard. More...
class  fawkes::BlockedTimingAspect
 Thread aspect to use blocked timing The Fawkes main application provides basic means to synchronize all running thread with respect to several given hooks (see WakeupHook). More...
class  fawkes::ClockAspect
 Thread aspect that allows to obtain the current time from the clock. More...
class  fawkes::ConfigurableAspect
 Thread aspect to access configuration data. More...
class  fawkes::FawkesNetworkAspect
 Thread aspect to participate in the Fawkes Network protocol. More...
class  fawkes::LoggerAspect
 Thread aspect that allows to provide a logger to Fawkes. More...
class  fawkes::LoggingAspect
 Thread aspect to log output. More...
class  fawkes::MainLoopAspect
 Thread aspect that allows to replace the main loop of the main application of Fawkes. More...
class  fawkes::NetworkAspect
 Thread aspect for network communication. More...
class  fawkes::PluginDirectorAspect
 Thread aspect to access the PluginManager. More...
class  fawkes::ThreadProducerAspect
 Aspect for thread producing threads. More...
class  fawkes::TimeSourceAspect
 Thread aspect that allows to provide a time source to the Fawkes clock. More...
class  fawkes::VisionAspect
 Thread aspect to use in FireVision apps. More...
class  fawkes::VisionMasterAspect
 Vision Master Aspect. More...

Detailed Description

This group contains the aspects that a thread loaded and run by Fawkes may have.

Aspects are used in Fawkes to assign specific capabilities to a thread or to indicate certain needs a thread has.

Aspects are in general really simple classes that provide some very sharp defined functionality. In most cases they require a special init method to be called by an initializer to set a specific member that provides the thread with extended functionality.

Aspects are also used to provide certain guarantees to a thread. The thread may fully rely on these guarantees and does not have to do any checks by itself to ensure this guarantees. If the thread crashes because one of the guarantees was not met it is a bug from the surrounding framework which has to be fixed there.

The most important guarantee given for aspects that either ALL aspects have been properly initialized or the thread is never started. That means iff the thread is running all aspects have been initialized properly.

Another guarantee is that the aspect is available during the complete lifetime of the thread.