#include <EFResult.h>
Public Member Functions | |
bool | addToEFVec (uint32_t val, uint32_t pos) |
bool | addToEFVec (uint32_t val, uint32_t pos) |
bool | appToEFVec (double val, uint32_t pos) |
bool | appToEFVec (double val, uint32_t pos) |
virtual const CLID & | clID () const |
virtual const CLID & | clID () const |
EFResult () | |
EFResult (std::vector< uint32_t >, uint32_t) | |
EFResult (std::vector< std::string >) | |
EFResult () | |
EFResult (std::vector< uint32_t >, uint32_t) | |
EFResult (std::vector< std::string >) | |
const std::string | getAnswer () const |
const std::string | getAnswer () const |
const int | getAnswerIndex () const |
const int | getAnswerIndex () const |
const int | getDecNum () const |
const int | getDecNum () const |
const uint32_t | getEFVec (uint32_t pos) const |
const std::vector< uint32_t > | getEFVec () const |
const uint32_t | getEFVec (uint32_t pos) const |
const std::vector< uint32_t > | getEFVec () const |
const std::string | getMidAnswer () const |
const std::string | getMidAnswer () const |
const int | getMidAnswerIndex () const |
const int | getMidAnswerIndex () const |
bool | push_back (uint32_t val) |
bool | push_back (uint32_t val) |
void | reset () |
void | reset () |
void | setAnswer (std::string &answer) |
void | setAnswer (std::string &answer) |
void | setMidAnswer (std::string &answer) |
void | setMidAnswer (std::string &answer) |
bool | setVecBit (bool val, uint32_t vecpos, uint32_t bitpos) |
bool | setVecBit (uint32_t val, uint32_t vecpos, uint32_t bbegin, uint32_t bend) |
bool | setVecBit (bool val, uint32_t vecpos, uint32_t bitpos) |
bool | setVecBit (uint32_t val, uint32_t vecpos, uint32_t bbegin, uint32_t bend) |
virtual | ~EFResult () |
virtual | ~EFResult () |
Static Public Member Functions | |
const CLID & | classID () |
const CLID & | classID () |
Private Attributes | |
int | m_answerIndex |
Index of the chosen EF answer inside the List. | |
std::vector< std::string > | m_answerVector |
List of supported string answers. | |
std::vector< std::string > | m_answerVector |
List of supported string answers. | |
std::vector< uint32_t > | m_efVec |
Vector of 32bit ints with EFResult data members. | |
std::vector< uint32_t > | m_efVec |
Vector of 32bit ints with EFResult data members. | |
int | m_midanswerIndex |
|
00005 : m_answerVector(ans), 00006 m_answerIndex(-1), 00007 m_midanswerIndex(-1), 00008 m_efVec() 00009 { 00010 }
|
|
00013 : m_answerVector(), 00014 m_answerIndex(-1), 00015 m_midanswerIndex(-1), 00016 m_efVec() 00017 { 00018 if(vec.size()+pos>54) { 00019 std::cout <<"***EFResult:EFResult(): vector size error!" << endl; 00020 m_efVec.resize(54,0); 00021 } 00022 else{ 00023 for(unsigned int i=0;i<54;++i){ 00024 if(i<pos||i>=vec.size()+pos) m_efVec.push_back(0); 00025 else m_efVec.push_back(vec[i-pos]); 00026 } 00027 } 00028 }
|
|
00030 : 00031 m_answerVector(), 00032 m_answerIndex(-1), 00033 m_midanswerIndex(-1), 00034 m_efVec() 00035 { 00036 00037 }
|
|
00039 {}
|
|
|
|
|
|
|
|
|
|
|
|
00085 { 00086 if(pos>=54) return false; 00087 if(m_efVec.size()!=0&&m_efVec.size()<54){ 00088 std::cout << "EFResult::addToEFVec-->size error!" <<endl; 00089 } 00090 if(m_efVec.size()==0) m_efVec.resize(54,0); 00091 00092 m_efVec[pos] +=val; 00093 00094 return true; 00095 }
|
|
|
|
00069 { 00070 if(pos>=54) return false; 00071 if(m_efVec.size()!=0&&m_efVec.size()<54){ 00072 std::cout << "EFResult::appToEFVec-->size error!" <<endl; 00073 } 00074 if(m_efVec.size()==0) m_efVec.resize(54,0); 00075 //m_efVec[pos]=val*1000000.; 00076 float a=val; 00077 m_efVec[pos]=*((uint32_t*)&a); 00078 //double* p=m_efVec; 00079 //p[pos]=val; 00080 //std::cout <<"Before:"<<val<<"; "<<a<<"; After:"<<*((float*)(&(m_efVec[pos])))<<endl; 00081 return true; 00082 }
|
|
|
|
00042 { 00043 return CLID_EFResult; // hxt ClassID_traits<EFResult>::ID(); 00044 }
|
|
|
|
00047 { 00048 return EFResult::classID(); 00049 }
|
|
|
|
00169 { return m_answerVector[m_answerIndex]; }
|
|
|
|
00171 { return m_answerIndex; }
|
|
|
|
|
|
|
|
|
|
|
|
00052 {
00053 return m_efVec;
00054 }
|
|
|
|
00173 { return m_answerVector[m_midanswerIndex]; }
|
|
|
|
00175 { return m_midanswerIndex; }
|
|
|
|
00061 { 00062 if(m_efVec.size()>0&&m_efVec.size()<54) return false; 00063 if(m_efVec.size()==0) m_efVec.resize(54,0); 00064 m_efVec.push_back(val); 00065 return true; 00066 }
|
|
|
|
00157 { 00158 m_answerIndex = -1; 00159 m_midanswerIndex = -1; 00160 if(m_efVec.size()>=54){ 00161 m_efVec.resize(54,0); 00162 for(unsigned int i=0;i<m_efVec.size();++i) m_efVec[i]=0; 00163 } 00164 else if(m_efVec.size()!=0){ 00165 std::cout <<"EFResult::reset(): m_efVec size check error!"<<endl; 00166 } 00167 }
|
|
|
|
00119 { 00120 int iCount = 0; 00121 00122 std::vector<std::string>::iterator itVs = m_answerVector.begin(); 00123 std::vector<std::string>::iterator endVs = m_answerVector.end(); 00124 for (;itVs != endVs && m_answerIndex == -1; ++itVs) { 00125 if (*itVs == answer) { 00126 m_answerIndex = iCount; 00127 00128 // Store the answer index in the first data member field 00129 // zoujh: memory leak ... what's the use of m_efVec ? 00130 //m_efVec.push_back(m_answerIndex); 00131 } 00132 iCount++; 00133 } 00134 }
|
|
|
|
00137 { 00138 int iCount = 0; 00139 //cout << "EFResult::setMidAnswer "<<answer<<" ("<<m_answerVector.size()<<")"<<endl; 00140 std::vector<std::string>::iterator itVs = m_answerVector.begin(); 00141 std::vector<std::string>::iterator endVs = m_answerVector.end(); 00142 for (;itVs != endVs && m_answerIndex == -1; ++itVs) { 00143 if (*itVs == answer) { 00144 m_midanswerIndex = iCount; 00145 00146 // Store the answer index in the first data member field 00147 // zoujh: memory leak ... what's the use of m_efVec ? 00148 //m_efVec.push_back(m_answerIndex); 00149 } 00150 //cout<<(*itVs)<<endl; 00151 iCount++; 00152 } 00153 //cout<<m_midanswerIndex<<endl; 00154 }
|
|
|
|
|
|
00109 { 00110 if(vecpos>=54) return false; 00111 if(bitpos>=32) return false; 00112 if(m_efVec.size()==0) m_efVec.resize(54,0); 00113 if(val) m_efVec[vecpos]|=(1<<bitpos); 00114 else m_efVec[vecpos]&=(~(1<<bitpos)); 00115 return true; 00116 }
|
|
00098 { 00099 if(vecpos>=54) return false; 00100 if(bend>=32||bbegin>bend) return false; 00101 if(m_efVec.size()==0) m_efVec.resize(54,0); 00102 uint32_t bits=0xFFFFFFFF>>(31-bend+bbegin); 00103 m_efVec[vecpos]&= (~((bits)<<bbegin)); 00104 m_efVec[vecpos]|= (val&bits)<<bbegin; 00105 return true; 00106 }
|
|
Index of the chosen EF answer inside the List.
|
|
List of supported string answers.
|
|
List of supported string answers.
|
|
Vector of 32bit ints with EFResult data members.
|
|
Vector of 32bit ints with EFResult data members.
|
|
|