113 void RunEventHandler(
void);
136 virtual void * RunInternal(
void * argument) = 0;
140 void DoRunInternal(
void);
144 virtual void StartupInternal(
void);
148 virtual void CleanupInternal(
void);
155 void Sleep(
double timeInSeconds);
163 virtual void SaveThreadStartData(
void * data);
165 virtual void SetThreadReturnValue(
void * returnValue);
194 mtsTask(
const std::string & name,
195 unsigned int sizeStateTable = 256);
206 virtual void OnStartupException(
const std::exception &excp);
210 virtual void Run(
void) = 0;
214 virtual void OnRunException(
const std::exception &excp);
221 void SetInitializationDelay(
double delay);
227 virtual void Create(
void * data) = 0;
238 return StateTable.GetName();
256 bool isProxy =
false);
264 virtual bool WaitToStart(
double timeout);
271 virtual bool WaitToTerminate(
double timeout);
275 Thread.WaitForWakeup();
284 void ProcessManagerCommandsIfNotActive();
287 bool CheckForOwnThread(
void)
const;
300 return OverranPeriod;
305 OverranPeriod =
false;
Defines a function object to use a void command (mtsCommandVoid)
void * ThreadStartData
Definition: mtsTask.h:99
#define CMN_LOG_LEVEL_INIT_ERROR
Definition: cmnLogLoD.h:58
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
mtsStateTable * GetDefaultStateTable(void)
Definition: mtsTask.h:243
Defines the state data table.
Defines base class for a queued void command.
Defines a mailbox for communication between tasks.
mtsInterfaceQueueingPolicy
Definition: mtsForwardDeclarations.h:39
Defines the command interfaces.
Define a Mutex object.
Definition: osaMutex.h:48
virtual mtsInterfaceRequired * AddInterfaceRequiredWithoutSystemEventHandlers(const std::string &interfaceRequiredName, mtsRequiredType isRequired=MTS_REQUIRED)
Portability across compilers and operating systems tools.
#define CMN_UNUSED(argument)
Definition: cmnPortability.h:479
bool RunEventCalled
Definition: mtsTask.h:126
const std::string GetDefaultStateTableName(void) const
Definition: mtsTask.h:237
virtual void Create(void)
Definition: mtsForwardDeclarations.h:52
Definition: mtsCallableVoidBase.h:39
Definition: mtsInterfaceRequired.h:85
virtual mtsInterfaceProvided * AddInterfaceProvidedWithoutSystemEvents(const std::string &interfaceProvidedName, mtsInterfaceQueueingPolicy queueingPolicy=MTS_COMPONENT_POLICY, bool isProxy=false)
Definition: mtsFunctionVoid.h:36
Defines a command with one argument.
Declaration of osaThread.
Define a thread object.
Definition: osaThread.h:164
mtsInterfaceRequired * ExecIn
Definition: mtsTask.h:110
osaThread Thread
Definition: mtsTask.h:75
Definition: mtsManagerLocal.h:89
bool OverranPeriod
Definition: mtsTask.h:96
double GetAveragePeriod(void) const
Definition: mtsTask.h:234
Declaration of mtsComponent.
mtsRequiredType
Definition: mtsForwardDeclarations.h:52
Enum
Definition: mtsComponentState.h:66
mtsCallableVoidBase * InterfaceProvidedToManagerCallable
Definition: mtsTask.h:105
virtual void Configure(const std::string &CMN_UNUSED(filename)="")
Definition: mtsTask.h:218
Definition: mtsStateTable.h:67
Forward declarations and #define for cisstMultiTask.
Definition: mtsComponent.h:150
void Create(void)
Definition: mtsTask.h:228
Definition: mtsComponentState.h:34
void * ReturnValue
Definition: mtsTask.h:102
double InitializationDelay
Definition: mtsTask.h:82
Define an internal command for cisstMultiTask.
#define CMN_DECLARE_SERVICES(hasDynamicCreation, lod)
Definition: cmnClassRegisterMacros.h:116
virtual void ResetOverranPeriod(void)
Definition: mtsTask.h:304
osaMutex StateChange
Definition: mtsTask.h:86
Definition: mtsInterfaceProvided.h:96
virtual void Wakeup(void)
Definition: mtsTask.h:279
osaThreadSignal StateChangeSignal
Definition: mtsTask.h:89
Definition: mtsExecutionResult.h:34
Defines a command with no argument.
unsigned long long int TimeTicksType
Definition: mtsStateIndex.h:57
mtsStateTable StateTable
Definition: mtsTask.h:92
virtual void WaitForWakeup(void)
Definition: mtsTask.h:274
mtsComponent BaseType
Definition: mtsTask.h:67
Definition: mtsForwardDeclarations.h:39
Definition: osaThreadSignal.h:40
virtual bool WaitForState(mtsComponentState desiredState, double timeout)
virtual bool IsPeriodic(void) const
Definition: mtsTask.h:292
mtsFunctionVoid RunEventInternal
Definition: mtsTask.h:125
mtsFunctionWrite ChangeStateEvent
Definition: mtsTask.h:130
Definition: mtsFunctionWrite.h:37
Defines a command with one argument.
const int CMN_NO_DYNAMIC_CREATION
Definition: cmnClassRegisterMacros.h:328
#define CMN_DECLARE_SERVICES_INSTANTIATION(className)
Definition: cmnClassRegisterMacros.h:202
virtual bool IsOverranPeriod(void) const
Definition: mtsTask.h:299
static std::runtime_error UnknownException
Definition: mtsTask.h:69
#define CMN_LOG_ALLOW_DEFAULT
Definition: cmnLogLoD.h:76
mtsInterfaceProvided * ExecOut
Definition: mtsTask.h:121