ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/FAS/src/extradata.cpp
(Generate patch)

Comparing trunk/FAS/src/extradata.cpp (file contents):
Revision 83 by tim, Fri Aug 16 15:30:40 2002 UTC vs.
Revision 88 by tim, Mon Aug 19 20:49:08 2002 UTC

# Line 38 | Line 38 | TExtraData &TExtraData::operator =(const TExtraData &e
38  
39   TExtraData &TExtraData::operator =(const TExtraData &extraData)
40   {
41 <        if (this == &extraData)
41 >        if (this == &extraData)
42                  return *this;
43 <                
43 >
44          _ident = extraData._ident;
45          _type = extraData._type;
46          return *this;
47   }
48  
49 //member function for Energy Data
50 TEnergyData::TEnergyData()
51 {
52        _ident = "Energy";
53        _type = TExtraDataType::ENERGY;
54 }
55
49   /***********************************************************************
50   * Class TExtraDataList
51   ***********************************************************************/
52 +
53   void TExtraDataList::AddExtraData(TExtraData *extraData)
54   {
55    if (extraData != NULL)
56    {
57 <    _extraDataList.push_back(extraData);
57 >    push_back(extraData);
58    }
59  
60   }
# Line 69 | Line 63 | void TExtraDataList::RemoveExtraData(TExtraData *extra
63   {
64    vector<TExtraData *>::iterator i;
65  
66 <  i = find(_extraDataList.begin(), _extraDataList.end(), extraData);
66 >  i = find(begin(), end(), extraData);
67  
68 <  if (i != _extraDataList.end())
68 >  if (i !=  end())
69    {
70 <    _extraDataList.erase(i);
70 >    erase(i);
71    }
72    else
73    {//warning
# Line 82 | Line 76 | TExtraData *TExtraDataList::GetExtraData(int extraData
76  
77   }
78  
79 < TExtraData *TExtraDataList::GetExtraData(int extraDataType)
79 > TExtraData *TExtraDataList::GetExtraData(int type)
80   {
81 +  vector<TExtraData *>::iterator i;
82  
83 < }
83 > //Don't know the reason can not use functor here
84 > //  i = find_if(begin(), end(), TMatchExtraData(type));
85  
86 < TExtraData *TExtraDataList::GetExtraData(string attr)
87 < {
86 >  for (i=begin(); i<end(); i++)
87 >  {
88 >    if ((*i)->GetType() == type)
89 >      return *i;
90 >  }
91  
92 +  return NULL;
93   }
94  
95 < /***********************************************************************
96 < * Class TEnergyData
97 < ***********************************************************************/
98 <
99 < TEnergyData::TEnergyData(const TEnergyData &energyData) : TExtraData(energyData)
95 > TExtraData *TExtraDataList::GetExtraData(string ident)
96   {
97 <        _energy = energyData._energy;  
102 < }
97 >  vector<TExtraData *>::iterator i;
98  
99 < TEnergyData &TEnergyData::operator =(const TEnergyData &energyData)
100 < {
106 <        if (this == &energyData)
107 <                return *this;
108 <        TExtraData::operator =(energyData);
109 <        _energy = energyData._energy;  
110 < }
99 > //Don't know the reason can not use functor here
100 > //  i = find_if(begin(), end(), TMatchExtraData(ident));
101  
102 < TEnergyData::~TEnergyData()
103 < {
104 <        _energy.clear();        
105 < }
102 >  for (i=begin(); i<end(); i++)
103 >  {
104 >    if ((*i)->GetIdent() == ident)
105 >      return *i;
106 >  }
107  
108 < map<int, float>::iterator TEnergyData::FindEnergy(int energyType)
118 < {
119 <        return _energy.find(energyType);
120 < }
108 >  return NULL;
109  
122 void TEnergyData::AddEnergy(int energyType, float value)
123 {
124        _energy.insert(map<int,float>::value_type(energyType, value));
110   }
111  
127 void TEnergyData::ReplaceEnergy(int energyType, float value)
128 {
129        map<int, float>::iterator i;
130        i = FindEnergy(energyType);
131        
132        if (i != _energy.end())
133        {
134                (*i).second = value;
135        }      
136 }
112  
138 void TEnergyData::DeleteEnergy(int energyType)
139 {
140        map<int, float>::iterator i;
141        i = FindEnergy(energyType);
142        
143        if (i != _energy.end())
144        {      
145                _energy.erase(i);
146        }
147 }
148
149 //return the energy with specified type, return NULL if not find
150 float *TEnergyData::GetEnergy(int energyType)
151 {
152        map<int, float>::iterator i;
153        i = FindEnergy(energyType);
154
155        if (i != _energy.end())
156        {
157                return &((*i).second);
158        }
159        else
160        {
161                return NULL;
162        }
163 }
164
113   /***********************************************************************
114   * Class TBitVector
115   ***********************************************************************/

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines