ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/FAS/src/extradata.cpp
Revision: 83
Committed: Fri Aug 16 15:30:40 2002 UTC (21 years, 10 months ago) by tim
File size: 3844 byte(s)
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 tim 83 /**********************************************************************
2     * Copyright (C) 2002-2003 by Gezelter's Group
3     *This program is free software; you can redistribute it and/or modify
4     *it under the terms of the GNU General Public License as published by
5     *the Free Software Foundation version 2 of the License.
6     *
7     *This program is distributed in the hope that it will be useful,
8     *but WITHOUT ANY WARRANTY; without even the implied warranty of
9     *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10     *GNU General Public License for more details.
11     *
12     ************************************************************************
13     *Author: Teng Lin Email: tlin@nd.edu
14     *Date: 08/13/2002 Version: 1.0
15     *
16     ************************************************************************
17     *Description:
18     *
19     ***********************************************************************/
20 tim 66 #include <algorithm>
21     #include "extradata.h"
22    
23 tim 83 /***********************************************************************
24     * Class TExtraData
25     ***********************************************************************/
26    
27 tim 66 TExtraData::TExtraData()
28     {
29     _ident = "unknown";
30     _type = TExtraDataType::UNKNOWN;
31     }
32    
33     TExtraData::TExtraData(const TExtraData & extraData)
34     {
35     _ident = extraData._ident;
36     _type = extraData._type;
37     }
38    
39 tim 67 TExtraData &TExtraData::operator =(const TExtraData &extraData)
40 tim 66 {
41     if (this == &extraData)
42     return *this;
43    
44 tim 67 _ident = extraData._ident;
45 tim 66 _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    
56 tim 83 /***********************************************************************
57     * Class TExtraDataList
58     ***********************************************************************/
59     void TExtraDataList::AddExtraData(TExtraData *extraData)
60     {
61     if (extraData != NULL)
62     {
63     _extraDataList.push_back(extraData);
64     }
65    
66     }
67    
68     void TExtraDataList::RemoveExtraData(TExtraData *extraData)
69     {
70     vector<TExtraData *>::iterator i;
71    
72     i = find(_extraDataList.begin(), _extraDataList.end(), extraData);
73    
74     if (i != _extraDataList.end())
75     {
76     _extraDataList.erase(i);
77     }
78     else
79     {//warning
80    
81     }
82    
83     }
84    
85     TExtraData *TExtraDataList::GetExtraData(int extraDataType)
86     {
87    
88     }
89    
90     TExtraData *TExtraDataList::GetExtraData(string attr)
91     {
92    
93     }
94    
95     /***********************************************************************
96     * Class TEnergyData
97     ***********************************************************************/
98    
99 tim 66 TEnergyData::TEnergyData(const TEnergyData &energyData) : TExtraData(energyData)
100     {
101     _energy = energyData._energy;
102     }
103    
104 tim 67 TEnergyData &TEnergyData::operator =(const TEnergyData &energyData)
105 tim 66 {
106     if (this == &energyData)
107     return *this;
108 tim 67 TExtraData::operator =(energyData);
109     _energy = energyData._energy;
110 tim 66 }
111    
112     TEnergyData::~TEnergyData()
113     {
114     _energy.clear();
115     }
116    
117     map<int, float>::iterator TEnergyData::FindEnergy(int energyType)
118     {
119 tim 67 return _energy.find(energyType);
120 tim 66 }
121    
122     void TEnergyData::AddEnergy(int energyType, float value)
123     {
124     _energy.insert(map<int,float>::value_type(energyType, value));
125     }
126    
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 tim 67 (*i).second = value;
135 tim 66 }
136     }
137    
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 tim 67 return &((*i).second);
158 tim 66 }
159     else
160     {
161     return NULL;
162     }
163     }
164 tim 83
165     /***********************************************************************
166     * Class TBitVector
167     ***********************************************************************/
168