Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

EFResult Class Reference

#include <EFResult.h>

List of all members.

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


Constructor & Destructor Documentation

EFResult::EFResult std::vector< std::string >   ) 
 

00005   : m_answerVector(ans),
00006     m_answerIndex(-1), 
00007     m_midanswerIndex(-1),
00008     m_efVec()
00009 {
00010 }

EFResult::EFResult std::vector< uint32_t >  ,
uint32_t 
 

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 }

EFResult::EFResult  ) 
 

00030                   :
00031   m_answerVector(),
00032   m_answerIndex(-1),
00033   m_midanswerIndex(-1),
00034   m_efVec()
00035 {
00036 
00037 }

EFResult::~EFResult  )  [virtual]
 

00039 {}

EFResult::EFResult std::vector< std::string >   ) 
 

EFResult::EFResult std::vector< uint32_t >  ,
uint32_t 
 

EFResult::EFResult  ) 
 

virtual EFResult::~EFResult  )  [virtual]
 


Member Function Documentation

bool EFResult::addToEFVec uint32_t  val,
uint32_t  pos
 

bool EFResult::addToEFVec uint32_t  val,
uint32_t  pos
 

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 }

bool EFResult::appToEFVec double  val,
uint32_t  pos
 

bool EFResult::appToEFVec double  val,
uint32_t  pos
 

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 }

const CLID& EFResult::classID  )  [static]
 

const CLID & EFResult::classID  )  [static]
 

00042 {
00043   return CLID_EFResult; // hxt  ClassID_traits<EFResult>::ID();
00044 }

virtual const CLID& EFResult::clID  )  const [virtual]
 

const CLID & EFResult::clID  )  const [virtual]
 

00047 {
00048   return EFResult::classID();
00049 }

const std::string EFResult::getAnswer  )  const
 

const std::string EFResult::getAnswer  )  const
 

00169 { return m_answerVector[m_answerIndex]; }

const int EFResult::getAnswerIndex  )  const
 

const int EFResult::getAnswerIndex  )  const
 

00171 { return m_answerIndex; }

const int EFResult::getDecNum  )  const [inline]
 

00068                              { 
00069     if(m_efVec.size()>=54)return m_efVec.size()-54;
00070     else return 0;
00071   }

const int EFResult::getDecNum  )  const [inline]
 

00068                              { 
00069     if(m_efVec.size()>=54)return m_efVec.size()-54;
00070     else return 0;
00071   }

const uint32_t EFResult::getEFVec uint32_t  pos  )  const
 

const std::vector<uint32_t> EFResult::getEFVec  )  const
 

const uint32_t EFResult::getEFVec uint32_t  pos  )  const
 

00056 {
00057   if(pos>=m_efVec.size())return 0;
00058   else return m_efVec[pos];
00059 }

const std::vector< uint32_t > EFResult::getEFVec  )  const
 

00052 {
00053   return m_efVec;
00054 }

const std::string EFResult::getMidAnswer  )  const
 

const std::string EFResult::getMidAnswer  )  const
 

00173 { return m_answerVector[m_midanswerIndex]; }

const int EFResult::getMidAnswerIndex  )  const
 

const int EFResult::getMidAnswerIndex  )  const
 

00175 { return m_midanswerIndex; }

bool EFResult::push_back uint32_t  val  ) 
 

bool EFResult::push_back uint32_t  val  ) 
 

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 }

void EFResult::reset  ) 
 

void EFResult::reset  ) 
 

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 }

void EFResult::setAnswer std::string &  answer  ) 
 

void EFResult::setAnswer std::string &  answer  ) 
 

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 }

void EFResult::setMidAnswer std::string &  answer  ) 
 

void EFResult::setMidAnswer std::string &  answer  ) 
 

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 }

bool EFResult::setVecBit bool  val,
uint32_t  vecpos,
uint32_t  bitpos
 

bool EFResult::setVecBit uint32_t  val,
uint32_t  vecpos,
uint32_t  bbegin,
uint32_t  bend
 

bool EFResult::setVecBit bool  val,
uint32_t  vecpos,
uint32_t  bitpos
 

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 }

bool EFResult::setVecBit uint32_t  val,
uint32_t  vecpos,
uint32_t  bbegin,
uint32_t  bend
 

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 }


Member Data Documentation

int EFResult::m_answerIndex [private]
 

Index of the chosen EF answer inside the List.

std::vector<std::string> EFResult::m_answerVector [private]
 

List of supported string answers.

std::vector<std::string> EFResult::m_answerVector [private]
 

List of supported string answers.

std::vector<uint32_t> EFResult::m_efVec [private]
 

Vector of 32bit ints with EFResult data members.

std::vector<uint32_t> EFResult::m_efVec [private]
 

Vector of 32bit ints with EFResult data members.

int EFResult::m_midanswerIndex [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:00:56 2011 for BOSS6.5.5 by  doxygen 1.3.9.1