26 #ifndef _mtsCommandWrite_h
27 #define _mtsCommandWrite_h
40 template <
class _
classType,
class _argumentType>
69 template<
bool,
typename dummy=
void>
79 (ClassInst->*
Action)(*data);
83 template<
typename dummy>
93 (ClassInst->*
Action)(*data);
97 typedef typename ArgumentType::RefType ArgumentRefType;
98 const ArgumentRefType *dataref =
dynamic_cast<const ArgumentRefType *
>(&argument);
100 CMN_LOG_INIT_ERROR <<
"Write CallMethod could not cast from " <<
typeid(argument).name()
101 <<
" to const " <<
typeid(ArgumentRefType).name() << std::endl;
106 temp.Assign(*dataref);
107 (ClassInst->*
Action)(temp);
166 return Execute(argument, blocking);
170 virtual void ToStream(std::ostream & outputStream)
const {
171 outputStream <<
"mtsCommandWrite: ";
175 << (this->
IsEnabled() ?
"enabled" :
"disabled");
177 outputStream <<
"Not initialized properly";
188 template <
class _
classType>
234 if (argumentPrototype) {
268 return Execute(argument, blocking);
273 outputStream <<
"mtsCommandWriteGeneric: ";
275 outputStream << this->
Name <<
"(const mtsGenericObject *) using class/object \""
277 << (this->
IsEnabled() ?
"enabled" :
"disabled");
279 outputStream <<
"Not initialized properly";
285 #endif // _mtsCommandWrite_h
ActionType Action
Definition: mtsCommandWrite.h:64
std::string mtsObjectName(const mtsComponent *object)
Definition: mtsComponent.h:552
#define CMN_ASSERT(expr)
Definition: cmnAssert.h:90
bool IsEnabled(void) const
Definition: mtsCommandBase.h:105
mtsCommandWrite< ClassType, ArgumentType > ThisType
Definition: mtsCommandWrite.h:51
mtsCommandWriteBase BaseType
Definition: mtsCommandWrite.h:45
ClassType * ClassInstantiation
Definition: mtsCommandWrite.h:214
#define CMN_UNUSED(argument)
Definition: cmnPortability.h:479
virtual ~mtsCommandWrite()
Definition: mtsCommandWrite.h:134
Definition: mtsCommandWrite.h:189
const std::string & GetName(void) const
mtsExecutionResult Execute(const mtsGenericObject &argument, mtsBlockingType CMN_UNUSED(blocking))
Definition: mtsCommandWrite.h:145
Definition: mtsExecutionResult.h:44
mtsCommandWriteGeneric< ClassType > ThisType
Definition: mtsCommandWrite.h:198
Base class for high level objects.
Definition: cmnGenericObject.h:51
#define CMN_LOG_INIT_ERROR
Definition: cmnLogger.h:162
Base class for data object in cisstMultiTask.
Definition: mtsGenericObject.h:56
ActionType Action
Definition: mtsCommandWrite.h:211
virtual const cmnClassServicesBase * Services(void) const =0
Defines a base class for a command with one argument.
Definition: mtsCommandWrite.h:70
mtsExecutionResult Execute(const mtsGenericObject &argument, mtsBlockingType CMN_UNUSED(blocking))
Definition: mtsCommandWrite.h:257
std::string Name
Definition: mtsCommandBase.h:52
Definition: mtsCommandWriteBase.h:40
const mtsGenericObject * ArgumentPrototype
Definition: mtsCommandWriteBase.h:109
_argumentType ArgumentType
Definition: mtsCommandWrite.h:44
_classType ClassType
Definition: mtsCommandWrite.h:195
void ToStream(std::ostream &outputStream) const
Definition: mtsCommandWrite.h:272
mtsCommandWriteBase BaseType
Definition: mtsCommandWrite.h:192
mtsExecutionResult Execute(const ArgumentType &argument, mtsBlockingType CMN_UNUSED(blocking))
Definition: mtsCommandWrite.h:155
static T * CastArg(mtsGenericObject &arg)
Definition: mtsGenericObjectProxy.h:683
void(_classType::* ActionType)(const mtsGenericObject &)
Definition: mtsCommandWrite.h:202
static mtsExecutionResult CallMethod(ClassType *ClassInst, ActionType Action, const mtsGenericObject &argument)
Definition: mtsCommandWrite.h:73
mtsExecutionResult Execute(const mtsGenericObject &argument, mtsBlockingType blocking, mtsCommandWriteBase *CMN_UNUSED(finishedEventHandler))
Definition: mtsCommandWrite.h:266
Definition: mtsExecutionResult.h:34
Definition: mtsExecutionResult.h:44
ClassType * ClassInstantiation
Definition: mtsCommandWrite.h:67
mtsExecutionResult Execute(const mtsGenericObject &argument, mtsBlockingType blocking, mtsCommandWriteBase *CMN_UNUSED(finishedEventHandler))
Definition: mtsCommandWrite.h:164
mtsCommandWriteGeneric(ActionType action, ClassType *classInstantiation, const std::string &name, const mtsGenericObject *argumentPrototype)
Definition: mtsCommandWrite.h:227
void(_classType::* ActionType)(const ArgumentType &)
Definition: mtsCommandWrite.h:55
virtual ~mtsCommandWriteGeneric()
Definition: mtsCommandWrite.h:246
Definition: mtsCommandWrite.h:41
mtsBlockingType
Definition: mtsForwardDeclarations.h:55
Definition: mtsExecutionResult.h:44
_classType ClassType
Definition: mtsCommandWrite.h:48
virtual void ToStream(std::ostream &outputStream) const
Definition: mtsCommandWrite.h:170
virtual cmnGenericObject * Create(void) const =0
static mtsGenericObject * ConditionalCreate(const T &arg, const std::string &name)
Definition: mtsGenericObjectProxy.h:676
mtsCommandWrite(ActionType action, ClassType *classInstantiation, const std::string &name, const ArgumentType &argumentPrototype)
Definition: mtsCommandWrite.h:123
static mtsExecutionResult CallMethod(ClassType *ClassInst, ActionType Action, const mtsGenericObject &argument)
Definition: mtsCommandWrite.h:88