26 #ifndef _mtsCallableQualifiedReadMethod_h
27 #define _mtsCallableQualifiedReadMethod_h
39 template <
class _
classType,
class _argumentType,
class _resultType>
69 template <
bool a,
bool b,
typename dummy =
void>
83 if ( (classInstantiation->*action)(*data1, *data2) ) {
90 template <
typename dummy>
101 typedef typename ArgumentType::RefType ArgumentRefType;
102 const ArgumentRefType * data1ref =
dynamic_cast<const ArgumentRefType *
>(&argument);
104 CMN_LOG_INIT_ERROR <<
"Class mtsCallableQualifiedReadMethod: CallMethod could not cast argument from " <<
typeid(argument).name()
105 <<
" to const " <<
typeid(ArgumentRefType).name() << std::endl;
115 if ( (classInstantiation->*action)(*data1, *data2) ) {
122 template <
typename dummy>
136 typedef typename ResultType::RefType ResultRefType;
137 ResultRefType * data2ref = 0;
139 data2ref =
dynamic_cast<ResultRefType *
>(&result);
141 CMN_LOG_INIT_ERROR <<
"Class mtsCallableQualifiedReadMethod: CallMethod could not cast result from " <<
typeid(result).name()
142 <<
" to const " <<
typeid(ResultRefType).name() << std::endl;
147 if ( (classInstantiation->*action)(*data1, *data2) ) {
157 template <
typename dummy>
168 typedef typename ArgumentType::RefType ArgumentRefType;
169 const ArgumentRefType * data1ref =
dynamic_cast<const ArgumentRefType *
>(&argument);
171 CMN_LOG_INIT_ERROR <<
"Class mtsCallableQualifiedReadMethod: CallMethod could not cast argument from " <<
typeid(argument).name()
172 <<
" to const " <<
typeid(ArgumentRefType).name() << std::endl;
182 typedef typename ResultType::RefType ResultRefType;
183 ResultRefType * data2ref = 0;
185 data2ref =
dynamic_cast<ResultRefType *
>(&result);
187 CMN_LOG_INIT_ERROR <<
"Class mtsCallableQualifiedReadMethod: CallMethod could not cast result from " <<
typeid(result).name()
188 <<
" to const " <<
typeid(ResultRefType).name() << std::endl;
193 if ( (classInstantiation->*action)(*data1, *data2) ) {
232 outputStream <<
"method based callable qualified read object using class/object \""
235 outputStream <<
"invalid method based callable object";
243 template <
class _
classType>
300 outputStream <<
"generic method based callable qualified read object using class/object \""
303 outputStream <<
"invalid generic method based callable object";
308 #endif // _mtsCallableQualifiedReadMethod_h
std::string mtsObjectName(const mtsComponent *object)
Definition: mtsComponent.h:552
mtsCallableQualifiedReadMethodGeneric< ClassType > ThisType
Definition: mtsCallableQualifiedReadMethod.h:253
Definition: mtsCallableQualifiedReadMethod.h:244
Definition: mtsCallableQualifiedReadBase.h:40
Definition: cmnTypeTraits.h:590
#define CMN_UNUSED(argument)
Definition: cmnPortability.h:479
ClassType * ClassInstantiation
Definition: mtsCallableQualifiedReadMethod.h:269
virtual ~mtsCallableQualifiedReadMethod()
Definition: mtsCallableQualifiedReadMethod.h:220
virtual ~mtsCallableQualifiedReadMethodGeneric()
Definition: mtsCallableQualifiedReadMethod.h:287
bool(_classType::* ActionType)(const ArgumentType &argument, ResultType &result) const
Definition: mtsCallableQualifiedReadMethod.h:55
static mtsExecutionResult CallMethod(ClassType *classInstantiation, ActionType action, const mtsGenericObject &argument, mtsGenericObject &result)
Definition: mtsCallableQualifiedReadMethod.h:93
#define CMN_LOG_INIT_ERROR
Definition: cmnLogger.h:162
Base class for data object in cisstMultiTask.
Definition: mtsGenericObject.h:56
mtsExecutionResult Execute(const mtsGenericObject &argument, mtsGenericObject &result)
Definition: mtsCallableQualifiedReadMethod.h:290
Definition: mtsExecutionResult.h:44
ClassType * ClassInstantiation
Definition: mtsCallableQualifiedReadMethod.h:67
void ToStream(std::ostream &outputStream) const
Definition: mtsCallableQualifiedReadMethod.h:298
void ToStream(std::ostream &outputStream) const
Definition: mtsCallableQualifiedReadMethod.h:230
static mtsExecutionResult CallMethod(ClassType *classInstantiation, ActionType action, const mtsGenericObject &argument, mtsGenericObject &result)
Definition: mtsCallableQualifiedReadMethod.h:160
Defines a base class for a callable object with a qualifer and a placeholder to retrieve data...
static mtsExecutionResult CallMethod(ClassType *classInstantiation, ActionType action, const mtsGenericObject &argument, mtsGenericObject &result)
Definition: mtsCallableQualifiedReadMethod.h:72
static T * CastArg(mtsGenericObject &arg)
Definition: mtsGenericObjectProxy.h:683
_resultType ResultType
Definition: mtsCallableQualifiedReadMethod.h:45
mtsCallableQualifiedReadBase BaseType
Definition: mtsCallableQualifiedReadMethod.h:43
_argumentType ArgumentType
Definition: mtsCallableQualifiedReadMethod.h:44
mtsCallableQualifiedReadMethodGeneric(ActionType action, ClassType *classInstantiation)
Definition: mtsCallableQualifiedReadMethod.h:280
Definition: mtsExecutionResult.h:34
Definition: mtsExecutionResult.h:44
ActionType Action
Definition: mtsCallableQualifiedReadMethod.h:64
mtsCallableQualifiedReadBase BaseType
Definition: mtsCallableQualifiedReadMethod.h:247
bool(_classType::* ActionType)(const mtsGenericObject &argument, mtsGenericObject &result) const
Definition: mtsCallableQualifiedReadMethod.h:257
mtsExecutionResult Execute(const mtsGenericObject &argument, mtsGenericObject &result)
Definition: mtsCallableQualifiedReadMethod.h:223
mtsCallableQualifiedReadMethodGeneric(void)
Definition: mtsCallableQualifiedReadMethod.h:273
_classType ClassType
Definition: mtsCallableQualifiedReadMethod.h:48
ActionType Action
Definition: mtsCallableQualifiedReadMethod.h:266
mtsCallableQualifiedReadMethod(ActionType action, ClassType *classInstantiation)
Definition: mtsCallableQualifiedReadMethod.h:213
Definition: mtsCallableQualifiedReadMethod.h:40
_classType ClassType
Definition: mtsCallableQualifiedReadMethod.h:250
Definition: mtsExecutionResult.h:44
static mtsExecutionResult CallMethod(ClassType *classInstantiation, ActionType action, const mtsGenericObject &argument, mtsGenericObject &result)
Definition: mtsCallableQualifiedReadMethod.h:125
Definition: mtsCallableQualifiedReadMethod.h:70
mtsCallableQualifiedReadMethod< ClassType, ArgumentType, ResultType > ThisType
Definition: mtsCallableQualifiedReadMethod.h:51
mtsCallableQualifiedReadMethod(void)
Definition: mtsCallableQualifiedReadMethod.h:206