3 #ifndef SZA_UTIL_NETSTRUCT_H
4 #define SZA_UTIL_NETSTRUCT_H
21 class NetStruct :
public NetDat {
32 NetStruct(
const NetStruct& netStruct);
33 NetStruct(NetStruct& netStruct);
34 void operator=(
const NetStruct& netStruct);
35 void operator=(NetStruct& netStruct);
45 virtual void addMember(NetDat* netDat,
bool alloc=
false);
47 void addVar(
bool& val);
48 void addVar(
unsigned char& val);
49 void addVar(
char& val);
50 void addVar(
short& val);
51 void addVar(
unsigned short& val);
52 void addVar(
int& val);
53 void addVar(
unsigned int& val);
54 void addVar(
float& val);
55 void addVar(
double& val);
57 void addVar(
bool* val,
unsigned nEl);
58 void addVar(
unsigned char* val,
unsigned nEl);
59 void addVar(
char* val,
unsigned nEl);
60 void addVar(
short* val,
unsigned nEl);
61 void addVar(
unsigned short* val,
unsigned nEl);
62 void addVar(
int* val,
unsigned nEl);
63 void addVar(
unsigned int* val,
unsigned nEl);
64 void addVar(
float* val,
unsigned nEl);
65 void addVar(
double* val,
unsigned nEl);
67 void addVar(std::string& val);
68 void addVar(std::vector<unsigned char>& val);
73 void addVar(sza::util::DataType::Type type,
void* vPtr,
unsigned nEl);
74 void addVar(sza::util::DataType::Type type,
void* vPtr);
79 void deserialize(
const std::vector<unsigned char>& bytes);
80 void deserialize(
const unsigned char* bytes);
91 std::vector<NetDat::Info> members_;
103 void checkSize(
const std::vector<unsigned char>& bytes);
111 #define NETSTRUCT_UCHAR(name) \
112 addVar(sza::util::DataType::UCHAR, (void*)&name, 1)
114 #define NETSTRUCT_UCHAR_ARR(name, nEl) \
115 addVar(sza::util::DataType::UCHAR, (void*)name, nEl)
117 #define NETSTRUCT_CHAR(name) \
118 addVar(sza::util::DataType::CHAR, (void*)&name, 1)
120 #define NETSTRUCT_CHAR_ARR(name, nEl) \
121 addVar(sza::util::DataType::CHAR, (void*)name, nEl)
123 #define NETSTRUCT_BOOL(name) \
124 addVar(sza::util::DataType::BOOL, (void*)&name, 1)
126 #define NETSTRUCT_BOOL_ARR(name, nEl) \
127 addVar(sza::util::DataType::BOOL, (void*)name, nEl)
129 #define NETSTRUCT_USHORT(name) \
130 addVar(sza::util::DataType::USHORT, (void*)&name, 1)
132 #define NETSTRUCT_USHORT_ARR(name, nEl) \
133 addVar(sza::util::DataType::USHORT, (void*)name, nEl)
135 #define NETSTRUCT_SHORT(name) \
136 addVar(sza::util::DataType::SHORT, (void*)&name, 1)
138 #define NETSTRUCT_SHORT_ARR(name, nEl) \
139 addVar(sza::util::DataType::SHORT, (void*)name, nEl)
141 #define NETSTRUCT_UINT(name) \
142 addVar(sza::util::DataType::UINT, (void*)&name, 1)
144 #define NETSTRUCT_UINT_ARR(name, nEl) \
145 addVar(sza::util::DataType::UINT, (void*)name, nEl)
147 #define NETSTRUCT_INT(name) \
148 addVar(sza::util::DataType::INT, (void*)&name, 1)
150 #define NETSTRUCT_INT_ARR(name, nEl) \
151 addVar(sza::util::DataType::INT, (void*)name, nEl)
153 #define NETSTRUCT_ULONG(name) \
154 addVar(sza::util::DataType::ULONG, (void*)&name, 1)
156 #define NETSTRUCT_ULONG_ARR(name, nEl) \
157 addVar(sza::util::DataType::ULONG, (void*)name, nEl)
159 #define NETSTRUCT_LONG(name) \
160 addVar(sza::util::DataType::LONG, (void*)&name, 1)
162 #define NETSTRUCT_LONG_ARR(name, nEl) \
163 addVar(sza::util::DataType::LONG, (void*)name, nEl)
165 #define NETSTRUCT_FLOAT(name) \
166 addVar(sza::util::DataType::FLOAT, (void*)&name, 1)
168 #define NETSTRUCT_FLOAT_ARR(name, nEl) \
169 addVar(sza::util::DataType::FLOAT, (void*)name, nEl)
171 #define NETSTRUCT_DOUBLE(name) \
172 addVar(sza::util::DataType::DOUBLE, (void*)&name, 1)
174 #define NETSTRUCT_DOUBLE_ARR(name, nEl) \
175 addVar(sza::util::DataType::DOUBLE, (void*)name, nEl)
177 #define NETSTRUCT_UCHAR_VEC(name) \
178 addVar(sza::util::DataType::UCHAR, (void*)&name)
180 #define NETSTRUCT_STRING(name) \
181 addVar(sza::util::DataType::STRING, (void*)&name)
183 #endif // End #ifndef SZA_UTIL_NETSTRUCT_H
Tagged: Tue Jun 22 22:32:16 UTC 2004.
Tagged: Wed Jul 6 13:41:09 PDT 2005.