|
| | mtsTaskContinuous (const std::string &name, unsigned int sizeStateTable=256, bool newThread=true) |
| | mtsTaskContinuous (const mtsTaskContinuousConstructorArg &arg) |
| virtual | ~mtsTaskContinuous () |
| void | Create (void *data=0) override |
| void | Start (void) override |
| void | Suspend (void) override |
| void | Kill (void) override |
| virtual bool | CreatesThread (void) const |
| | mtsTask (const std::string &name, unsigned int sizeStateTable=256) |
| virtual | ~mtsTask () |
| virtual void | OnStartupException (const std::exception &excp) |
| virtual void | Run (void)=0 |
| virtual void | OnRunException (const std::exception &excp) |
| void | Configure (const std::string &CMN_UNUSED(filename)="") override |
| void | SetInitializationDelay (double delay) |
| void | Create (void) override |
| double | GetAveragePeriod (void) const |
| const std::string | GetDefaultStateTableName (void) const |
| mtsStateTable * | GetDefaultStateTable (void) |
| mtsInterfaceRequired * | AddInterfaceRequiredWithoutSystemEventHandlers (const std::string &interfaceRequiredName, mtsRequiredType required=MTS_REQUIRED) override |
| mtsInterfaceProvided * | AddInterfaceProvidedWithoutSystemEvents (const std::string &newInterfaceName, mtsInterfaceQueueingPolicy queueingPolicy=MTS_COMPONENT_POLICY) override |
| virtual bool | WaitToStart (double timeout) |
| virtual bool | WaitToTerminate (double timeout) |
| virtual void | WaitForWakeup (void) |
| virtual void | Wakeup (void) |
| void | ProcessManagerCommandsIfNotActive () |
| bool | CheckForOwnThread (void) const |
| virtual bool | IsPeriodic (void) const |
| virtual bool | IsOverranPeriod (void) const |
| virtual void | ResetOverranPeriod (void) |
| | mtsComponent (const std::string &deviceName) |
| virtual | ~mtsComponent () |
| const std::string & | GetName (void) const |
| void | GetName (std::string &placeHolder) const |
| void | AddTag (const std::string &tag) |
| const std::set< std::string > & | GetTags (void) const |
| void | SetName (const std::string &componentName) |
| virtual void | Configure (const std::string &filename="") |
| bool | CreateAndWait (double timeoutInSeconds) |
| bool | StartAndWait (double timeoutInSeconds) |
| bool | KillAndWait (double timeoutInSeconds) |
| virtual void | Startup (void) |
| virtual void | Cleanup (void) |
| mtsInterfaceProvided * | AddInterfaceProvided (const std::string &interfaceProvidedName, mtsInterfaceQueueingPolicy queueingPolicy=MTS_COMPONENT_POLICY) |
| CISST_DEPRECATED mtsInterfaceProvided * | AddProvidedInterface (const std::string &interfaceProvidedName) |
| virtual mtsInterfaceOutput * | AddInterfaceOutput (const std::string &interfaceOutputName) |
| std::vector< std::string > | GetNamesOfInterfacesProvidedOrOutput (void) const |
| std::vector< std::string > | GetNamesOfInterfacesProvided (void) const |
| std::vector< std::string > | GetNamesOfInterfacesOutput (void) const |
| bool | InterfaceExists (const std::string &interfaceName, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_VERBOSE) const |
| bool | InterfaceProvidedOrOutputExists (const std::string &interfaceName, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_VERBOSE) const |
| bool | InterfaceRequiredOrInputExists (const std::string &interfaceName, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_VERBOSE) const |
| mtsInterfaceProvided * | GetInterfaceProvided (const std::string &interfaceProvidedName) const |
| mtsInterfaceOutput * | GetInterfaceOutput (const std::string &interfaceOutputName) const |
| size_t | GetNumberOfInterfacesProvided (void) const |
| size_t | GetNumberOfInterfacesOutput (void) const |
| bool | RemoveInterfaceProvided (const std::string &interfaceProvidedName) |
| mtsInterfaceRequired * | AddInterfaceRequired (const std::string &interfaceRequiredName, mtsRequiredType isRequired=MTS_REQUIRED) |
| CISST_DEPRECATED mtsInterfaceRequired * | AddRequiredInterface (const std::string &requiredInterfaceName) |
| virtual mtsInterfaceInput * | AddInterfaceInput (const std::string &interfaceInputName) |
| std::vector< std::string > | GetNamesOfInterfacesRequiredOrInput (void) const |
| std::vector< std::string > | GetNamesOfInterfacesRequired (void) const |
| std::vector< std::string > | GetNamesOfInterfacesInput (void) const |
| const mtsInterfaceProvided * | GetInterfaceProvidedFor (const std::string &interfaceRequiredName) |
| mtsInterfaceRequired * | GetInterfaceRequired (const std::string &interfaceRequiredName) |
| mtsInterfaceInput * | GetInterfaceInput (const std::string &interfaceInputName) const |
| size_t | GetNumberOfInterfacesRequired (void) const |
| size_t | GetNumberOfInterfacesInput (void) const |
| bool | RemoveInterfaceRequired (const std::string &interfaceRequiredName) |
| mtsStateTable * | GetStateTable (const std::string &stateTableName) |
| bool | AddStateTable (mtsStateTable *existingStateTable, bool addInterfaceProvided=true) |
| void | UseSeparateLogFileDefault (bool forwardToLogger=true) |
| void | UseSeparateLogFileDefaultWithDate (bool forwardToLogger=true) |
| void | UseSeparateLogFile (const std::string &filename, bool forwardToLogger=true) |
| cmnLogger::StreamBufType * | GetLogMultiplexer (void) const override |
| bool | AreAllInterfacesRequiredConnected (const bool log=false) |
| bool | IsRunning (void) const |
| bool CISST_DEPRECATED | Running (void) const |
| bool | IsStarted (void) const |
| bool | IsTerminated (void) const |
| bool | IsEndTask (void) const |
| const mtsComponentState & | GetState (void) const |
| void | GetState (mtsComponentState &state) const |
| void | ToStream (std::ostream &outputStream) const override |
| bool | SetReplayMode (void) |
| bool | SetReplayData (const std::string &stateTableName, const std::string &fileName) |
| bool | SetReplayTime (const double time) |
| virtual | ~cmnGenericObject (void) |
| virtual const cmnClassServicesBase * | Services (void) const =0 |
| bool | ReconstructFrom (const cmnGenericObject &other) |
| std::string | ToString (void) const |
| virtual void | ToStreamRaw (std::ostream &outputStream, const char delimiter=' ', bool headerOnly=false, const std::string &headerPrefix="") const |
| virtual bool | FromStreamRaw (std::istream &inputStream, const char delimiter=' ') |
| virtual void | SerializeRaw (std::ostream &outputStream) const |
| virtual void | DeSerializeRaw (std::istream &inputStream) |
| virtual size_t | ScalarNumber (void) const |
| virtual bool | ScalarNumberIsFixed (void) const |
| virtual double | Scalar (const size_t CMN_UNUSED(index)) const CISST_THROW(std |
| virtual std::string | ScalarDescription (const size_t CMN_UNUSED(index), const std::string &CMN_UNUSED(userDescription)) const |
|
| void * | RunInternal (void *argument) override |
| virtual void | StartInternal (void) |
| virtual const mtsManagerComponentServices * | GetManagerComponentServices (void) const override |
| void | RunEventHandler (void) |
| void | ChangeStateEventHandler (const mtsComponentState &newState) |
| mtsExecutionResult | RunEvent (bool check=true) |
| void | DoRunInternal (void) |
| virtual void | StartupInternal (void) |
| virtual void | CleanupInternal (void) |
| void | Sleep (double timeInSeconds) |
| mtsStateIndex::TimeTicksType | GetTick (void) const |
| virtual void | SaveThreadStartData (void *data) |
| virtual void | SetThreadReturnValue (void *returnValue) |
| void | ChangeState (mtsComponentState::Enum newState) |
| bool | WaitForState (mtsComponentState desiredState, double timeout) override |
| | mtsComponent (void) |
| | mtsComponent (const mtsComponent &other) |
| void | Initialize (void) |
| mtsInterfaceRequired * | AddInterfaceRequiredExisting (const std::string &interfaceRequiredName, mtsInterfaceRequired *interfaceRequired) |
| mtsInterfaceRequired * | AddInterfaceRequiredUsingMailbox (const std::string &interfaceRequiredName, mtsMailBox *mailBox, mtsRequiredType required) |
| mtsInterfaceProvided * | AddInterfaceProvidedUsingMailbox (const std::string &interfaceProvidedName, mtsMailBox *mailBox) |
| mtsInterfaceInput * | AddInterfaceInputExisting (const std::string &interfaceInputName, mtsInterfaceInput *interfaceInput) |
| mtsInterfaceOutput * | AddInterfaceOutputExisting (const std::string &interfaceOutputName, mtsInterfaceOutput *interfaceOutput) |
| void | KillSeparateLogFile (void) |
| size_t | ProcessMailBoxes (InterfacesProvidedMapType &interfaces) |
| size_t | ProcessQueuedCommands (void) |
| size_t | ProcessQueuedEvents (void) |
| mtsInterfaceRequired * | EnableDynamicComponentManagement (void) |
| | Enable support for dynamic component management services.
|
| bool | AddInterfaceInternal (const bool useMangerComponentServices=false) |
| | Add internal interfaces.
|
| void | InterfaceInternalCommands_GetEndUserInterface (const mtsEndUserInterfaceArg &argin, mtsEndUserInterfaceArg &argout) |
| void | InterfaceInternalCommands_AddObserverList (const mtsEventHandlerList &argin, mtsEventHandlerList &argout) |
| void | InterfaceInternalCommands_RemoveEndUserInterface (const mtsEndUserInterfaceArg &argin, mtsEndUserInterfaceArg &argout) |
| void | InterfaceInternalCommands_RemoveObserverList (const mtsEventHandlerList &argin, mtsEventHandlerList &argout) |
This class inherits from mtsTask and provides the base for implementing continuous loops, where the user-supplied Run method is repeatedly invoked. It also introduces the possibility to create a new thread or to use an existing thread for the task.
| mtsTaskContinuous::mtsTaskContinuous |
( |
const std::string & | name, |
|
|
unsigned int | sizeStateTable = 256, |
|
|
bool | newThread = true ) |
Create a task with name 'name' that has a state table of the specified size.
- Parameters
-
| name | The name of the task |
| sizeStateTable | The history size of the state table |
| newThread | True if a new thread should be created for this task |
- Note
- See note in mtsTask regarding length of string name.
If newThread is false, the task will not create a new thread, but will rather "capture" an existing thread. This is done as follows:
1) Call mtsTaskContinuous::Create from the thread to be captured. The class will get the thread id for the current thread and use it to initialize all interfaces in mtsTask::StartupInternal. Once this is done, Create returns to the calling thread.
2) Call mtsTaskContinuous::Start from the thread to be captured. This function captures the thread, and uses it to call the mtsTask::Run method. It does not return until the task is terminated.
Other tasks can use mtsTask::Suspend and mtsTask::Start to suspend and resume this task, or mtsTask::Kill to terminate it. In other words, once started the task should behave the same regardless of whether or not a new thread was created.
Note that mtsTaskFromCallback provides another mechanism for using an existing thread. In that case, the task does not capture the thread, but just registers itself as a callback.
- See also
- mtsTask, mtsTaskPeriodic, mtsTaskFromSignal, mtsTaskFromCallback