diff options
author | Mike Buland <eichlan@xagasoft.com> | 2007-03-19 18:44:25 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2007-03-19 18:44:25 +0000 |
commit | 2b8255fabce194b35f7b2a350fd08f43d1e698a6 (patch) | |
tree | 61ef7a7918b603d37d022bd0cb599b238615816b /src/serializer.cpp | |
parent | 5a345983b99ecf8528d58ddca2ab5f52d87d9a95 (diff) | |
download | libbu++-2b8255fabce194b35f7b2a350fd08f43d1e698a6.tar.gz libbu++-2b8255fabce194b35f7b2a350fd08f43d1e698a6.tar.bz2 libbu++-2b8255fabce194b35f7b2a350fd08f43d1e698a6.tar.xz libbu++-2b8255fabce194b35f7b2a350fd08f43d1e698a6.zip |
Fixed some bugs and added some new goo. You can serialize FStrings and Heshes
now.
Diffstat (limited to 'src/serializer.cpp')
-rw-r--r-- | src/serializer.cpp | 94 |
1 files changed, 52 insertions, 42 deletions
diff --git a/src/serializer.cpp b/src/serializer.cpp index 407aab2..636224e 100644 --- a/src/serializer.cpp +++ b/src/serializer.cpp | |||
@@ -59,6 +59,11 @@ Serializer &Serializer::operator<<(uint64_t p) | |||
59 | write( &p, sizeof(p) ); | 59 | write( &p, sizeof(p) ); |
60 | return *this; | 60 | return *this; |
61 | } | 61 | } |
62 | Serializer &Serializer::operator<<(long p) | ||
63 | { | ||
64 | write( &p, sizeof(p) ); | ||
65 | return *this; | ||
66 | } | ||
62 | Serializer &Serializer::operator<<(float p) | 67 | Serializer &Serializer::operator<<(float p) |
63 | { | 68 | { |
64 | write( &p, sizeof(p) ); | 69 | write( &p, sizeof(p) ); |
@@ -120,6 +125,11 @@ Serializer &Serializer::operator>>(uint64_t &p) | |||
120 | read( &p, sizeof(p) ); | 125 | read( &p, sizeof(p) ); |
121 | return *this; | 126 | return *this; |
122 | } | 127 | } |
128 | Serializer &Serializer::operator>>(long &p) | ||
129 | { | ||
130 | read( &p, sizeof(p) ); | ||
131 | return *this; | ||
132 | } | ||
123 | Serializer &Serializer::operator>>(float &p) | 133 | Serializer &Serializer::operator>>(float &p) |
124 | { | 134 | { |
125 | read( &p, sizeof(p) ); | 135 | read( &p, sizeof(p) ); |
@@ -136,149 +146,149 @@ Serializer &Serializer::operator>>(long double &p) | |||
136 | return *this; | 146 | return *this; |
137 | } | 147 | } |
138 | 148 | ||
139 | /*Serializer::Serializer &operator&(bool &p) | 149 | Serializer &Serializer::operator&&(bool &p) |
140 | { | 150 | { |
141 | if (bLoading) | 151 | if (bLoading) |
142 | { | 152 | { |
143 | return *this << p; | 153 | return *this >> p; |
144 | } | 154 | } |
145 | else | 155 | else |
146 | { | 156 | { |
147 | return *this >> p; | 157 | return *this << p; |
148 | } | 158 | } |
149 | } | 159 | } |
150 | 160 | ||
151 | Serializer::Serializer &operator&(int8_t &p) | 161 | Serializer &Serializer::operator&&(int8_t &p) |
152 | { | 162 | { |
153 | if (bLoading) | 163 | if (bLoading) |
154 | { | 164 | { |
155 | return *this << p; | 165 | return *this >> p; |
156 | } | 166 | } |
157 | else | 167 | else |
158 | { | 168 | { |
159 | return *this >> p; | 169 | return *this << p; |
160 | } | 170 | } |
161 | } | 171 | } |
162 | 172 | ||
163 | Serializer::Serializer &operator&(int16_t &p) | 173 | Serializer &Serializer::operator&&(int16_t &p) |
164 | { | 174 | { |
165 | if (bLoading) | 175 | if (bLoading) |
166 | { | 176 | { |
167 | return *this << p; | 177 | return *this >> p; |
168 | } | 178 | } |
169 | else | 179 | else |
170 | { | 180 | { |
171 | return *this >> p; | 181 | return *this << p; |
172 | } | 182 | } |
173 | } | 183 | } |
174 | 184 | ||
175 | Serializer::Serializer &operator&(int32_t &p) | 185 | Serializer &Serializer::operator&&(int32_t &p) |
176 | { | 186 | { |
177 | if (bLoading) | 187 | if (bLoading) |
178 | { | 188 | { |
179 | return *this << p; | 189 | return *this >> p; |
180 | } | 190 | } |
181 | else | 191 | else |
182 | { | 192 | { |
183 | return *this >> p; | 193 | return *this << p; |
184 | } | 194 | } |
185 | } | 195 | } |
186 | 196 | ||
187 | Serializer::Serializer &operator&(int64_t &p) | 197 | Serializer &Serializer::operator&&(int64_t &p) |
188 | { | 198 | { |
189 | if (bLoading) | 199 | if (bLoading) |
190 | { | 200 | { |
191 | return *this << p; | 201 | return *this >> p; |
192 | } | 202 | } |
193 | else | 203 | else |
194 | { | 204 | { |
195 | return *this >> p; | 205 | return *this << p; |
196 | } | 206 | } |
197 | } | 207 | } |
198 | 208 | ||
199 | Serializer::Serializer &operator&(uint8_t &p) | 209 | Serializer &Serializer::operator&&(uint8_t &p) |
200 | { | 210 | { |
201 | if (bLoading) | 211 | if (bLoading) |
202 | { | 212 | { |
203 | return *this << p; | 213 | return *this >> p; |
204 | } | 214 | } |
205 | else | 215 | else |
206 | { | 216 | { |
207 | return *this >> p; | 217 | return *this << p; |
208 | } | 218 | } |
209 | } | 219 | } |
210 | 220 | ||
211 | Serializer::Serializer &operator&(uint16_t &p) | 221 | Serializer &Serializer::operator&&(uint16_t &p) |
212 | { | 222 | { |
213 | if (bLoading) | 223 | if (bLoading) |
214 | { | 224 | { |
215 | return *this << p; | 225 | return *this >> p; |
216 | } | 226 | } |
217 | else | 227 | else |
218 | { | 228 | { |
219 | return *this >> p; | 229 | return *this << p; |
220 | } | 230 | } |
221 | } | 231 | } |
222 | 232 | ||
223 | Serializer::Serializer &operator&(uint32_t &p) | 233 | Serializer &Serializer::operator&&(uint32_t &p) |
224 | { | 234 | { |
225 | if (bLoading) | 235 | if (bLoading) |
226 | { | 236 | { |
227 | return *this << p; | 237 | return *this >> p; |
228 | } | 238 | } |
229 | else | 239 | else |
230 | { | 240 | { |
231 | return *this >> p; | 241 | return *this << p; |
232 | } | 242 | } |
233 | } | 243 | } |
234 | 244 | ||
235 | Serializer::Serializer &operator&(uint64_t &p) | 245 | Serializer &Serializer::operator&&(uint64_t &p) |
236 | { | 246 | { |
237 | if (bLoading) | 247 | if (bLoading) |
238 | { | 248 | { |
239 | return *this << p; | 249 | return *this >> p; |
240 | } | 250 | } |
241 | else | 251 | else |
242 | { | 252 | { |
243 | return *this >> p; | 253 | return *this << p; |
244 | } | 254 | } |
245 | } | 255 | } |
246 | 256 | ||
247 | Serializer::Serializer &operator&(float &p) | 257 | Serializer &Serializer::operator&&(float &p) |
248 | { | 258 | { |
249 | if (bLoading) | 259 | if (bLoading) |
250 | { | 260 | { |
251 | return *this << p; | 261 | return *this >> p; |
252 | } | 262 | } |
253 | else | 263 | else |
254 | { | 264 | { |
255 | return *this >> p; | 265 | return *this << p; |
256 | } | 266 | } |
257 | } | 267 | } |
258 | 268 | ||
259 | Serializer::Serializer &operator&(double &p) | 269 | Serializer &Serializer::operator&&(double &p) |
260 | { | 270 | { |
261 | if (bLoading) | 271 | if (bLoading) |
262 | { | 272 | { |
263 | return *this << p; | 273 | return *this >> p; |
264 | } | 274 | } |
265 | else | 275 | else |
266 | { | 276 | { |
267 | return *this >> p; | 277 | return *this << p; |
268 | } | 278 | } |
269 | } | 279 | } |
270 | 280 | ||
271 | Serializer::Serializer &operator&(long double &p) | 281 | Serializer &Serializer::operator&&(long double &p) |
272 | { | 282 | { |
273 | if (bLoading) | 283 | if (bLoading) |
274 | { | 284 | { |
275 | return *this << p; | 285 | return *this >> p; |
276 | } | 286 | } |
277 | else | 287 | else |
278 | { | 288 | { |
279 | return *this >> p; | 289 | return *this << p; |
280 | } | 290 | } |
281 | }*/ | 291 | } |
282 | 292 | ||
283 | 293 | ||
284 | Serializer &operator<<(Serializer &s, Serializable &p) | 294 | Serializer &operator<<(Serializer &s, Serializable &p) |
@@ -293,17 +303,17 @@ Serializer &operator>>(Serializer &s, Serializable &p) | |||
293 | return s; | 303 | return s; |
294 | } | 304 | } |
295 | 305 | ||
296 | /*Serializer::Serializer &operator&(Serializable &p) | 306 | Serializer &operator&&(Serializer &s, Serializable &p) |
297 | { | 307 | { |
298 | if (bLoading) | 308 | if (s.isLoading()) |
299 | { | 309 | { |
300 | return *this << p; | 310 | return s >> p; |
301 | } | 311 | } |
302 | else | 312 | else |
303 | { | 313 | { |
304 | return *this >> p; | 314 | return s << p; |
305 | } | 315 | } |
306 | }*/ | 316 | } |
307 | 317 | ||
308 | Serializer &operator<<( Serializer &ar, std::string &s ) | 318 | Serializer &operator<<( Serializer &ar, std::string &s ) |
309 | { | 319 | { |