Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 7719 in orxonox.OLD for trunk/src/lib/util


Ignore:
Timestamp:
May 19, 2006, 3:13:13 AM (19 years ago)
Author:
bensch
Message:

all up to 5 arguments made

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/util/executor/executor_functional.h

    r7718 r7719  
    7070 #endif /* EXECUTOR_FUNCTIONAL_USE_CONST */
    7171
    72  #undef __EXECUTOR_FUNCTIONAL_FUNCTION_EXEC
     72#undef __EXECUTOR_FUNCTIONAL_FUNCTION_EXEC
    7373 #define __EXECUTOR_FUNCTIONAL_FUNCTION_EXEC       functionPointer
    7474 #undef __EXECUTOR_FUNCTIONAL_NAME
     
    7777 #define __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER    *functionPointer
    7878
    79  #undef EXECUTOR_FUNCTIONAL_USE_STATIC
     79#undef EXECUTOR_FUNCTIONAL_USE_STATIC
    8080#endif /* EXECUTOR_FUNCTIONAL_USE_STATIC */
    8181
     
    9898  };
    9999
    100   virtual Executor* clone() const {
     100  virtual Executor* clone() const
     101  {
    101102    return new __EXECUTOR_FUNCTIONAL_NAME(0)<T>(this->functionPointer);
    102103  };
    103104};
    104105
    105 
     106//! SINGLE VALUE
    106107template<class T, typename type0> class __EXECUTOR_FUNCTIONAL_NAME(1) : public Executor
    107108{
     
    129130  };
    130131
    131   virtual Executor* clone() const {
     132  virtual Executor* clone() const
     133  {
    132134    return  new __EXECUTOR_FUNCTIONAL_NAME(1)<T, type0>(this->functionPointer);
    133135  };
    134136};
    135137
    136 /// DOUBLE PENETRATION
     138//! DOUBLE VALUE
    137139template<class T, typename type0, typename type1> class __EXECUTOR_FUNCTIONAL_NAME(2) : public Executor
    138140{
     
    155157  };
    156158
    157   virtual Executor* clone() const {
     159  virtual Executor* clone() const
     160  {
    158161    return new __EXECUTOR_FUNCTIONAL_NAME(2)<T, type0, type1>(this->functionPointer);
    159162  };
     
    161164
    162165
    163 
    164 /// HACK !! THESE WILL BE RESET AGAIN !!
     166//! TRIPPLE VALUE
     167template<class T, typename type0, typename type1, typename type2> class __EXECUTOR_FUNCTIONAL_NAME(3) : public Executor
     168{
     169private:
     170  void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2) __EXECUTOR_FUNCTIONAL_CONST;
     171
     172public:
     173  __EXECUTOR_FUNCTIONAL_NAME(3) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2) __EXECUTOR_FUNCTIONAL_CONST)
     174      : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>())
     175  {
     176    this->functorType = Executor_Objective;
     177    this->functionPointer = functionPointer;
     178  };
     179
     180  virtual void operator()(BaseObject* object, const SubString& sub = SubString()) const
     181  {
     182    (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
     183      fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)),
     184      fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)),
     185      fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)));
     186  };
     187
     188  virtual Executor* clone() const
     189  {
     190    return new __EXECUTOR_FUNCTIONAL_NAME(3)<T, type0, type1, type2>(this->functionPointer);
     191  };
     192};
     193
     194
     195
     196//! QUADRUPPEL VALUE
     197template<class T, typename type0, typename type1, typename type2, typename type3> class __EXECUTOR_FUNCTIONAL_NAME(4) : public Executor
     198{
     199private:
     200  void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2, type3) __EXECUTOR_FUNCTIONAL_CONST;
     201
     202public:
     203  __EXECUTOR_FUNCTIONAL_NAME(4) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2, type3) __EXECUTOR_FUNCTIONAL_CONST)
     204  : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>())
     205  {
     206    this->functorType = Executor_Objective;
     207    this->functionPointer = functionPointer;
     208  };
     209
     210  virtual void operator()(BaseObject* object, const SubString& sub = SubString()) const
     211  {
     212    (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
     213      fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)),
     214      fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)),
     215      fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)),
     216      fromString<type3>(sub[3], getDefault<type3>(this->defaultValue, 3)));
     217  };
     218
     219  virtual Executor* clone() const
     220  {
     221    return new __EXECUTOR_FUNCTIONAL_NAME(4)<T, type0, type1, type2, type3>(this->functionPointer);
     222  };
     223};
     224
     225//! CHINQUE VALUE
     226template<class T, typename type0, typename type1, typename type2, typename type3, typename type4> class __EXECUTOR_FUNCTIONAL_NAME(5) : public Executor
     227{
     228  private:
     229    void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2, type3, type4) __EXECUTOR_FUNCTIONAL_CONST;
     230
     231  public:
     232    __EXECUTOR_FUNCTIONAL_NAME(5) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2, type3, type4) __EXECUTOR_FUNCTIONAL_CONST)
     233  : Executor(ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), ExecutorParamType<type4>())
     234    {
     235      this->functorType = Executor_Objective;
     236      this->functionPointer = functionPointer;
     237    };
     238
     239    virtual void operator()(BaseObject* object, const SubString& sub = SubString()) const
     240    {
     241      (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
     242          fromString<type0>(sub[0], getDefault<type0>(this->defaultValue, 0)),
     243      fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)),
     244      fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)),
     245      fromString<type3>(sub[3], getDefault<type3>(this->defaultValue, 3)),
     246      fromString<type4>(sub[4], getDefault<type4>(this->defaultValue, 4)));
     247    };
     248
     249    virtual Executor* clone() const
     250    {
     251      return new __EXECUTOR_FUNCTIONAL_NAME(5)<T, type0, type1, type2, type3, type4>(this->functionPointer);
     252    };
     253};
     254
    165255
    166256
     
    183273}
    184274
    185 #define EXECUTOR_FUNCTIONAL_CREATOR3(type0, type1, type2)
    186 #define EXECUTOR_FUNCTIONAL_CREATOR4(type0, type1, type2, type3)
    187 #define EXECUTOR_FUNCTIONAL_CREATOR5(type0, type1, type2, type3, type4)
     275#define EXECUTOR_FUNCTIONAL_CREATOR3(type0, type1, type2) \
     276template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
     277{ \
     278  return new __EXECUTOR_FUNCTIONAL_NAME(3)<T, type0##_TYPE, type1##_TYPE, type2##_TYPE>(functionPointer); \
     279}
     280
     281#define EXECUTOR_FUNCTIONAL_CREATOR4(type0, type1, type2, type3) \
     282template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
     283{ \
     284  return new __EXECUTOR_FUNCTIONAL_NAME(4)<T, type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE>(functionPointer); \
     285}
     286
     287#define EXECUTOR_FUNCTIONAL_CREATOR5(type0, type1, type2, type3, type4) \
     288template<class T> Executor* createExecutor(void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE) __EXECUTOR_FUNCTIONAL_CONST) \
     289{ \
     290    return new __EXECUTOR_FUNCTIONAL_NAME(5)<T, type0##_TYPE, type1##_TYPE, type2##_TYPE, type3##_TYPE, type4##_TYPE>(functionPointer); \
     291}
    188292
    189293
Note: See TracChangeset for help on using the changeset viewer.