ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/GenericData.hpp
Revision: 699
Committed: Fri Aug 15 19:24:13 2003 UTC (20 years, 10 months ago) by tim
File size: 1763 byte(s)
Log Message:
Tested MPI version of Z-Constraint Method

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
71 private:
72 vector<ZConsParaItem> data;
73 };
74
75 class ZConsParaSortCriterion{
76 public:
77 bool operator ()(const ZConsParaItem& item1, const ZConsParaItem& item2){
78 return item1.zconsIndex < item2.zconsIndex;
79 }
80
81 };
82
83 #endif