--- trunk/FAS/src/extradata.cpp 2002/08/13 16:02:26 66 +++ trunk/FAS/src/extradata.cpp 2002/08/19 20:49:08 88 @@ -1,7 +1,29 @@ +/********************************************************************** +* Copyright (C) 2002-2003 by Gezelter's Group +*This program is free software; you can redistribute it and/or modify +*it under the terms of the GNU General Public License as published by +*the Free Software Foundation version 2 of the License. +* +*This program is distributed in the hope that it will be useful, +*but WITHOUT ANY WARRANTY; without even the implied warranty of +*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +*GNU General Public License for more details. +* +************************************************************************ +*Author: Teng Lin Email: tlin@nd.edu +*Date: 08/13/2002 Version: 1.0 +* +************************************************************************ +*Description: +* +***********************************************************************/ #include #include "extradata.h" -//member function for TExtraData +/*********************************************************************** +* Class TExtraData +***********************************************************************/ + TExtraData::TExtraData() { _ident = "unknown"; @@ -14,85 +36,81 @@ TExtraData::TExtraData(const TExtraData & extraData) _type = extraData._type; } -TExtraData &TExtraData::operator =(const TExtraData extraData) +TExtraData &TExtraData::operator =(const TExtraData &extraData) { - if (this == &extraData) + if (this == &extraData) return *this; - - _indet = extraData._ident; + + _ident = extraData._ident; _type = extraData._type; return *this; } -//member function for Energy Data -TEnergyData::TEnergyData() -{ - _ident = "Energy"; - _type = TExtraDataType::ENERGY; -} +/*********************************************************************** +* Class TExtraDataList +***********************************************************************/ -TEnergyData::TEnergyData(const TEnergyData &energyData) : TExtraData(energyData) +void TExtraDataList::AddExtraData(TExtraData *extraData) { - _energy = energyData._energy; -} + if (extraData != NULL) + { + push_back(extraData); + } -TEnergyData &TEnergyData::operator =(TEnergyData &energyData) -{ - if (this == &energyData) - return *this; - TExtraData::operator =(enrgyData); - _energy = energyDataType._energy; } -TEnergyData::~TEnergyData() +void TExtraDataList::RemoveExtraData(TExtraData *extraData) { - _energy.clear(); -} + vector::iterator i; -map::iterator TEnergyData::FindEnergy(int energyType) -{ - return find(_energy.begin(), _energy.end(), energyType); -} + i = find(begin(), end(), extraData); -void TEnergyData::AddEnergy(int energyType, float value) -{ - _energy.insert(map::value_type(energyType, value)); -} + if (i != end()) + { + erase(i); + } + else + {//warning -void TEnergyData::ReplaceEnergy(int energyType, float value) -{ - map::iterator i; - i = FindEnergy(energyType); - - if (i != _energy.end()) - { - *i = value; - } + } + } -void TEnergyData::DeleteEnergy(int energyType) +TExtraData *TExtraDataList::GetExtraData(int type) { - map::iterator i; - i = FindEnergy(energyType); - - if (i != _energy.end()) - { - _energy.erase(i); - } + vector::iterator i; + +//Don't know the reason can not use functor here +// i = find_if(begin(), end(), TMatchExtraData(type)); + + for (i=begin(); iGetType() == type) + return *i; + } + + return NULL; } -//return the energy with specified type, return NULL if not find -float *TEnergyData::GetEnergy(int energyType) +TExtraData *TExtraDataList::GetExtraData(string ident) { - map::iterator i; - i = FindEnergy(energyType); + vector::iterator i; - if (i != _energy.end()) - { - return *i; - } - else - { - return NULL; - } +//Don't know the reason can not use functor here +// i = find_if(begin(), end(), TMatchExtraData(ident)); + + for (i=begin(); iGetIdent() == ident) + return *i; + } + + return NULL; + } + + +/*********************************************************************** +* Class TBitVector +***********************************************************************/ +