Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 7214 in orxonox.OLD for branches/std/src/lib/util


Ignore:
Timestamp:
Mar 10, 2006, 7:18:03 PM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: now the branche works again, as it did before

Location:
branches/std/src/lib/util
Files:
9 edited

Legend:

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

    r7212 r7214  
    4848
    4949    /** executes a Command @param object the object to apply this to @param parameters the parameters the command takes */
    50     virtual void execute (BaseObject* object, const void* parameters = NULL) = 0;
     50    virtual void execute (BaseObject* object, const std::string& parameters = "") = 0;
    5151
    5252    /** @returns the Type of this Function (either static or objective) */
     
    192192#define ExecutorExecute1(t1) \
    193193   else if (this->paramCount == 1 && this->defaultValue[0] == t1##_PARAM) \
    194     EXECUTOREXECUTER(_1_##t1)(t1##_FUNC((const char*)parameters, t1##_DEFGRAB(0)))
     194    EXECUTOREXECUTER(_1_##t1)(t1##_FUNC(sub[0], t1##_DEFGRAB(0)))
    195195
    196196//! execute-macro for functions with two parameters
    197197#define ExecutorExecute2(t1,t2) \
    198198   else if (this->paramCount == 2 && this->defaultValue[0] == t1##_PARAM && this->defaultValue[1] == t2##_PARAM) \
    199     EXECUTOREXECUTER(_2_##t1##_##t2)(t1##_FUNC(sub.getString(0), t1##_DEFGRAB(0)), t2##_FUNC(sub.getString(1), t2##_DEFGRAB(1)))
     199    EXECUTOREXECUTER(_2_##t1##_##t2)(t1##_FUNC(sub[0], t1##_DEFGRAB(0)), t2##_FUNC(sub[1], t2##_DEFGRAB(1)))
    200200
    201201//! execute-macro for functions with three parameters
    202202#define ExecutorExecute3(t1,t2,t3) \
    203203   else if (this->paramCount == 3 && this->defaultValue[0] == t1##_PARAM && this->defaultValue[1] == t2##_PARAM && this->defaultValue[2] == t3##_PARAM) \
    204     EXECUTOREXECUTER(_3_##t1##_##t2##_##t3)(t1##_FUNC(sub.getString(0), t1##_DEFGRAB(0)), t2##_FUNC(sub.getString(1), t2##_DEFGRAB(1)), t3##_FUNC(sub.getString(2), t3##_DEFGRAB(2)))
     204    EXECUTOREXECUTER(_3_##t1##_##t2##_##t3)(t1##_FUNC(sub[0], t1##_DEFGRAB(0)), t2##_FUNC(sub[1], t2##_DEFGRAB(1)), t3##_FUNC(sub[2], t3##_DEFGRAB(2)))
    205205
    206206//! execute-macro for functions with four parameters
    207207#define ExecutorExecute4(t1,t2,t3,t4) \
    208208   else if (this->paramCount == 4 && this->defaultValue[0] == t1##_PARAM && this->defaultValue[1] == t2##_PARAM && this->defaultValue[2] == t3##_PARAM && this->defaultValue[3] == t4##_PARAM) \
    209     EXECUTOREXECUTER(_4_##t1##_##t2##_##t3##_##t4)(t1##_FUNC(sub.getString(0), t1##_DEFGRAB(0)), t2##_FUNC(sub.getString(1), t2##_DEFGRAB(1)), t3##_FUNC(sub.getString(2), t3##_DEFGRAB(2)), t4##_FUNC(sub.getString(3), t4##_DEFGRAB(3))) \
     209    EXECUTOREXECUTER(_4_##t1##_##t2##_##t3##_##t4)(t1##_FUNC(sub[0], t1##_DEFGRAB(0)), t2##_FUNC(sub[1], t2##_DEFGRAB(1)), t3##_FUNC(sub[2], t3##_DEFGRAB(2)), t4##_FUNC(sub[3], t4##_DEFGRAB(3))) \
    210210
    211211
     
    213213#define ExecutorExecute5(t1,t2,t3,t4,t5) \
    214214   else if (this->paramCount == 5 && this->defaultValue[0] == t1##_PARAM && this->defaultValue[1] == t2##_PARAM && this->defaultValue[2] == t3##_PARAM && this->defaultValue[3] == t4##_PARAM && this->defaultValue[4] == t5##_PARAM) \
    215     EXECUTOREXECUTER(_5_##t1##_##t2##_##t3##_##t4##_##t5)(t1##_FUNC(sub.getString(0), t1##_DEFGRAB(0)), t2##_FUNC(sub.getString(1), t2##_DEFGRAB(1)), t3##_FUNC(sub.getString(2), t3##_DEFGRAB(2)), t4##_FUNC(sub.getString(3), t4##_DEFGRAB(3)), t5##_FUNC(sub.getString(4), t5##_DEFGRAB(4)))
     215    EXECUTOREXECUTER(_5_##t1##_##t2##_##t3##_##t4##_##t5)(t1##_FUNC(sub[0], t1##_DEFGRAB(0)), t2##_FUNC(sub[1], t2##_DEFGRAB(1)), t3##_FUNC(sub[2], t3##_DEFGRAB(2)), t4##_FUNC(sub[3], t4##_DEFGRAB(3)), t5##_FUNC(sub[4], t5##_DEFGRAB(4)))
    216216
    217217
     
    242242#define EXECUTORTYPE                   Executor_Objective
    243243//! keeps information about a Executor
    244 template<class T> class ExecutorObjective : public Executor
     244template<class T> class EXECUTOR : public Executor
    245245{
    246246  public:
    247     ExecutorObjective() : Executor() { };
     247    EXECUTOR() : Executor() { };
    248248    // COPY constuctor (virtual version)
    249249    virtual Executor* clone () const
    250250    {
    251       ExecutorObjective<T>* executor = new ExecutorObjective<T>();
     251      EXECUTOR<T>* executor = new EXECUTOR<T>();
    252252      this->cloning(executor);
    253253      executor->fp = this->fp;
     
    268268    } fp;
    269269
    270     virtual void execute (BaseObject* object, const void* parameters = NULL)
     270    virtual void execute (BaseObject* object, const std::string& parameters = "")
    271271    {
    272272      SubString sub;
    273       printf("===%s\n", (const char*)parameters);
    274       if (parameters != NULL)
    275         sub.split((const char*)parameters, " \n\t,", '\\');
     273      printf("===%s\n", parameters.c_str());
     274      sub.split(parameters, " \n\t,", '\\');
     275      sub.debug();
    276276//! FUNCTOR_LIST is the List of Executive Functions
    277277#define FUNCTOR_LIST(x) ExecutorExecute ## x
     
    309309{
    310310  public:
    311     ExecutorStatic() : Executor() { };
     311    EXECUTOR() : Executor() { };
    312312    // COPY constuctor
    313313    virtual Executor* clone () const
    314314    {
    315       ExecutorStatic<T>* executor = new ExecutorStatic<T>();
     315      EXECUTOR<T>* executor = new EXECUTOR<T>();
    316316      this->cloning(executor);
    317317      executor->fp = this->fp;
     
    333333
    334334
    335     virtual void execute (BaseObject* object, const void* parameters = NULL)
     335    virtual void execute (BaseObject* object, const std::string& parameters = "")
    336336    {
    337337      SubString sub;
    338       if (parameters != NULL)
    339         sub.split((const char*)parameters, " \n\t,", '\\');
     338      sub.split(parameters, " \n\t,", '\\');
    340339//! FUNCTOR_LIST is the List of Executive Functions
    341340#define FUNCTOR_LIST(x) ExecutorExecute ## x
  • branches/std/src/lib/util/executor/executor_specials.h

    r7197 r7214  
    6060     * @param loadString ignored in this case
    6161     */
    62     virtual void execute(BaseObject* object, const void* parameters = NULL)
     62    virtual void execute(BaseObject* object, const std::string& = "")
    6363    {
    6464      if (object != NULL && this->element != NULL)
  • branches/std/src/lib/util/executor/functor_list.h

    r7203 r7214  
    7474//#define l_VECTOR_DEFAULT   Vector(0,0,0)        //!< Default value for a VECTOR
    7575
    76 #define l_CSTRING_TYPE     const char*          //!< The type of a STRING
    77 #define l_CSTRING_FUNC     isCString            //!< The function to parse a STRING
    78 #define l_CSTRING_NAME     "cstring"            //!< The name of a STRING
    79 #define l_CSTRING_PARAM    MT_STRING            //!< the type of the parameter STRING
    80 #define l_CSTRING_DEFAULT  ""                   //!< a default Value for an STRING
     76#define l_CSTRING_TYPE     const char*          //!< The type of a CSTRING
     77#define l_CSTRING_FUNC     isCString            //!< The function to parse a CSTRING
     78#define l_CSTRING_NAME     "cstring"            //!< The name of a CSTRING
     79#define l_CSTRING_PARAM    MT_STRING            //!< the type of the parameter CSTRING
     80#define l_CSTRING_DEFAULT  ""                   //!< a default Value for an CSTRING
    8181
    8282#define l_STRING_TYPE      const std::string&   //!< The type of a STRING
    8383#define l_STRING_FUNC      isString             //!< The function to parse a STRING
    8484#define l_STRING_NAME      "string"             //!< The name of a STRING
    85 #define l_STRING_PARAM     MT_STRING            //!< the type of the parameter STRING
     85#define l_STRING_PARAM     MT_CSTRING           //!< the type of the parameter STRING
    8686#define l_STRING_DEFAULT   ""                   //!< a default Value for an STRING
    8787
  • branches/std/src/lib/util/helper_functions.cc

    r7211 r7214  
    104104{
    105105  if (STRING.size() > 0)
     106  {
     107    printf("DECISION1: %s\n", STRING.c_str());
    106108    return STRING;
     109  }
    107110  else
     111  {
     112    printf("DECISION2: %s\n", defaultValue.c_str());
    108113    return defaultValue;
     114  }
    109115}
    110116
  • branches/std/src/lib/util/loading/load_param.cc

    r7212 r7214  
    6666          ((this->executor->getType() & Executor_NoLoadString) == Executor_NoLoadString)))
    6767    {
    68       PRINTF(0)("Loading '%s' with Parameters '%s' onto: '%s'(%s)\n", this->paramName.c_str(), loadString.c_str(), this->object->getName(), this->object->getClassName());
    69       this->executor->execute(this->object, (const void*)loadString.c_str());
     68      PRINTF(0)("Loading value '%s' with Parameters '%s' onto: %s::%s\n", this->paramName.c_str(), loadString.c_str(), this->object->getClassName(), this->object->getName());
     69      this->executor->execute(this->object, loadString);
    7070    }
    7171    delete this->executor;
  • branches/std/src/lib/util/multi_type.cc

    r7211 r7214  
    5555      break;
    5656    case MT_STRING:
     57    case MT_CSTRING:
    5758      this->storedString = "";
    5859      break;
  • branches/std/src/lib/util/multi_type.h

    r7211 r7214  
    2424  MT_EXT1            = 32,                 //!< An external Type.
    2525  MT_EXT2            = 64,                 //!< An external Type.
     26
     27  MT_CSTRING         = 128,                //!< An entire String.
    2628} MT_Type;
    2729
  • branches/std/src/lib/util/substring.cc

    r7212 r7214  
    6363}
    6464
     65/**
     66 * An empty String
     67 */
     68const std::string SubString::emptyString = "";
     69
     70
    6571
    6672unsigned int SubString::split(const std::string& string, char splitter)
     
    101107
    102108/**
    103  * splits line into tokens and stores them in ret. Supports delimiters, escape characters,
     109 * @brief splits line into tokens and stores them in ret.
     110 * @param ret the Array, where the Splitted strings will be stored in
     111 * @param offsets an Array of Offsets, here the distance from the inputstring
     112 * to the beginning of the current token is stored
     113 * @param line the inputLine to split
     114 * @param delimiters a String of Delimiters (here the input will be splitted)
     115 * @param escape_char: Escape carater (escapes splitters)
     116 * @param safemode_char: the beginning of the safemode is marked with this
     117 * @param comment_char: the beginning of a comment is marked with this: (until the end of a Line)
     118 * @param start_state: the Initial state on how to parse the String.
     119 * @returns SPLIT_LINE_STATE the parser was in when returning
     120 *
     121 * Supports delimiters, escape characters,
    104122 * ignores special  characters between safemode_char and between comment_char and linend '\n'.
    105123 *
    106  * @returns SPLIT_LINE_STATE the parser was in when returning
    107124 */
    108125SPLIT_LINE_STATE SubString::splitLine(std::vector<std::string>& ret, std::vector<unsigned int>& offsets,
  • branches/std/src/lib/util/substring.h

    r7212 r7214  
    3535
    3636  inline unsigned int getCount() { return this->strings.size(); };
    37   const std::string& getString(unsigned int i) { return this->strings[i]; };
     37  const std::string& getString(unsigned int i) { return (i < this->strings.size()) ? this->strings[i] : emptyString; };
    3838  unsigned int getOffset(unsigned int i);
    3939
     
    4848   std::vector<std::string>  strings;                      //!< strings produced from a single string splitted in multiple strings
    4949   std::vector<unsigned int> offsets;                      //!< offsets of the beginning of the input-string to the beginning of each substring.
     50
     51   static const std::string emptyString;
    5052};
    5153
Note: See TracChangeset for help on using the changeset viewer.