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

# User Rev Content
1 tim 658 #ifndef __GENERICDATA_H__
2     #define __GENERICDATA_H__
3    
4 tim 682 #include <algorithm>
5 tim 658 #include <string>
6     #include <vector>
7    
8 tim 682 #define ZCONSTIME_ID "ZCONSTIME"
9     #define ZCONSPARADATA_ID "ZCONSPARA"
10     #define ZCONSFILENAME_ID "ZCONSFILENAME"
11     #define ZCONSTOL_ID "ZCONSTOL"
12 tim 699 #define ZCONSFORCEPOLICY_ID "ZCONSFORCEPOLICY"
13 tim 682
14 tim 658 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 tim 682
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 tim 736 bool isIndexUnique();
71 tim 682
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 tim 658 #endif