1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
#include <iostream>
#include "parameter_list.h"
ParameterList::~ParameterList() {
list<ParameterDefinition*>::iterator it;
for(it=parameter_list.begin(); it!=parameter_list.end(); it++) {
delete *it;
}
}
void ParameterList::addParameter(const string ¶m_name, int param_type, void *bind_variable) {
parameter_list.push_back(new ParameterDefinition(param_name, param_type, bind_variable));
}
void ParameterList::setParameter(const string ¶m_name, const string ¶m_value) {
list<ParameterDefinition*>::iterator it;
for(it=parameter_list.begin(); it!=parameter_list.end(); it++) {
ParameterDefinition *pd=*it;
if(pd->param_name==param_name) {
switch(pd->param_type) {
case PARAM_TYPE_INT: *(int*)(pd->bind_variable)=atoi(param_value.c_str()); break;
case PARAM_TYPE_DOUBLE: *(double*)(pd->bind_variable)=atof(param_value.c_str()); break;
case PARAM_TYPE_STRING: *(string*)(pd->bind_variable)=param_value; break;
}
return;
}
}
cerr<<"unknown parameter '"<<param_name<<"'"<<endl;
}
void ParameterList::setParameter(const string ¶m_name, int param_value) {
list<ParameterDefinition*>::iterator it;
for(it=parameter_list.begin(); it!=parameter_list.end(); it++) {
ParameterDefinition *pd=*it;
if(pd->param_name==param_name) {
*(int*)(pd->bind_variable)=param_value;
return;
}
}
cerr<<"unknown parameter '"<<param_name<<"'"<<endl;
}
void ParameterList::setParameter(const string ¶m_name, double param_value) {
list<ParameterDefinition*>::iterator it;
for(it=parameter_list.begin(); it!=parameter_list.end(); it++) {
ParameterDefinition *pd=*it;
if(pd->param_name==param_name) {
*(double*)(pd->bind_variable)=param_value;
return;
}
}
cerr<<"unknown parameter '"<<param_name<<"'"<<endl;
}
string ParameterList::parameterAsString(const string ¶m_name) {
list<ParameterDefinition*>::iterator it;
for(it=parameter_list.begin(); it!=parameter_list.end(); it++) {
ParameterDefinition *pd=*it;
if(pd->param_name==param_name) {
return *(string*)(pd->bind_variable);
}
}
return "";
}
int ParameterList::parameterAsInt(const string ¶m_name) {
list<ParameterDefinition*>::iterator it;
for(it=parameter_list.begin(); it!=parameter_list.end(); it++) {
ParameterDefinition *pd=*it;
if(pd->param_name==param_name) {
return *(int*)(pd->bind_variable);
}
}
return 0;
}
double ParameterList::parameterAsDouble(const string ¶m_name) {
list<ParameterDefinition*>::iterator it;
for(it=parameter_list.begin(); it!=parameter_list.end(); it++) {
ParameterDefinition *pd=*it;
if(pd->param_name==param_name) {
return *(double*)(pd->bind_variable);
}
}
return 0.0;
}
void ParameterList::listParameters() {
list<ParameterDefinition*>::iterator it;
for(it=parameter_list.begin(); it!=parameter_list.end(); it++) {
ParameterDefinition *pd=*it;
cerr<<pd->param_name<<"\t\t\t";
switch(pd->param_type) {
case PARAM_TYPE_INT: cerr<<": integer value"; break;
case PARAM_TYPE_DOUBLE: cerr<<": floating point value"; break;
case PARAM_TYPE_STRING: cerr<<": string value"; break;
}
cerr<<endl;
}
}
|