-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathnode6.html
More file actions
93 lines (88 loc) · 3.01 KB
/
Copy pathnode6.html
File metadata and controls
93 lines (88 loc) · 3.01 KB
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 98.1p1 release (March 2nd, 1998)
originally by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Serialisation methods</TITLE>
<META NAME="description" CONTENT="Serialisation methods">
<META NAME="keywords" CONTENT="graphcode">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<LINK REL="STYLESHEET" HREF="graphcode.css">
<LINK REL="next" HREF="node7.html">
<LINK REL="previous" HREF="node5.html">
<LINK REL="up" HREF="node5.html">
<LINK REL="next" HREF="node7.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html92"
HREF="node7.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="/usr/local/lib/latex2html/icons.gif/next_motif.gif"></A>
<A NAME="tex2html89"
HREF="node5.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="/usr/local/lib/latex2html/icons.gif/up_motif.gif"></A>
<A NAME="tex2html83"
HREF="node5.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="/usr/local/lib/latex2html/icons.gif/previous_motif.gif"></A>
<A NAME="tex2html91"
HREF="node19.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index"
SRC="/usr/local/lib/latex2html/icons.gif/index_motif.gif"></A>
<BR>
<B> Next:</B> <A NAME="tex2html93"
HREF="node7.html">Virtual Constructors</A>
<B> Up:</B> <A NAME="tex2html90"
HREF="node5.html">Objects</A>
<B> Previous:</B> <A NAME="tex2html84"
HREF="node5.html">Objects</A>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00031000000000000000">
Serialisation methods</A>
</H2>
<P>
The first two virtual methods allow Graphcode to access Classdesc
generated serialisation routines. Assuming you have declared a class
foo as follows:<A NAME="74"> </A><A NAME="75"> </A>
<P>
<PRE>
class foo: public object
{
...
virtual void lpack(pack_t *buf);
virtual void lunpack(pack_t *buf);
}
</PRE>
<P>
Then you may define the virtual functions as follows:
<PRE>
inline void pack(pack_t *,eco_string,foo&);
inline void unpack(pack_t *,eco_string,foo&);
inline void foo::lpack(pack_t *buf) {pack(buf,eco_string(),*this);}
inline void foo::lunpack(pack_t *buf) {unpack(buf,eco_string(),*this);}
</PRE>
<P>
The definitions for <code>pack(,,foo&)</code> and <code>unpack(,,foo&)</code> will
then be created in the usual way by Classdesc.
<P>
It is important that <code>pack(,,foo&)</code> and <code>unpack(,,foo&)</code> be explicitly
declared before use, otherwise a default template function will be
linked in which will not work as expected. See the note on using
polymorphic objects under Classdesc.
<P>
<BR><HR>
<ADDRESS>
<I>Russell Standish</I>
<BR><I>2007-03-13</I>
</ADDRESS>
</BODY>
</HTML>