1 #include "wvserialize.h"
14 printf("Silly: %d %ld %d '%s' %d '%s'\n",
15 big
, bigger
, small
, s1
.cstr(), b
, s2
.cstr());
20 void _wv_serialize(WvBuf
&buf
, const Silly
&s
)
22 wv_serialize(buf
, s
.big
);
23 wv_serialize(buf
, (int)s
.bigger
);
24 wv_serialize(buf
, s
.small
);
25 wv_serialize(buf
, s
.s1
);
26 wv_serialize(buf
, s
.b
);
27 wv_serialize(buf
, s
.s2
);
32 Silly
*_wv_deserialize
<Silly
*>(WvBuf
&buf
)
35 s
->big
= wv_deserialize
<int>(buf
);
36 s
->bigger
= wv_deserialize
<int>(buf
);
37 s
->small
= wv_deserialize
<short>(buf
);
38 s
->s1
= wv_deserialize
<WvString
>(buf
);
39 s
->b
= wv_deserialize
<int>(buf
);
40 s
->s2
= wv_deserialize
<WvString
>(buf
);
45 Silly _wv_deserialize
<Silly
>(WvBuf
&buf
)
47 Silly
*tmp
= _wv_deserialize
<Silly
*>(buf
);
62 wv_serialize(buf
, "hello");
63 wv_serialize(buf
, 5U);
64 wv_serialize(buf
, (short)7);
65 wv_serialize(buf
, true);
66 wv_serialize(buf
, bb
);
67 wv_serialize(buf
, 'x');
68 printf("buf used: %d\n", buf
.used());
70 printf("got: '%s'\n", wv_deserialize
<WvString
>(buf
).cstr());
71 printf("buf used: %d\n", buf
.used());
72 printf("got: %d\n", wv_deserialize
<int>(buf
));
73 printf("got: %d\n", wv_deserialize
<short>(buf
));
74 printf("got: %d\n", wv_deserialize
<int>(buf
));
75 printf("got: %d\n", wv_deserialize
<int>(buf
));
76 printf("got: '%c'\n", wv_deserialize
<char>(buf
));
80 Silly s
= {5, 6, 7, "hello", false, "world"};
84 printf("buf used: %d\n", buf
.used());
86 WvBufCursor
buf2(buf
, 0, buf
.used());
87 Silly
*s2
= wv_deserialize
<Silly
*>(buf2
);
90 printf("buf used: %d/%d\n", buf2
.used(), buf
.used());
92 Silly s3
= wv_deserialize
<Silly
>(buf
);
98 list
.append(new int(7), true);
99 list
.append(new int(5), true);
100 list
.append(new int(1231), true);
101 list
.append(new int(973), true);
102 wv_serialize(buf
, list
);
103 printf("buf used: %d\n", buf
.used());
106 wv_serialize(xbuf
, buf
);
108 WvBuf
*xbuf2
= wv_deserialize
<WvBuf
*>(xbuf
);
109 intList
*list2
= wv_deserialize
<intList
*>(*xbuf2
);
112 printf("%d list elements after deserialize.\n", list
.count());
113 intList::Iter
i(*list2
);
114 for (i
.rewind(); i
.next(); )
115 printf(" ... %d\n", *i
);