Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 7985 in orxonox.OLD for branches/gui/src/lib/util


Ignore:
Timestamp:
May 30, 2006, 6:25:19 PM (18 years ago)
Author:
bensch
Message:

EVENTS WORK :)

Location:
branches/gui/src/lib/util/executor
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/gui/src/lib/util/executor/executor.h

    r7725 r7985  
    3838class Executor : public BaseObject
    3939{
    40 public:
    41   virtual ~Executor();
     40  public:
     41    virtual ~Executor();
    4242
    43   virtual Executor* clone () const = 0;
     43    virtual Executor* clone () const = 0;
    4444
    45   // SETTING up the EXECUTOR
    46   Executor* defaultValues(const MultiType& value0 = MT_NULL, const MultiType& value1 = MT_NULL,
    47                           const MultiType& value2 = MT_NULL, const MultiType& value3 = MT_NULL,
    48                           const MultiType& value4 = MT_NULL);
    49   /** @param i the i'th defaultValue, @returns reference to the MultiType */
    50   inline MultiType& getDefaultValue(unsigned int i) { return defaultValue[i]; };
     45    // SETTING up the EXECUTOR
     46    Executor* defaultValues(const MultiType& value0 = MT_NULL, const MultiType& value1 = MT_NULL,
     47                            const MultiType& value2 = MT_NULL, const MultiType& value3 = MT_NULL,
     48                            const MultiType& value4 = MT_NULL);
     49    /** @param i the i'th defaultValue, @returns reference to the MultiType */
     50    inline MultiType& getDefaultValue(unsigned int i) { return defaultValue[i]; };
    5151
    52   // EXECUTE
    53   /** executes a Command @param object the object to apply this to @param parameters the parameters the command takes */
    54   virtual void operator()(BaseObject* object, const SubString& sub = SubString()) const = 0;
    55   /** executes a Command @param object the object to apply this to @param parameters the parameters the command takes @brief here for your convenience*/
    56   void execute (BaseObject* object, const std::string& parameters = "") const { (*this)(object, parameters); };
     52    // EXECUTE
     53    virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const = 0;
    5754
    58   // RETRIEVE INFORMATION
    59   /** @returns the Type of this Function (either static or objective) */
    60   inline long getType() const { return this->functorType; };
    61   /** @returns the Count of Parameters this Executor takes */
    62   inline unsigned int getParamCount() const { return this->paramCount; };
     55    /** executes a Command @param object the object to apply this to @param parameters the parameters the command takes */
     56    virtual void operator()(BaseObject* object, const SubString& sub = SubString()) const = 0;
     57    /** executes a Command @param object the object to apply this to @param parameters the parameters the command takes @brief here for your convenience*/
     58    void execute (BaseObject* object, const std::string& parameters = "") const { (*this)(object, parameters); };
    6359
    64   static void debug();
    6560
    66 protected:
    67   Executor(const MultiType& param0 = MT_NULL, const MultiType& param1 = MT_NULL,
    68            const MultiType& param2 = MT_NULL, const MultiType& param3 = MT_NULL,
    69            const MultiType& param4 = MT_NULL);
     61    // RETRIEVE INFORMATION
     62    /** @returns the Type of this Function (either static or objective) */
     63    inline long getType() const { return this->functorType; };
     64    /** @returns the Count of Parameters this Executor takes */
     65    inline unsigned int getParamCount() const { return this->paramCount; };
    7066
    71   void cloning(Executor* executor) const;
     67    static void debug();
    7268
    73 protected:
    74   short                       functorType;      //!< The type of Function we've got (either static or objective).
    75   unsigned int                paramCount;       //!< the count of parameters.
    76   MultiType                   defaultValue[5];  //!< Default Values.
     69  protected:
     70    Executor(const MultiType& param0 = MT_NULL, const MultiType& param1 = MT_NULL,
     71             const MultiType& param2 = MT_NULL, const MultiType& param3 = MT_NULL,
     72             const MultiType& param4 = MT_NULL);
     73
     74    void cloning(Executor* executor) const;
     75
     76  protected:
     77    short                       functorType;      //!< The type of Function we've got (either static or objective).
     78    unsigned int                paramCount;       //!< the count of parameters.
     79    MultiType                   defaultValue[5];  //!< Default Values.
    7780};
    7881
  • branches/gui/src/lib/util/executor/executor_functional.cc

    r7728 r7985  
    3434template<> const std::string& fromString<const std::string&>(const std::string& input, const std::string& defaultValue) { return ExecutorFunctional_returningString_from = isString(input, defaultValue); };
    3535
     36
     37template<> bool fromMulti<bool>(const MultiType& multi) { return multi.getBool(); };
     38template<> int fromMulti<int>(const MultiType& multi) { return multi.getInt(); }
     39template<> unsigned int fromMulti<unsigned int>(const MultiType& multi) { return multi.getInt(); };
     40template<> float fromMulti<float>(const MultiType& multi) { return multi.getFloat(); };
     41template<> char fromMulti<char>(const MultiType& multi) { return multi.getChar(); };
     42template<> const std::string& fromMulti<const std::string&>(const MultiType& multi) { return multi.getString(); };
     43
     44
    3645template<> bool getDefault<bool>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getBool(); };
    3746template<> int getDefault<int>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getInt(); };
     
    4049template<> char getDefault<char>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getChar(); };
    4150template<> const std::string& getDefault<const std::string&>(const MultiType* const defaultValues, unsigned int i) { return ExecutorFunctional_returningString_default = defaultValues[i].getString(); };
     51
     52
    4253
    4354
  • branches/gui/src/lib/util/executor/executor_functional.h

    r7725 r7985  
    3333template<> MT_Type ExecutorParamType<const std::string&>();
    3434
    35 template<typename type> type fromString(const std::string& input, type defaultValue) {return defaultValue; };
     35template<typename type> type fromString(const std::string& input, type defaultValue) { return defaultValue; };
    3636template<> bool fromString<bool>(const std::string& input, bool defaultValue);
    3737template<> int fromString<int>(const std::string& input, int defaultValue);
     
    4040template<> char fromString<char>(const std::string& input, char defaultValue);
    4141template<> const std::string& fromString<const std::string&>(const std::string& input, const std::string& defaultValue);
     42
     43template<typename type> type fromMulti(const MultiType& multi) { /* return defaultValue; */ };
     44template<> bool fromMulti<bool>(const MultiType& multi);
     45template<> int fromMulti<int>(const MultiType& multi);
     46template<> unsigned int fromMulti<unsigned int>(const MultiType& multi);
     47template<> float fromMulti<float>(const MultiType& multi);
     48template<> char fromMulti<char>(const MultiType& multi);
     49template<> const std::string& fromMulti<const std::string&>(const MultiType& multi);
     50
    4251
    4352template<typename type> type getDefault(const MultiType* const defaultValues, unsigned int i) { return (type)0; };
     
    8190#endif /* EXECUTOR_FUNCTIONAL_USE_STATIC */
    8291
     92///////////
     93//// 0 ////
     94///////////
    8395//! @brief ExecutorClass, that can execute Functions without any parameters.
    8496template<class T> class __EXECUTOR_FUNCTIONAL_NAME(0) : public Executor
     
    110122  };
    111123
     124  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
     125  {
     126    (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)();
     127  }
     128
    112129  /**
    113130   * @brief copies the Executor
     
    120137};
    121138
     139
     140
     141///////////
     142//// 1 ////
     143///////////
    122144//! @brief ExecutorClass, that can execute Functions with one parameter.
    123145template<class T, typename type0> class __EXECUTOR_FUNCTIONAL_NAME(1) : public Executor
     
    138160    this->functionPointer = functionPointer;
    139161  };
     162
     163  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
     164  {
     165    switch(count)
     166    {
     167      case 0:
     168        return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(fromMulti<type0>(this->defaultValue[0]));
     169      default:
     170       return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(fromMulti<type0>(values[0]));
     171    }
     172  }
     173
    140174
    141175  /**
     
    166200};
    167201
     202///////////
     203//// 2 ////
     204///////////
    168205//! @brief ExecutorClass, that can execute Functions with two parameters.
    169206template<class T, typename type0, typename type1> class __EXECUTOR_FUNCTIONAL_NAME(2) : public Executor
     
    197234  };
    198235
     236  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
     237  {
     238  }
     239
    199240  /**
    200241   * @brief copies the Executor
     
    208249
    209250
     251///////////
     252//// 3 ////
     253///////////
    210254//! @brief ExecutorClass, that can execute Functions with three parameters.
    211255template<class T, typename type0, typename type1, typename type2> class __EXECUTOR_FUNCTIONAL_NAME(3) : public Executor
     
    240284  };
    241285
     286  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
     287  {
     288  }
     289
    242290  /**
    243291   * @brief copies the Executor
     
    252300
    253301
     302///////////
     303//// 4 ////
     304///////////
    254305//! @brief ExecutorClass, that can execute Functions with four parameters.
    255306template<class T, typename type0, typename type1, typename type2, typename type3> class __EXECUTOR_FUNCTIONAL_NAME(4) : public Executor
     
    285336  };
    286337
     338  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
     339  {
     340  }
     341
    287342  /**
    288343   * @brief copies the Executor
     
    295350};
    296351
     352
     353
     354///////////
     355//// 5 ////
     356///////////
    297357//! @brief ExecutorClass, that can execute Functions with five parameters.
    298358template<class T, typename type0, typename type1, typename type2, typename type3, typename type4> class __EXECUTOR_FUNCTIONAL_NAME(5) : public Executor
     
    329389  };
    330390
     391  virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
     392  {
     393  }
     394
    331395  /**
    332396   * @brief copies the Executor
  • branches/gui/src/lib/util/executor/executor_specials.h

    r7711 r7985  
    6767    }
    6868
     69    virtual void operator()(BaseObject* object, unsigned int count, const MultiType* values) const
     70    {
     71
     72    }
     73
    6974  private:
    7075    /**
Note: See TracChangeset for help on using the changeset viewer.