27#ifndef _mtsCallableReadMethod_h
28#define _mtsCallableReadMethod_h
40template <
class _
classType,
class _resultType>
51 typedef mtsCallableReadMethod<ClassType, ResultType>
ThisType;
69 template <
bool,
typename _dummy =
void>
75 if (argumentCasted == 0) {
78 if ( (classInstantiation->*action)(*argumentCasted) ) {
85 template <
typename _dummy>
94 if ( (classInstantiation->*action)(*argumentCasted) ) {
100 typedef typename ResultType::RefType ResultRefType;
101 ResultRefType * dataRef =
dynamic_cast<ResultRefType *
>(&argument);
104 <<
": CallMethod could not cast from " <<
typeid(argument).name()
105 <<
" to " <<
typeid(ResultRefType).name()
111 if ( (classInstantiation->*action)(temp) ) {
142 return ConditionalCast<cmnIsDerivedFromTemplated<ResultType, mtsGenericObjectProxy>::IS_DERIVED>
148 if (this->ClassInstantiation) {
149 outputStream <<
"method based callable void return object using class/object \""
152 outputStream <<
"invalid method based callable object";
157template <
class _
classType>
167 typedef mtsCallableReadMethodGeneric<ClassType>
ThisType;
213 if (this->ClassInstantiation) {
214 outputStream <<
"method based callable read object using class/object \""
217 outputStream <<
"invalid method based callable object";
const std::string & GetName(void) const
virtual const cmnClassServicesBase * Services(void) const =0
mtsCallableReadBase(void)
Definition mtsCallableReadBase.h:44
static mtsExecutionResult CallMethod(ClassType *classInstantiation, ActionType action, mtsGenericObject &argument)
Definition mtsCallableReadMethod.h:90
Definition mtsCallableReadMethod.h:70
static mtsExecutionResult CallMethod(ClassType *classInstantiation, ActionType action, mtsGenericObject &argument)
Definition mtsCallableReadMethod.h:73
bool(ClassType::*) ActionType(mtsGenericObject &result) const
Definition mtsCallableReadMethod.h:171
virtual ~mtsCallableReadMethodGeneric()
Definition mtsCallableReadMethod.h:201
mtsExecutionResult Execute(mtsGenericObject &result)
Definition mtsCallableReadMethod.h:204
void ToStream(std::ostream &outputStream) const
Definition mtsCallableReadMethod.h:212
mtsCallableReadMethodGeneric< ClassType > ThisType
Definition mtsCallableReadMethod.h:167
ActionType Action
Definition mtsCallableReadMethod.h:180
ClassType * ClassInstantiation
Definition mtsCallableReadMethod.h:183
mtsCallableReadMethodGeneric(void)
Definition mtsCallableReadMethod.h:187
mtsCallableReadBase BaseType
Definition mtsCallableReadMethod.h:161
_classType ClassType
Definition mtsCallableReadMethod.h:164
mtsCallableReadMethodGeneric(ActionType action, ClassType *classInstantiation)
Definition mtsCallableReadMethod.h:194
mtsCallableReadMethod(ActionType action, ClassType *classInstantiation)
Definition mtsCallableReadMethod.h:131
_classType ClassType
Definition mtsCallableReadMethod.h:48
virtual ~mtsCallableReadMethod()
Definition mtsCallableReadMethod.h:138
void ToStream(std::ostream &outputStream) const
Definition mtsCallableReadMethod.h:147
mtsExecutionResult Execute(mtsGenericObject &argument)
Definition mtsCallableReadMethod.h:141
mtsCallableReadBase BaseType
Definition mtsCallableReadMethod.h:44
bool(ClassType::*) ActionType(ResultType &argument) const
Definition mtsCallableReadMethod.h:55
mtsCallableReadMethod(void)
Definition mtsCallableReadMethod.h:124
_resultType ResultType
Definition mtsCallableReadMethod.h:45
ClassType * ClassInstantiation
Definition mtsCallableReadMethod.h:67
ActionType Action
Definition mtsCallableReadMethod.h:64
mtsCallableReadMethod< ClassType, ResultType > ThisType
Definition mtsCallableReadMethod.h:51
Definition mtsExecutionResult.h:34
@ METHOD_OR_FUNCTION_FAILED
Definition mtsExecutionResult.h:44
@ INVALID_INPUT_TYPE
Definition mtsExecutionResult.h:44
@ COMMAND_SUCCEEDED
Definition mtsExecutionResult.h:44
Base class for data object in cisstMultiTask.
Definition mtsGenericObject.h:52
static T * CastArg(mtsGenericObject &arg)
Definition mtsGenericObjectProxy.h:700
#define CMN_LOG_INIT_ERROR
Definition cmnLogger.h:162
#define CMN_UNUSED(argument)
Definition cmnPortability.h:497
Defines a base class for a callable object with a placeholder to retrieve data.
std::string mtsObjectName(const mtsComponent *object)
Definition mtsComponent.h:588