-
Notifications
You must be signed in to change notification settings - Fork 9
/
cxefile.h
144 lines (103 loc) · 4.51 KB
/
cxefile.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#ifndef CXEFILE_H
#define CXEFILE_H
#include "cxtinyxml.h"
#include "cxstring.h"
#include "cxcontainer.h"
#include "cxfile.h"
#include "cxdatabase.h"
class GM_CCXX_CORE_API EFileElement
{
public:
enum ee_type_enum {ee_type_none=0, ee_type_row, ee_type_column_s, ee_type_column_m};
public:
EFileElement();
~EFileElement();
EFileElement& operator=(const EFileElement &o);
void clear();
std::vector<std::string> toEfileBuffer();
int fromEfileBuffer(const char * pData, int iLength);
public:
void setName(std::string className,std::string InstanceName)
{
_className = className;
_InstanceName = InstanceName;
}
void getName(std::string &className,std::string &InstanceName)
{
className = _className;
InstanceName = _InstanceName;
}
void seField(std::vector<std::string> value)
{
_field = value;
}
void getField(std::vector<std::string> &value)
{
value = _field;
}
void setUnit(std::vector<std::string> value)
{
_unit = value;
}
void getUint(std::vector<std::string> &value)
{
value = _unit;
}
void setRec(const std::vector<std::vector<std::string> > & value)
{
_rec = value;
}
void getRec(std::vector<std::vector<std::string> > &value)
{
value = _rec;
}
void addRec(std::vector<std::string> value)
{
_rec.push_back(value);
}
std::vector<std::map<std::string,std::string> > getRec();
void setRec(std::vector<std::map<std::string,std::string> > &vRec);
void setRec2(std::vector<std::map<std::string,std::string> > &vRec);
int saveTable(std::vector<int> & columnTypes);
void setType(int type){_type =type;}
int getType(){return _type;}
int loadTable(const std::string &sql);
int loadTable2(const std::string &sql);
private:
std::string _className;
std::string _InstanceName;
std::vector<std::string> _field;
std::vector<std::string> _unit;
std::vector<std::vector<std::string> > _rec;
int _type;
};
class GM_CCXX_CORE_API ExplainEfile
{
public:
ExplainEfile();
static bool check(const std::string &sFile,const std::string &sErr);
static int explain(const char * pData, int iLength, std::map<std::string, std::string> & heads, std::map<std::string, std::string> & majors, std::vector<std::map<std::string, std::string> > & details);
static int explain(const char * pData, int iLength, std::map<std::string, std::string> & declare, std::vector<EFileElement> & vObj);
static int explain(const std::vector<std::string> &data, std::map<std::string, std::string> & declare, std::vector<EFileElement> & vObj);
static int explain(std::string &data, std::map<std::string, std::string> & declare, std::vector<EFileElement> & vObj);
static std::vector<char> toEfileBuffer(std::map<std::string, std::string> & heads, std::map<std::string, std::string> & majors, std::vector<std::map<std::string, std::string> > & details);
static std::vector<std::string> toEfileBuffer(std::map<std::string, std::string> & declare, std::vector<EFileElement> & vObj);
static int loadFromFile(const std::string &sFile,std::map<std::string, std::string> & declare, std::vector<EFileElement> & vObj);
static int saveToFile(const std::string &sFile,std::map<std::string, std::string> & declare, std::vector<EFileElement> & vObj);
static void clear();
static void setFieldTemplate(std::map<std::string,std::vector<std::string> > &map1);
static bool createDeclare(std::map<std::string, std::string> & declare);
static bool createElement_sql(const std::string &sClassName,const std::string &sInstanceName,const std::string &sql,const std::string &sFieldList);
static bool createElement_sql(const std::string &sClassName,const std::string &sInstanceName,const std::string &sql);
static bool createElement_row(const std::string &sClassName, const std::string &sInstanceName, const std::string &row);
static bool createElement_rows(const std::string &sClassName, const std::string &sInstanceName, std::vector<std::string> &rows);
static int toFile(const std::string &sFile);
static std::string toString();
static int loadFromString(const std::string &sBuffer,std::map<std::string, std::string> & declare, std::vector<EFileElement> & vObj);
};
class GM_CCXX_CORE_API CxEfile
{
public:
static std::vector<std::string> toEfileBuffer(const std::string & sClassName, const std::string & sInstanceName, const std::vector<std::string> & sFields, const std::vector<std::vector<std::string> > & sRec);
};
#endif // CXEFILE_H