Changeset 7214 in orxonox.OLD for branches/std/src/lib/util
- Timestamp:
- Mar 10, 2006, 7:18:03 PM (19 years ago)
- Location:
- branches/std/src/lib/util
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/std/src/lib/util/executor/executor.h
r7212 r7214 48 48 49 49 /** 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; 51 51 52 52 /** @returns the Type of this Function (either static or objective) */ … … 192 192 #define ExecutorExecute1(t1) \ 193 193 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))) 195 195 196 196 //! execute-macro for functions with two parameters 197 197 #define ExecutorExecute2(t1,t2) \ 198 198 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))) 200 200 201 201 //! execute-macro for functions with three parameters 202 202 #define ExecutorExecute3(t1,t2,t3) \ 203 203 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))) 205 205 206 206 //! execute-macro for functions with four parameters 207 207 #define ExecutorExecute4(t1,t2,t3,t4) \ 208 208 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))) \ 210 210 211 211 … … 213 213 #define ExecutorExecute5(t1,t2,t3,t4,t5) \ 214 214 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))) 216 216 217 217 … … 242 242 #define EXECUTORTYPE Executor_Objective 243 243 //! keeps information about a Executor 244 template<class T> class E xecutorObjective: public Executor244 template<class T> class EXECUTOR : public Executor 245 245 { 246 246 public: 247 E xecutorObjective() : Executor() { };247 EXECUTOR() : Executor() { }; 248 248 // COPY constuctor (virtual version) 249 249 virtual Executor* clone () const 250 250 { 251 E xecutorObjective<T>* executor = new ExecutorObjective<T>();251 EXECUTOR<T>* executor = new EXECUTOR<T>(); 252 252 this->cloning(executor); 253 253 executor->fp = this->fp; … … 268 268 } fp; 269 269 270 virtual void execute (BaseObject* object, const void* parameters = NULL)270 virtual void execute (BaseObject* object, const std::string& parameters = "") 271 271 { 272 272 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(); 276 276 //! FUNCTOR_LIST is the List of Executive Functions 277 277 #define FUNCTOR_LIST(x) ExecutorExecute ## x … … 309 309 { 310 310 public: 311 E xecutorStatic() : Executor() { };311 EXECUTOR() : Executor() { }; 312 312 // COPY constuctor 313 313 virtual Executor* clone () const 314 314 { 315 E xecutorStatic<T>* executor = new ExecutorStatic<T>();315 EXECUTOR<T>* executor = new EXECUTOR<T>(); 316 316 this->cloning(executor); 317 317 executor->fp = this->fp; … … 333 333 334 334 335 virtual void execute (BaseObject* object, const void* parameters = NULL)335 virtual void execute (BaseObject* object, const std::string& parameters = "") 336 336 { 337 337 SubString sub; 338 if (parameters != NULL) 339 sub.split((const char*)parameters, " \n\t,", '\\'); 338 sub.split(parameters, " \n\t,", '\\'); 340 339 //! FUNCTOR_LIST is the List of Executive Functions 341 340 #define FUNCTOR_LIST(x) ExecutorExecute ## x -
branches/std/src/lib/util/executor/executor_specials.h
r7197 r7214 60 60 * @param loadString ignored in this case 61 61 */ 62 virtual void execute(BaseObject* object, const void* parameters = NULL)62 virtual void execute(BaseObject* object, const std::string& = "") 63 63 { 64 64 if (object != NULL && this->element != NULL) -
branches/std/src/lib/util/executor/functor_list.h
r7203 r7214 74 74 //#define l_VECTOR_DEFAULT Vector(0,0,0) //!< Default value for a VECTOR 75 75 76 #define l_CSTRING_TYPE const char* //!< The type of a STRING77 #define l_CSTRING_FUNC isCString //!< The function to parse a STRING78 #define l_CSTRING_NAME "cstring" //!< The name of a STRING79 #define l_CSTRING_PARAM MT_STRING //!< the type of the parameter STRING80 #define l_CSTRING_DEFAULT "" //!< a default Value for an STRING76 #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 81 81 82 82 #define l_STRING_TYPE const std::string& //!< The type of a STRING 83 83 #define l_STRING_FUNC isString //!< The function to parse a STRING 84 84 #define l_STRING_NAME "string" //!< The name of a STRING 85 #define l_STRING_PARAM MT_ STRING//!< the type of the parameter STRING85 #define l_STRING_PARAM MT_CSTRING //!< the type of the parameter STRING 86 86 #define l_STRING_DEFAULT "" //!< a default Value for an STRING 87 87 -
branches/std/src/lib/util/helper_functions.cc
r7211 r7214 104 104 { 105 105 if (STRING.size() > 0) 106 { 107 printf("DECISION1: %s\n", STRING.c_str()); 106 108 return STRING; 109 } 107 110 else 111 { 112 printf("DECISION2: %s\n", defaultValue.c_str()); 108 113 return defaultValue; 114 } 109 115 } 110 116 -
branches/std/src/lib/util/loading/load_param.cc
r7212 r7214 66 66 ((this->executor->getType() & Executor_NoLoadString) == Executor_NoLoadString))) 67 67 { 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); 70 70 } 71 71 delete this->executor; -
branches/std/src/lib/util/multi_type.cc
r7211 r7214 55 55 break; 56 56 case MT_STRING: 57 case MT_CSTRING: 57 58 this->storedString = ""; 58 59 break; -
branches/std/src/lib/util/multi_type.h
r7211 r7214 24 24 MT_EXT1 = 32, //!< An external Type. 25 25 MT_EXT2 = 64, //!< An external Type. 26 27 MT_CSTRING = 128, //!< An entire String. 26 28 } MT_Type; 27 29 -
branches/std/src/lib/util/substring.cc
r7212 r7214 63 63 } 64 64 65 /** 66 * An empty String 67 */ 68 const std::string SubString::emptyString = ""; 69 70 65 71 66 72 unsigned int SubString::split(const std::string& string, char splitter) … … 101 107 102 108 /** 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, 104 122 * ignores special characters between safemode_char and between comment_char and linend '\n'. 105 123 * 106 * @returns SPLIT_LINE_STATE the parser was in when returning107 124 */ 108 125 SPLIT_LINE_STATE SubString::splitLine(std::vector<std::string>& ret, std::vector<unsigned int>& offsets, -
branches/std/src/lib/util/substring.h
r7212 r7214 35 35 36 36 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; }; 38 38 unsigned int getOffset(unsigned int i); 39 39 … … 48 48 std::vector<std::string> strings; //!< strings produced from a single string splitted in multiple strings 49 49 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; 50 52 }; 51 53
Note: See TracChangeset
for help on using the changeset viewer.