00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef AbcParams_h
00024 #define AbcParams_h
00025
00026 #include "AlpsKnowledge.h"
00027 #include "AlpsParameterBase.h"
00028
00029
00030
00031
00032
00033 class AbcParams : public AlpsParameterSet {
00034 public:
00037 enum boolParams{
00039 cutDuringRampup,
00040
00041 endOfBoolParams
00042 };
00043
00045 enum intParams{
00047 statusInterval,
00049 logLevel,
00050
00051 endOfIntParams
00052 };
00053
00055 enum dblParams{
00056 dblDummy,
00057
00058 endOfDblParams
00059 };
00060
00062 enum strParams{
00063 strDummy,
00064
00065 endOfStrParams
00066 };
00067
00069 enum strArrayParams{
00070 strArrayDummy,
00071
00072 endOfStrArrayParams
00073 };
00074
00075 public:
00081 AbcParams() :
00082 AlpsParameterSet(
00083 static_cast<int>(endOfBoolParams),
00084 static_cast<int>(endOfIntParams),
00085 static_cast<int>(endOfDblParams),
00086 static_cast<int>(endOfStrParams),
00087 static_cast<int>(endOfStrArrayParams)
00088 )
00089 {
00090 createKeywordList();
00091 setDefaultEntries();
00092 }
00097 virtual void createKeywordList();
00099 virtual void setDefaultEntries();
00103 public:
00104
00112
00113
00114
00123
00124 inline char
00125 entry(const boolParams key) const { return bpar_[key]; }
00127 inline int
00128 entry(const intParams key) const { return ipar_[key]; }
00130 inline double
00131 entry(const dblParams key) const { return dpar_[key]; }
00133 inline const std::string&
00134 entry(const strParams key) const { return spar_[key]; }
00136 inline const std::vector<std::string>&
00137 entry(const strArrayParams key) const { return sapar_[key]; }
00140
00142 void setEntry(const boolParams key, const char * val) {
00143 bpar_[key] = atoi(val) ? true : false; }
00145 void setEntry(const boolParams key, const char val) {
00146 bpar_[key] = val ? true : false; }
00148 void setEntry(const boolParams key, const bool val) {
00149 bpar_[key] = val; }
00151 void setEntry(const intParams key, const char * val) {
00152 ipar_[key] = atoi(val); }
00154 void setEntry(const intParams key, const int val) {
00155 ipar_[key] = val; }
00157 void setEntry(const dblParams key, const char * val) {
00158 dpar_[key] = atof(val); }
00160 void setEntry(const dblParams key, const double val) {
00161 dpar_[key] = val; }
00163 void setEntry(const strParams key, const char * val) {
00164 spar_[key] = val; }
00166 void setEntry(const strArrayParams key, const char *val) {
00167 sapar_[key].push_back(val); }
00168
00169
00170
00175 void pack(AlpsEncoded& buf) {
00176 buf.writeRep(bpar_, endOfBoolParams)
00177 .writeRep(ipar_, endOfIntParams)
00178 .writeRep(dpar_, endOfDblParams);
00179 for (int i = 0; i < endOfStrParams; ++i)
00180 buf.writeRep(spar_[i]);
00181 for (int i = 0; i < endOfStrArrayParams; ++i) {
00182 buf.writeRep(sapar_[i].size());
00183 for (size_t j = 0; j < sapar_[i].size(); ++j)
00184 buf.writeRep(sapar_[i][j]);
00185 }
00186 }
00188 void unpack(AlpsEncoded& buf) {
00189 int dummy;
00190
00191 dummy = static_cast<int>(endOfBoolParams);
00192 buf.readRep(bpar_, dummy, false);
00193 dummy = static_cast<int>(endOfIntParams);
00194 buf.readRep(ipar_, dummy, false);
00195 dummy = static_cast<int>(endOfDblParams);
00196 buf.readRep(dpar_, dummy, false);
00197 for (int i = 0; i < endOfStrParams; ++i)
00198 buf.readRep(spar_[i]);
00199 for (int i = 0; i < endOfStrArrayParams; ++i) {
00200 size_t str_size;
00201 buf.readRep(str_size);
00202 sapar_[i].reserve(str_size);
00203 for (size_t j = 0; j < str_size; ++j){
00204
00205 sapar_[i].push_back(std::string());
00206 buf.readRep(sapar_[i].back());
00207 }
00208 }
00209 }
00212 };
00213
00214 #endif