--- trunk/FAS/src/extradata.cpp 2002/08/16 22:08:24 87 +++ trunk/FAS/src/extradata.cpp 2002/08/19 20:49:08 88 @@ -38,29 +38,23 @@ TExtraData &TExtraData::operator =(const TExtraData &e TExtraData &TExtraData::operator =(const TExtraData &extraData) { - if (this == &extraData) + if (this == &extraData) return *this; - + _ident = extraData._ident; _type = extraData._type; return *this; } -//member function for Energy Data -TEnergyData::TEnergyData() -{ - _ident = "Energy"; - _type = TExtraDataType::ENERGY; -} - /*********************************************************************** * Class TExtraDataList ***********************************************************************/ + void TExtraDataList::AddExtraData(TExtraData *extraData) { if (extraData != NULL) { - _extraDataList.push_back(extraData); + push_back(extraData); } } @@ -69,11 +63,11 @@ void TExtraDataList::RemoveExtraData(TExtraData *extra { vector::iterator i; - i = find(_extraDataList.begin(), _extraDataList.end(), extraData); + i = find(begin(), end(), extraData); - if (i != _extraDataList.end()) + if (i != end()) { - _extraDataList.erase(i); + erase(i); } else {//warning @@ -82,86 +76,40 @@ void TExtraDataList::RemoveExtraData(TExtraData *extra } -TExtraData *TExtraDataList::GetExtraData(int extraDataType) +TExtraData *TExtraDataList::GetExtraData(int type) { + vector::iterator i; -} +//Don't know the reason can not use functor here +// i = find_if(begin(), end(), TMatchExtraData(type)); -TExtraData *TExtraDataList::GetExtraData(string attr) -{ + for (i=begin(); iGetType() == type) + return *i; + } + return NULL; } -/*********************************************************************** -* Class TEnergyData -***********************************************************************/ - -TEnergyData::TEnergyData(const TEnergyData &energyData) : TExtraData(energyData) +TExtraData *TExtraDataList::GetExtraData(string ident) { - _energy = energyData._energy; -} + vector::iterator i; -TEnergyData &TEnergyData::operator =(const TEnergyData &energyData) -{ - if (this == &energyData) - return *this; - TExtraData::operator =(energyData); - _energy = energyData._energy; -} +//Don't know the reason can not use functor here +// i = find_if(begin(), end(), TMatchExtraData(ident)); -TEnergyData::~TEnergyData() -{ - _energy.clear(); -} + for (i=begin(); iGetIdent() == ident) + return *i; + } -map::iterator TEnergyData::FindEnergy(int energyType) -{ - return _energy.find(energyType); -} + return NULL; -void TEnergyData::AddEnergy(int energyType, float value) -{ - _energy.insert(map::value_type(energyType, value)); } -void TEnergyData::ReplaceEnergy(int energyType, float value) -{ - map::iterator i; - i = FindEnergy(energyType); - - if (i != _energy.end()) - { - (*i).second = value; - } -} -void TEnergyData::DeleteEnergy(int energyType) -{ - map::iterator i; - i = FindEnergy(energyType); - - if (i != _energy.end()) - { - _energy.erase(i); - } -} - -//return the energy with specified type, return NULL if not find -float *TEnergyData::GetEnergy(int energyType) -{ - map::iterator i; - i = FindEnergy(energyType); - - if (i != _energy.end()) - { - return &((*i).second); - } - else - { - return NULL; - } -} - /*********************************************************************** * Class TBitVector ***********************************************************************/