>xabsl | The Extensible Agent Behavior Specification Language |
start | team | language reference | tools | xabsl engine | download | licence | |
XabslEngine Class Library Reference | |
  | |
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members
XabslParameters.hGo to the documentation of this file.00001 /** 00002 * @file XabslParameters.h 00003 * 00004 * Definition of class Parameters 00005 * 00006 * @author <a href="http://www.sim.informatik.tu-darmstadt.de/pers/card/risler.html">Max Risler</a> 00007 */ 00008 00009 #ifndef __XabslParameters_h_ 00010 #define __XabslParameters_h_ 00011 00012 #include "XabslTools.h" 00013 00014 namespace xabsl 00015 { 00016 00017 // class prototypes needed for declaration of Parameters 00018 class Symbols; 00019 class Enumeration; 00020 class Option; 00021 class State; 00022 class DecimalExpression; 00023 class BooleanExpression; 00024 class EnumeratedExpression; 00025 00026 /** 00027 * @class Parameters 00028 * 00029 * Represents the current set of parameters of a behavior or an input symbol 00030 */ 00031 class Parameters 00032 { 00033 public: 00034 /** 00035 * Constructor. 00036 * @param errorHandler A reference to a ErrorHandler instance 00037 */ 00038 Parameters(ErrorHandler& errorHandler) 00039 : errorHandler(errorHandler), pEnumerations(0) 00040 {} 00041 00042 /** 00043 * Destructor 00044 */ 00045 virtual ~Parameters() {}; 00046 00047 00048 /** Reset all parameters to default values (=0) */ 00049 void reset(); 00050 00051 /** The decimal parameters */ 00052 NamedArray<double*> decimal; 00053 00054 /** The boolean parameters */ 00055 NamedArray<bool*> boolean; 00056 00057 /** The enumerated parameters */ 00058 NamedArray<int*> enumerated; 00059 00060 /** The enumeration domain of the enumerated parameters */ 00061 NamedArray<const Enumeration*> enumerations; 00062 00063 /** 00064 * Registers a reference to the enumerations of the engine 00065 * This is only required when registerEnumerated is called afterwards 00066 */ 00067 void registerEnumerations(NamedArray<Enumeration*>& enumerations); 00068 00069 /** 00070 * Registers a reference to a decimal parameter at the parameters array. 00071 * @param name The name of the parameter 00072 * @param parameter The reference to a parameter 00073 */ 00074 void registerDecimal(const char* name, double& parameter); 00075 00076 /** 00077 * Registers a reference to a boolean parameter at the parameters array. 00078 * @param name The name of the parameter 00079 * @param parameter The reference to a parameter 00080 */ 00081 void registerBoolean(const char* name, bool& parameter); 00082 00083 /** 00084 * Registers a reference to an enumerated parameter at the parameters array. 00085 * @param name The name of the parameter 00086 * @param enumName The name of the corresponding enumeration 00087 * @param parameter The reference to a parameter 00088 */ 00089 void registerEnumerated(const char* name, const char* enumName, int& parameter); 00090 00091 protected: 00092 /** Used for error handling */ 00093 ErrorHandler& errorHandler; 00094 00095 private: 00096 /** Pointer to the enumerations of the engine */ 00097 NamedArray<Enumeration*>* pEnumerations; 00098 }; 00099 00100 /** 00101 * @class ParameterAssignment 00102 * 00103 * Represents the assignment of parameters of a subsequent basic behaviors or an option or an input symbol 00104 */ 00105 class ParameterAssignment : public Parameters 00106 { 00107 public: 00108 /** Constructor. 00109 * @param refParameters The referenced set of parameters 00110 * @param errorHandler A reference to a ErrorHandler instance 00111 */ 00112 ParameterAssignment( 00113 Parameters* refParameters, 00114 ErrorHandler& errorHandler 00115 ); 00116 00117 /** 00118 * Creates the parameter assignment. 00119 * @param input An input source for the intermediate code. It must be opened and read until 00120 * A position where a state starts. 00121 * @param symbols All available symbols 00122 * @param option The current option 00123 * @param state The current state 00124 */ 00125 void create( 00126 InputSource& input, 00127 Symbols& symbols, 00128 Option& option, 00129 State& state); 00130 00131 /** Destructor */ 00132 ~ParameterAssignment(); 00133 00134 /** Adds a decimal parameter assignment 00135 * @param param name of the parameter 00136 * @param exp expression to be set to the parameter value when executing 00137 * @return False, if an error occurred 00138 */ 00139 bool setDecimalParameter(const char* param, const DecimalExpression* exp); 00140 /** Adds a decimal parameter assignment 00141 * @param param name of the parameter 00142 * @param value value to be set to the parameter value when executing 00143 * @return False, if an error occurred 00144 */ 00145 bool setDecimalParameter(const char* param, double value); 00146 00147 /** Adds a boolean parameter assignment 00148 * @param param name of the parameter 00149 * @param exp expression to be set to the parameter value when executing 00150 * @return False, if an error occurred 00151 */ 00152 bool setBooleanParameter(const char* param, const BooleanExpression* exp); 00153 /** Adds a boolean parameter assignment 00154 * @param param name of the parameter 00155 * @param value value to be set to the parameter value when executing 00156 * @return False, if an error occurred 00157 */ 00158 bool setBooleanParameter(const char* param, bool value); 00159 00160 /** Adds an enumerated parameter assignment 00161 * @param param name of the parameter 00162 * @param exp expression to be set to the parameter value when executing 00163 * @return False, if an error occurred 00164 */ 00165 bool setEnumeratedParameter(const char* param, const EnumeratedExpression* exp); 00166 /** Adds an enumerated parameter assignment 00167 * @param param name of the parameter 00168 * @param value value to be set to the parameter value when executing 00169 * @return False, if an error occurred 00170 */ 00171 bool setEnumeratedParameter(const char* param, const Enumeration* enumeration, int value); 00172 /** Adds an enumerated parameter assignment 00173 * @param param name of the parameter 00174 * @param value value to be set to the parameter value when executing 00175 * @return False, if an error occurred 00176 */ 00177 bool setEnumeratedParameter(const char* param, const char* value); 00178 00179 /** Current parameter values, these are stored just for debugging purposes */ 00180 NamedArray<double> decimalValues; 00181 NamedArray<bool> booleanValues; 00182 NamedArray<int> enumeratedValues; 00183 00184 /** Decimal expressions for the parameters */ 00185 NamedArray<const DecimalExpression*> decimalExpressions; 00186 /** Boolean expressions for the parameters */ 00187 NamedArray<const BooleanExpression*> booleanExpressions; 00188 /** Enumerated expressions for the parameters */ 00189 NamedArray<const EnumeratedExpression*> enumeratedExpressions; 00190 00191 /** 00192 * sets parameter variables to current expression values 00193 * returns true when parameter values have been changed 00194 */ 00195 bool set(); 00196 }; 00197 00198 } // namespace 00199 00200 #endif // __XabslParameters_h_ 00201 00202 Up | Main Page | Generated at Wed Aug 19 17:32:29 2009.
|
|
Copyright 2002 - 2009 by the XABSL developer team. See the licence for details. | |