00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef DBSTRUCT_HH
00035 #define DBSTRUCT_HH
00036
00037 #include <vector>
00038
00039
00040 class basic {
00041
00042 public:
00043
00044 virtual ~basic(){};
00045 char startKey[20];
00046 char endKey[20];
00047 int istart;
00048 int iend;
00049 virtual void setStartKey(const char* key){ strcpy(startKey,key); };
00050 virtual void setEndKey(const char* key){ strcpy(endKey,key); };
00051
00052
00053 };
00054
00055 class stsize : public basic {
00056
00057 public:
00058 int isize;
00059 stsize(): isize(0) { setStartKey("<length>");
00060 setEndKey("</length>") ;};
00061
00062
00063 };
00064
00065 class datav : public basic {
00066
00067 public:
00068 char* data;
00069 datav() { setStartKey("<value>");
00070 setEndKey("</value>") ;};
00071
00072
00073 };
00074
00075 class elem : public basic {
00076
00077 public:
00078
00079 datav val;
00080 char* name;
00081 char* type;
00082 stsize size;
00083
00084 elem() { setStartKey("<db");
00085 setEndKey("</db") ;};
00086
00087 };
00088
00089 #ifdef ST_NO_TEMPLATE_DEF_ARGS
00090 typedef vector<elem*, allocator<elem*> > elemVec;
00091 #else
00092 #if !defined(ST_NO_NAMESPACES)
00093 using std::vector;
00094 #endif
00095 typedef vector<elem*> elemVec;
00096 #endif
00097
00098 class accessor : public basic {
00099
00100 public:
00101
00102 elemVec e;
00103 int nelems;
00104
00105 accessor() { setStartKey("<StDbAccessor>");
00106 setEndKey("</StDbAccessor>");};
00107 virtual ~accessor(){};
00108
00109
00110 };
00111
00112
00113 class dbRow : public accessor {
00114
00115 public:
00116
00117 int rowNumber;
00118 int rowID;
00119
00120 dbRow() { setStartKey("<TabRow>");
00121 setEndKey("</TabRow>"); };
00122 virtual ~dbRow(){};
00123 };
00124
00125 #ifdef ST_NO_TEMPLATE_DEF_ARGS
00126 typedef vector<dbRow*, allocator<dbRow*> > rowVec;
00127 #else
00128 typedef vector<dbRow*> rowVec;
00129 #endif
00130
00131 class dbTable : public basic {
00132
00133 public:
00134
00135 accessor a;
00136 rowVec row;
00137 int curRow;
00138 int numRows;
00139
00140
00141 char* name;
00142
00143 dbTable() { setStartKey("<StDbTable>");
00144 setEndKey("</StDbTable>");};
00145 virtual ~dbTable(){};
00146
00147 };
00148
00149
00150 #endif
00151
00152
00153
00154
00155
00156
00157