Changeset 3280 for code/trunk/src/core/Functor.h
- Timestamp:
- Jul 12, 2009, 11:58:01 PM (16 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
/code/branches/core4 (added) merged: 3235-3237,3245-3250,3253-3254,3260-3261,3265,3270
- Property svn:mergeinfo changed
-
code/trunk/src/core/Functor.h
r3196 r3280 35 35 #include "util/Debug.h" 36 36 #include "util/MultiType.h" 37 #include "util/String .h"37 #include "util/StringUtils.h" 38 38 39 39 namespace orxonox … … 41 41 const unsigned int MAX_FUNCTOR_ARGUMENTS = 5; 42 42 43 enumFunctionType43 namespace FunctionType 44 44 { 45 FT_MEMBER, 46 FT_CONSTMEMBER, 47 FT_STATIC 48 }; 45 enum Value 46 { 47 Member, 48 ConstMember, 49 Static 50 }; 51 } 49 52 50 53 … … 98 101 virtual ~Functor() {} 99 102 100 virtual void operator()(const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) = 0;103 virtual void operator()(const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) = 0; 101 104 102 105 inline unsigned int getParamCount() const { return this->numParams_; } 103 106 inline bool hasReturnvalue() const { return this->hasReturnValue_; } 104 inline FunctionType getType() const { return this->type_; }107 inline FunctionType::Value getType() const { return this->type_; } 105 108 inline const MultiType& getReturnvalue() const { return this->returnedValue_; } 106 109 … … 113 116 unsigned int numParams_; 114 117 bool hasReturnValue_; 115 FunctionType type_;118 FunctionType::Value type_; 116 119 MultiType returnedValue_; 117 120 … … 124 127 public: 125 128 virtual ~FunctorStatic() {} 126 virtual void operator()(const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) = 0;129 virtual void operator()(const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) = 0; 127 130 }; 128 131 … … 139 142 virtual ~FunctorMember() {} 140 143 141 virtual void operator()(T* object, const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) = 0;142 virtual void operator()(const T* object, const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) = 0;143 144 virtual void operator()(const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null)144 virtual void operator()(T* object, const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) = 0; 145 virtual void operator()(const T* object, const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) = 0; 146 147 virtual void operator()(const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) 145 148 { 146 149 if (this->bConstObject_) … … 322 325 this->numParams_ = numparams; \ 323 326 this->hasReturnValue_ = returnvalue; \ 324 this->type_ = F T_STATIC; \327 this->type_ = FunctionType::Static; \ 325 328 this->functionPointer_ = functionPointer; \ 326 329 \ … … 329 332 } \ 330 333 \ 331 void operator()(const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) \334 void operator()(const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) \ 332 335 { \ 333 336 FUNCTOR_STORE_RETURNVALUE(returnvalue, (*this->functionPointer_)(FUNCTOR_FUNCTION_CALL(numparams))); \ … … 363 366 this->numParams_ = numparams; \ 364 367 this->hasReturnValue_ = returnvalue; \ 365 this->type_ = F T_MEMBER; \368 this->type_ = FunctionType::Member; \ 366 369 this->functionPointer_ = functionPointer; \ 367 370 } \ 368 371 \ 369 void operator()(T* object, const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) \372 void operator()(T* object, const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) \ 370 373 { \ 371 374 FUNCTOR_STORE_RETURNVALUE(returnvalue, (*object.*this->functionPointer_)(FUNCTOR_FUNCTION_CALL(numparams))); \ 372 375 } \ 373 376 \ 374 void operator()(const T* object, const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) \377 void operator()(const T* object, const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) \ 375 378 { \ 376 379 COUT(1) << "An error occurred in Functor.h:" << std::endl; \ … … 396 399 this->numParams_ = numparams; \ 397 400 this->hasReturnValue_ = returnvalue; \ 398 this->type_ = F T_CONSTMEMBER; \401 this->type_ = FunctionType::ConstMember; \ 399 402 this->functionPointer_ = functionPointer; \ 400 403 } \ 401 404 \ 402 void operator()(T* object, const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) \405 void operator()(T* object, const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) \ 403 406 { \ 404 407 FUNCTOR_STORE_RETURNVALUE(returnvalue, (*object.*this->functionPointer_)(FUNCTOR_FUNCTION_CALL(numparams))); \ 405 408 } \ 406 409 \ 407 void operator()(const T* object, const MultiType& param1 = MT_ null, const MultiType& param2 = MT_null, const MultiType& param3 = MT_null, const MultiType& param4 = MT_null, const MultiType& param5 = MT_null) \410 void operator()(const T* object, const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null) \ 408 411 { \ 409 412 FUNCTOR_STORE_RETURNVALUE(returnvalue, (*object.*this->functionPointer_)(FUNCTOR_FUNCTION_CALL(numparams))); \
Note: See TracChangeset
for help on using the changeset viewer.