Fawkes API  Fawkes Development Version
fawkes::ConfigurableAspect Class Reference

Thread aspect to access configuration data. More...

#include <>>

Inherits fawkes::Aspect.

Inherited by AmclROSThread, AmclThread, BallPosLogThread, BBLoggerThread, BBLogReplayThread, BlackBoardSynchronizationThread, Bumblebee2Thread, ClipsAgentThread, ClipsNavGraphThread, ClipsProtobufThread, ClipsROSThread, ClipsTFThread, CLIPSThread, ClipsWebviewThread, ColliActThread, ColliThread, DepthcamSimThread, DirectRobotinoComThread, DynamixelActThread, DynamixelDriverThread, DynamixelSensorThread, EclipseAgentThread, FestivalSynthThread, FliteSynthThread, FountainThread, FvBaseThread, FvRetrieverThread, FvSrSavePipelineThread, GazeboNodeThread, GazsimCommThread, GazsimTimesourceThread, GossipThread, IMUAcquisitionThread, IMUSensorThread, JacoActThread, JacoBimanualActThread, JacoBimanualGotoThread, JacoGotoThread, JacoInfoThread, JacoOpenraveBaseThread, JoystickAcquisitionThread, JoystickActThread, JoystickSensorThread, JoystickTeleOpThread, KatanaActThread, KatanaSensorThread, LaserAcquisitionThread, LaserClusterThread, LaserFilterThread, LaserLinesThread, LaserSensorThread, LaserSimThread, LocalizationSimThread, LuaAgentContinuousExecutionThread, LuaAgentPeriodicExecutionThread, MapLaserGenThread, MongoDBThread, MongoLogBlackboardThread, MongoLogImagesThread, MongoLogLoggerThread, MongoLogPointCloudThread, MongoLogTransformsThread, MongoRRDThread, NaoQiBrokerThread, NaoQiButtonThread, NaoQiDCMThread, NaoQiLedThread, NaoQiMotionThread, NaoQiSpeechSynthThread, NavGraphClustersThread, NavGraphGeneratorThread, NavGraphGeneratorVisualizationThread, NavGraphInteractiveThread, NavGraphROSPubThread, NavGraphStaticConstraintsThread, NavGraphThread, NavGraphVisualizationThread, OpenNiContextThread, OpenNiDepthThread, OpenNiHandTrackerThread, OpenNiImageThread, OpenNiPclOnlyThread, OpenNiPointCloudThread, OpenNiUserTrackerThread, OpenPRSAgentThread, OpenPRSThread, OpenRaveMessageHandlerThread, OpenRaveThread, OpenRobotinoComThread, PanTiltActThread, PanTiltSensorThread, PlayerClientThread, PointCloudDBMergeThread, PointCloudDBRetrieveThread, PointCloudDBROSCommThread, PointCloudDBStoreThread, ProcRRDThread, RefBoxCommThread, RobotinoActThread, RobotinoIrPclThread, RobotinoSensorThread, RobotinoSimThread, RobotStatePublisherThread, Roomba500Thread, RoombaJoystickThread, RosClockThread, ROSCmdVelThread, RosImagesThread, RosLaserScanThread, RosMoveBaseThread, RosNavgraphBreakoutThread, RosNavigatorThread, ROSNodeThread, ROSOdometryThread, RosPointCloudThread, RosPosition3DThread, ROSRobotDescriptionThread, RosSkillerThread, ROSTalkerPubThread, RosTfThread, ROSWebviewThread, RRDThread, RRDWebThread, SkillerExecutionThread, SkillerNavGraphFeature, StaticTransformsThread, TabletopObjectsThread, TabletopVisualizationThread, TfExampleThread, TimeTrackerMainLoopThread, VisLocalizationThread, WebcamSimThread, WebviewPtzCamThread, WebviewThread, XabslEngineThread, and XmlRpcThread.

Public Member Functions

 ConfigurableAspect ()
 Constructor. More...
 
virtual ~ConfigurableAspect ()
 Virtual empty Destructor. More...
 
void init_ConfigurableAspect (Configuration *config)
 Set the configuration It is guaranteed that this is called for a configurable thread before Thread::start() is called (when running regularly inside Fawkes). More...
 
- Public Member Functions inherited from fawkes::Aspect
const std::list< const char * > & get_aspects () const
 Get list of aspect names attached to a aspected thread. More...
 

Protected Attributes

Configurationconfig
 This is the Configuration member used to access the configuration. More...
 

Additional Inherited Members

- Protected Member Functions inherited from fawkes::Aspect
void add_aspect (const char *name)
 Add an aspect to a thread. More...
 

Detailed Description

Thread aspect to access configuration data.

Give this aspect to your thread to gain access to the configuration. This aspects defines a thread as being configurable. It is guaranteed that if used properly from within plugins that setConfiguration() is called before the thread is started and that you can access the configuration via the config member.

It is higly recommended to also implement ConfigurationChangeHandler to get notified about configuration changes as soon as they happen. All threads which are configurable shall react immediately to config changes and use the new configuration. Therefore all inner structures shall be updated as necessary and member reinitialized if needed. Only this way no restart or at least plugin load/unload cycle is needed anymore to change the configuration. This should tremendously help to decrease debugging, testing and parameter tuning time!

Author
Tim Niemueller

Definition at line 35 of file configurable.h.

Constructor & Destructor Documentation

◆ ConfigurableAspect()

fawkes::ConfigurableAspect::ConfigurableAspect ( )

Constructor.

Definition at line 60 of file configurable.cpp.

References fawkes::Aspect::add_aspect().

◆ ~ConfigurableAspect()

fawkes::ConfigurableAspect::~ConfigurableAspect ( )
virtual

Virtual empty Destructor.

Definition at line 66 of file configurable.cpp.

Member Function Documentation

◆ init_ConfigurableAspect()

void fawkes::ConfigurableAspect::init_ConfigurableAspect ( Configuration config)

Set the configuration It is guaranteed that this is called for a configurable thread before Thread::start() is called (when running regularly inside Fawkes).

Parameters
configConfiguration instance to use.

Definition at line 77 of file configurable.cpp.

References config.

Referenced by fawkes::ConfigurableAspectIniFin::init().

Member Data Documentation

◆ config

Configuration * fawkes::ConfigurableAspect::config
protected

This is the Configuration member used to access the configuration.

The configuration will remain valid for the whole lifetime of the thread.

Definition at line 44 of file configurable.h.

Referenced by MongoDBThread::delete_client(), ProcRRDThread::finalize(), MongoRRDThread::finalize(), PanTiltSonyEviD100PThread::finalize(), StaticTransformsThread::finalize(), SickTiM55xEthernetAcquisitionThread::init(), SickTiM55xUSBAcquisitionThread::init(), LaseEdlAcquisitionThread::init(), OpenPRSAgentThread::init(), NavGraphGeneratorVisualizationThread::init(), GossipThread::init(), BallPosLogThread::init(), JacoActThread::init(), HokuyoUrgAcquisitionThread::init(), RosClockThread::init(), NavGraphVisualizationThread::init(), RRDThread::init(), ProcRRDThread::init(), RoombaJoystickThread::init(), TimeTrackerMainLoopThread::init(), ROSCmdVelThread::init(), ROSOdometryThread::init(), NavGraphStaticConstraintsThread::init(), ClipsProtobufThread::init(), JoystickTeleOpThread::init(), CruizCoreXG1010AcquisitionThread::init(), TabletopVisualizationThread::init(), IMUSensorThread::init(), FountainThread::init(), EclipseAgentThread::init(), FestivalSynthThread::init(), HokuyoUrgGbxAcquisitionThread::init(), MongoRRDThread::init(), RosNavgraphBreakoutThread::init(), PanTiltDirectedPerceptionThread::init(), StaticTransformsThread::init(), WebviewPtzCamThread::init(), MongoLogLoggerThread::init(), PanTiltSonyEviD100PThread::init(), LaserSensorThread::init(), RobotinoIrPclThread::init(), FliteSynthThread::init(), MongoDBThread::init(), JoystickAcquisitionThread::init(), MongoLogBlackboardThread::init(), MongoLogTransformsThread::init(), MapLaserGenThread::init(), ROSNodeThread::init(), IMUAcquisitionThread::init(), OpenNiHandTrackerThread::init(), PointCloudDBStoreThread::init(), DirectRobotinoComThread::init(), RosPosition3DThread::init(), LaserSimThread::init(), WebcamSimThread::init(), GazeboNodeThread::init(), NavGraphGeneratorThread::init(), BlackBoardSynchronizationThread::init(), FvRetrieverThread::init(), RefBoxCommThread::init(), Roomba500Thread::init(), OpenNiContextThread::init(), RobotinoSensorThread::init(), DepthcamSimThread::init(), LocalizationSimThread::init(), VisLocalizationThread::init(), NaoQiLedThread::init(), CLIPSThread::init(), ClipsAgentThread::init(), OpenNiImageThread::init(), OpenNiPclOnlyThread::init(), OpenPRSThread::init(), PointCloudDBRetrieveThread::init(), OpenNiDepthThread::init(), ColliActThread::init(), LaserFilterThread::init(), RosMoveBaseThread::init(), RobotinoActThread::init(), NaoQiButtonThread::init(), RosPointCloudThread::init(), OpenNiUserTrackerThread::init(), PanTiltRX28Thread::init(), XmlRpcThread::init(), PointCloudDBMergeThread::init(), NavGraphClustersThread::init(), DynamixelDriverThread::init(), PointCloudDBROSCommThread::init(), LaserClusterThread::init(), MongoLogImagesThread::init(), RosTfThread::init(), LuaAgentPeriodicExecutionThread::init(), JacoOpenraveBaseThread::init(), RobotinoSimThread::init(), NavGraphThread::init(), LuaAgentContinuousExecutionThread::init(), MongoLogPointCloudThread::init(), PlayerClientThread::init(), ColliThread::init(), Bumblebee2Thread::init(), SkillerExecutionThread::init(), OpenNiPointCloudThread::init(), KatanaActThread::init(), NavGraphInteractiveThread::init(), LaserLinesThread::init(), OpenRobotinoComThread::init(), WebviewThread::init(), RobotStatePublisherThread::init(), TabletopObjectsThread::init(), init_ConfigurableAspect(), JacoBimanualOpenraveThread::JacoBimanualOpenraveThread(), JacoOpenraveThread::JacoOpenraveThread(), RoombaJoystickThread::loop(), NavGraphGeneratorThread::loop(), BlackBoardSynchronizationThread::loop(), ColliThread::loop(), SickTiM55xCommonAcquisitionThread::read_common_config(), and LaserFilterThread::wait_done().


The documentation for this class was generated from the following files: