ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/GenericData.hpp
Revision: 736
Committed: Thu Aug 28 21:09:47 2003 UTC (20 years, 10 months ago) by tim
File size: 1789 byte(s)
Log Message:
Added: check uniqueness of molIndex

File Contents

# Content
1 #ifndef __GENERICDATA_H__
2 #define __GENERICDATA_H__
3
4 #include <algorithm>
5 #include <string>
6 #include <vector>
7
8 #define ZCONSTIME_ID "ZCONSTIME"
9 #define ZCONSPARADATA_ID "ZCONSPARA"
10 #define ZCONSFILENAME_ID "ZCONSFILENAME"
11 #define ZCONSTOL_ID "ZCONSTOL"
12 #define ZCONSFORCEPOLICY_ID "ZCONSFORCEPOLICY"
13
14 using namespace std;
15
16 class GenericData
17 {
18 public:
19 GenericData();
20 GenericData(const GenericData& rhs) { id = rhs.getID(); }
21 GenericData& operator =(const GenericData& rhs);
22 virtual ~GenericData() {}
23
24 const string& getID() const { return id; }
25 void setID(string rhs) { id = rhs; }
26
27 protected:
28 string id;
29 };
30
31 /** Something we can improve it here is to use template
32 **
33 */
34 class DoubleData : public GenericData{
35
36 public:
37
38 double getData() { return data; }
39 void setData(double rhs) { data = rhs; }
40
41 protected:
42 double data;
43 };
44
45 class StringData : public GenericData{
46
47 public:
48 const string& getData() const { return data; }
49 void setData(const string& rhs) { data = rhs; }
50 protected:
51 string data;
52 };
53
54 struct ZConsParaItem
55 {
56 int zconsIndex;
57 bool havingZPos;
58 double zPos;
59 double kRatio;
60 };
61
62 class ZConsParaData : public GenericData{
63
64 public:
65 ZConsParaData();
66 void addItem(ZConsParaItem& item) {data.push_back(item);}
67 vector<ZConsParaItem>* getData() {return &data;}
68 void setData(vector<ZConsParaItem>& theData) {data = theData;}
69 void sortByIndex();
70 bool isIndexUnique();
71
72 private:
73 vector<ZConsParaItem> data;
74 };
75
76 class ZConsParaSortCriterion{
77 public:
78 bool operator ()(const ZConsParaItem& item1, const ZConsParaItem& item2){
79 return item1.zconsIndex < item2.zconsIndex;
80 }
81
82 };
83
84 #endif