Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/util/executor/executor_functional.cc @ 8591

Last change on this file since 8591 was 8408, checked in by bensch, 18 years ago

trunk: merged the script_engine branche back here
merged with command
svn merge https://svn.orxonox.net/orxonox/branches/script_engine . -r8284:HEAD
no conflicts

File size: 4.2 KB
Line 
1/*
2   orxonox - the future of 3D-vertical-scrollers
3
4   Copyright (C) 2004 orx
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11### File Specific:
12   main-programmer: Benjamin Grauer
13   co-programmer: ...
14*/
15
16#include "executor.h"
17std::string ExecutorFunctional_returningString_from[5];
18
19
20template<> MT_Type ExecutorParamType<bool>() { return MT_BOOL; };
21template<> MT_Type ExecutorParamType<int>() { return MT_INT; };
22template<> MT_Type ExecutorParamType<unsigned int>() { return MT_UINT; };
23template<> MT_Type ExecutorParamType<float>() { return MT_FLOAT; };
24template<> MT_Type ExecutorParamType<char>() { return MT_CHAR; };
25template<> MT_Type ExecutorParamType<const std::string&>() { return MT_STRING; };
26
27template<> bool fromString<bool>(const std::string& input, bool defaultValue) { return isBool(input, defaultValue); };
28template<> int fromString<int>(const std::string& input, int defaultValue) { return isInt(input, defaultValue); };
29template<> unsigned int fromString<unsigned int>(const std::string& input, unsigned int defaultValue) { return isInt(input, defaultValue); };
30template<> float fromString<float>(const std::string& input, float defaultValue) { return isFloat(input, defaultValue); };
31template<> char fromString<char>(const std::string& input, char defaultValue) { return isInt(input, defaultValue); };
32template<> const std::string& fromString<const std::string&>(const std::string& input, const std::string& defaultValue) { return (input.size() > 0) ? input : defaultValue; };
33
34
35template<> bool fromMulti<bool>(const MultiType& multi) { return multi.getBool(); };
36template<> int fromMulti<int>(const MultiType& multi) { return multi.getInt(); }
37template<> unsigned int fromMulti<unsigned int>(const MultiType& multi) { return multi.getInt(); };
38template<> float fromMulti<float>(const MultiType& multi) { return multi.getFloat(); };
39template<> char fromMulti<char>(const MultiType& multi) { return multi.getChar(); };
40template<> const std::string& fromMulti<const std::string&>(const MultiType& multi) { return multi.getConstString(); };
41
42
43template<> bool getDefault<bool>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getBool(); };
44template<> int getDefault<int>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getInt(); };
45template<> unsigned int getDefault<unsigned int>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getInt(); };
46template<> float getDefault<float>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getFloat(); };
47template<> char getDefault<char>(const MultiType* const defaultValues, unsigned int i) { return defaultValues[i].getChar(); };
48template<> const std::string& getDefault<const std::string&>(const MultiType* const defaultValues, unsigned int i) { return ExecutorFunctional_returningString_from[i] = defaultValues[i].getString(); };
49
50
51
52
53
54
55
56/**
57 * A LITTLE TESTING SUITE FOR THE EXECUTOR.
58 *
59#include "executor/executor_functional.h"
60
61#define EXECUTOR_FUNCTIONAL_USE_STATIC
62#include "executor/executor_functional.h"
63
64class TestClass : public BaseObject
65{
66  public:
67    TestClass() {};
68
69    void printTest() { printf ("TEST\n"); };
70    void printTestInt(int i) { printf ("%d\n", i); };
71    void printTestBool(bool b) { printf("%d\n", (int)b); };
72    void printTwoVals(int b, int i) { printf ("%d %d\n", b, i); };
73    void printStrings(const std::string& name) { printf("String:: '%s'\n", name.c_str()); };
74    static void printStatic() { printf("STATIC\n");};
75};
76
77void TEST()
78{
79  TestClass test;
80  SubString testStrings("1 SCHEISSE, 2, 3", ",", SubString::WhiteSpaces, false);
81  (*createExecutor<TestClass>(&TestClass::printTest))(&test, testStrings);
82  (*createExecutor<TestClass>(&TestClass::printTestInt))(&test, testStrings);
83  (*createExecutor<TestClass>(&TestClass::printTestBool))(&test, testStrings);
84  (*createExecutor<TestClass>(&TestClass::printTwoVals))(&test, testStrings);
85  (*createExecutor<TestClass>(&TestClass::printStatic))(&test, testStrings);
86  (*createExecutor<TestClass>(&TestClass::printStrings))(&test, testStrings);
87
88}
89*/
Note: See TracBrowser for help on using the repository browser.