This file is indexed.

/usr/share/doc/libgig-dev/html/namespaceSerialization.html is in libgig-doc 4.1.0~repack-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libgig: Serialization Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">libgig
   &#160;<span id="projectnumber">4.1.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('namespaceSerialization.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">Serialization Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="namespaceSerialization.html" title="Serialization / deserialization framework. ">Serialization</a> / deserialization framework.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSerialization_1_1Archive.html">Archive</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destination container for serialization, and source container for deserialization.  <a href="classSerialization_1_1Archive.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSerialization_1_1DataType.html">DataType</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract reflection of a native C++ data type.  <a href="classSerialization_1_1DataType.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSerialization_1_1Exception.html">Exception</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Will be thrown whenever an error occurs during an serialization or deserialization process.  <a href="classSerialization_1_1Exception.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSerialization_1_1Member.html">Member</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract reflection of a native C++ class/struct's member variable.  <a href="classSerialization_1_1Member.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSerialization_1_1Object.html">Object</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract reflection of some native serialized C/C++ data.  <a href="classSerialization_1_1Object.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSerialization_1_1UID.html">UID</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unique identifier referring to one specific native C++ object, member, fundamental variable, or any other native C++ data.  <a href="classSerialization_1_1UID.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a7db3e1b680778131c10815e8509efa23"><td class="memItemLeft" align="right" valign="top"><a id="a7db3e1b680778131c10815e8509efa23"></a>
typedef std::string&#160;</td><td class="memItemRight" valign="bottom"><b>String</b></td></tr>
<tr class="separator:a7db3e1b680778131c10815e8509efa23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2a2b8eaea1928d3faacf4c3a57ee1e2"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSerialization.html#ac2a2b8eaea1928d3faacf4c3a57ee1e2">RawData</a></td></tr>
<tr class="memdesc:ac2a2b8eaea1928d3faacf4c3a57ee1e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raw data stream of serialized C++ objects.  <a href="#ac2a2b8eaea1928d3faacf4c3a57ee1e2">More...</a><br /></td></tr>
<tr class="separator:ac2a2b8eaea1928d3faacf4c3a57ee1e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a6a9a523d799cd7b4dcc8bfe573bbb9"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSerialization.html#a0a6a9a523d799cd7b4dcc8bfe573bbb9">ID</a></td></tr>
<tr class="memdesc:a0a6a9a523d799cd7b4dcc8bfe573bbb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract identifier for serialized C++ objects.  <a href="#a0a6a9a523d799cd7b4dcc8bfe573bbb9">More...</a><br /></td></tr>
<tr class="separator:a0a6a9a523d799cd7b4dcc8bfe573bbb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa67af1774d76bce729e640d685964934"><td class="memItemLeft" align="right" valign="top">typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSerialization.html#aa67af1774d76bce729e640d685964934">Version</a></td></tr>
<tr class="memdesc:aa67af1774d76bce729e640d685964934"><td class="mdescLeft">&#160;</td><td class="mdescRight">Version number data type.  <a href="#aa67af1774d76bce729e640d685964934">More...</a><br /></td></tr>
<tr class="separator:aa67af1774d76bce729e640d685964934"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6ec113cd1af5dd3297ccc63d4d25c4d"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classSerialization_1_1UID.html">UID</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSerialization.html#aa6ec113cd1af5dd3297ccc63d4d25c4d">UIDChain</a></td></tr>
<tr class="memdesc:aa6ec113cd1af5dd3297ccc63d4d25c4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Chain of UIDs.  <a href="#aa6ec113cd1af5dd3297ccc63d4d25c4d">More...</a><br /></td></tr>
<tr class="separator:aa6ec113cd1af5dd3297ccc63d4d25c4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:af7af2dcb41c42e9711bb53e2e4e94d5a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSerialization.html#af7af2dcb41c42e9711bb53e2e4e94d5a">time_base_t</a> { <a class="el" href="namespaceSerialization.html#af7af2dcb41c42e9711bb53e2e4e94d5aabfe7b5a404e0caf8a3e04b4c660c894f">LOCAL_TIME</a>, 
<a class="el" href="namespaceSerialization.html#af7af2dcb41c42e9711bb53e2e4e94d5aa32ecb1026fcbe669997e9fa56e91df20">UTC_TIME</a>
 }<tr class="memdesc:af7af2dcb41c42e9711bb53e2e4e94d5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">To which time zone a certain timing information relates to.  <a href="namespaceSerialization.html#af7af2dcb41c42e9711bb53e2e4e94d5a">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:af7af2dcb41c42e9711bb53e2e4e94d5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a61d3b658ef82d7af51c78ff4de926c13"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a61d3b658ef82d7af51c78ff4de926c13"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceSerialization.html#a61d3b658ef82d7af51c78ff4de926c13">IsEnum</a> (const T &amp;data)</td></tr>
<tr class="memdesc:a61d3b658ef82d7af51c78ff4de926c13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether data is a C/C++ <code>enum</code> type.  <a href="#a61d3b658ef82d7af51c78ff4de926c13">More...</a><br /></td></tr>
<tr class="separator:a61d3b658ef82d7af51c78ff4de926c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a064dd04769f6cff191c6e289aab8586c"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a064dd04769f6cff191c6e289aab8586c"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceSerialization.html#a064dd04769f6cff191c6e289aab8586c">IsUnion</a> (const T &amp;data)</td></tr>
<tr class="memdesc:a064dd04769f6cff191c6e289aab8586c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether data is a C++ <code>union</code> type.  <a href="#a064dd04769f6cff191c6e289aab8586c">More...</a><br /></td></tr>
<tr class="separator:a064dd04769f6cff191c6e289aab8586c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d1d2803be85a41c204555b1ecd8c373"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a7d1d2803be85a41c204555b1ecd8c373"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceSerialization.html#a7d1d2803be85a41c204555b1ecd8c373">IsClass</a> (const T &amp;data)</td></tr>
<tr class="memdesc:a7d1d2803be85a41c204555b1ecd8c373"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether data is a C/C++ <code>struct</code> or C++ <code>class</code> type.  <a href="#a7d1d2803be85a41c204555b1ecd8c373">More...</a><br /></td></tr>
<tr class="separator:a7d1d2803be85a41c204555b1ecd8c373"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa40f003f8c93c031b7024b2f52348870"><td class="memItemLeft" align="right" valign="top"><a id="aa40f003f8c93c031b7024b2f52348870"></a>
String&#160;</td><td class="memItemRight" valign="bottom"><b>_encode</b> (const Archive::ObjectPool &amp;objects)</td></tr>
<tr class="separator:aa40f003f8c93c031b7024b2f52348870"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a51b840bb74ee1538697763b103ab725e"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classSerialization_1_1UID.html">UID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSerialization.html#a51b840bb74ee1538697763b103ab725e">NO_UID</a> = _createNullUID()</td></tr>
<tr class="memdesc:a51b840bb74ee1538697763b103ab725e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reflects an invalid <a class="el" href="classSerialization_1_1UID.html" title="Unique identifier referring to one specific native C++ object, member, fundamental variable...">UID</a> and behaves similar to NULL as invalid value for pointer types.  <a href="#a51b840bb74ee1538697763b103ab725e">More...</a><br /></td></tr>
<tr class="separator:a51b840bb74ee1538697763b103ab725e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="namespaceSerialization.html" title="Serialization / deserialization framework. ">Serialization</a> / deserialization framework. </p>
<p>See class <a class="el" href="classSerialization_1_1Archive.html" title="Destination container for serialization, and source container for deserialization. ">Archive</a> as starting point for how to implement serialization and deserialization with your application.</p>
<p>The classes in this namespace allow to serialize and deserialize native C++ objects in a portable, easy and flexible way. <a class="el" href="namespaceSerialization.html" title="Serialization / deserialization framework. ">Serialization</a> is a technique that allows to transform the current state and data of native (in this case C++) objects into a data stream (including all other objects the "serialized" objects relate to); the data stream may then be sent over "wire" (for example via network connection to another computer, which might also have a different OS, CPU architecture, native memory word size and endian type); and finally the data stream would be "deserialized" on that receiver side, that is transformed again to modify all objects and data structures on receiver side to resemble the objects' state and data as it was originally on sender side.</p>
<p>In contrast to many other already existing serialization frameworks, this implementation has a strong focus on robustness regarding long-term changes to the serialized C++ classes of the serialized objects. So even if sender and receiver are using different versions of their serialized/deserialized C++ classes, structures and data types (thus having different data structure layout to a certain extent), this framework aims trying to automatically adapt its serialization and deserialization process in that case so that the deserialized objects on receiver side would still reflect the overall expected states and overall data as intended by the sender. For being able to do so, this framework stores all kind of additional information about each serialized object and each data structure member (for example name of each data structure member, but also the offset of each member within its containing data structure, precise data types, and more).</p>
<p>Like most other serialization frameworks, this frameworks does not require a tree-structured layout of the serialized data structures. So it automatically handles also cyclic dependencies between serialized data structures correctly, without i.e. causing endless recursion or redundancy.</p>
<p>Additionally this framework also allows partial deserialization. Which means the receiver side may for example decide that it wants to restrict deserialization so that it would only modify certain objects or certain members by the deserialization process, leaving all other ones untouched. So this partial deserialization technique for example allows to implement flexible preset features for applications in a powerful and easy way. </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="a0a6a9a523d799cd7b4dcc8bfe573bbb9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a6a9a523d799cd7b4dcc8bfe573bbb9">&#9670;&nbsp;</a></span>ID</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void* <a class="el" href="namespaceSerialization.html#a0a6a9a523d799cd7b4dcc8bfe573bbb9">Serialization::ID</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Abstract identifier for serialized C++ objects. </p>
<p>This data type is used for identifying serialized C++ objects and members of your C++ objects. It is important to know that such an ID might not necessarily be unique. For example the ID of one C++ object might often be identical to the ID of the first member of that particular C++ object. That's why there is additionally the concept of an <a class="el" href="classSerialization_1_1UID.html" title="Unique identifier referring to one specific native C++ object, member, fundamental variable...">UID</a> in this framework.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classSerialization_1_1UID.html" title="Unique identifier referring to one specific native C++ object, member, fundamental variable...">UID</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="Serialization_8h_source.html#l00142">142</a> of file <a class="el" href="Serialization_8h_source.html">Serialization.h</a>.</p>

</div>
</div>
<a id="ac2a2b8eaea1928d3faacf4c3a57ee1e2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2a2b8eaea1928d3faacf4c3a57ee1e2">&#9670;&nbsp;</a></span>RawData</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;uint8_t&gt; <a class="el" href="namespaceSerialization.html#ac2a2b8eaea1928d3faacf4c3a57ee1e2">Serialization::RawData</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Raw data stream of serialized C++ objects. </p>
<p>This data type is used for the data stream as a result of serializing your C++ objects with <a class="el" href="classSerialization_1_1Archive.html#a428d6e1b01bf6a08a53930e983db2376" title="Initiate serialization. ">Archive::serialize()</a>, and for native raw data representation of individual serialized C/C++ objects, members and variables.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classSerialization_1_1Archive.html#a5841eb53b4d3ed6bb94a499f24661c25" title="Raw data stream of this archive content. ">Archive::rawData()</a>, <a class="el" href="classSerialization_1_1Object.html#a3eef7857fc33d457199687be5fc7ff20" title="Raw data of the original native C/C++ data. ">Object::rawData()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="Serialization_8h_source.html#l00130">130</a> of file <a class="el" href="Serialization_8h_source.html">Serialization.h</a>.</p>

</div>
</div>
<a id="aa6ec113cd1af5dd3297ccc63d4d25c4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa6ec113cd1af5dd3297ccc63d4d25c4d">&#9670;&nbsp;</a></span>UIDChain</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="classSerialization_1_1UID.html">UID</a>&gt; <a class="el" href="namespaceSerialization.html#aa6ec113cd1af5dd3297ccc63d4d25c4d">Serialization::UIDChain</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Chain of UIDs. </p>
<p>This data type is used for native C++ pointers. The first member of the <a class="el" href="classSerialization_1_1UID.html" title="Unique identifier referring to one specific native C++ object, member, fundamental variable...">UID</a> chain is the unique identifier of the C++ pointer itself, then the following UIDs are the respective objects or variables the pointer is pointing to. The size (the amount of elements) of the UIDChain depends solely on the degree of the pointer type. For example the following C/C++ pointer: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span>* pNumber;</div></div><!-- fragment --><p> is an integer pointer of first degree. Such a pointer would have a UIDChain with 2 members: the first element would be the <a class="el" href="classSerialization_1_1UID.html" title="Unique identifier referring to one specific native C++ object, member, fundamental variable...">UID</a> of the pointer itself, the second element of the chain would be the integer data that pointer is pointing to. In the following example: </p><div class="fragment"><div class="line"><span class="keywordtype">bool</span>*** pppSomeFlag;</div></div><!-- fragment --><p> That boolean pointer would be of third degree, and thus its UIDChain would have a size of 4 (elements).</p>
<p>Accordingly a non pointer type like: </p><div class="fragment"><div class="line"><span class="keywordtype">float</span> f;</div></div><!-- fragment --><p> would yield in a UIDChain of size 1.</p>
<p>Since however this serialization framework currently only supports pointers of first degree yet, all UIDChains are currently either of size 1 or 2, which might change in future though. </p>

<p class="definition">Definition at line <a class="el" href="Serialization_8h_source.html#l00324">324</a> of file <a class="el" href="Serialization_8h_source.html">Serialization.h</a>.</p>

</div>
</div>
<a id="aa67af1774d76bce729e640d685964934"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa67af1774d76bce729e640d685964934">&#9670;&nbsp;</a></span>Version</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint32_t <a class="el" href="namespaceSerialization.html#aa67af1774d76bce729e640d685964934">Serialization::Version</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Version number data type. </p>
<p>This data type is used for maintaining version number information of your C++ class implementations.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classSerialization_1_1Archive.html#a9052a7f10526af1b8a72dfc7d77c5159" title="Set current version number for your C++ class. ">Archive::setVersion()</a> and <a class="el" href="classSerialization_1_1Archive.html#a242def087121c57a948d8208edfc92b6" title="Set a minimum version number for your C++ class. ">Archive::setMinVersion()</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="Serialization_8h_source.html#l00151">151</a> of file <a class="el" href="Serialization_8h_source.html">Serialization.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="af7af2dcb41c42e9711bb53e2e4e94d5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7af2dcb41c42e9711bb53e2e4e94d5a">&#9670;&nbsp;</a></span>time_base_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="namespaceSerialization.html#af7af2dcb41c42e9711bb53e2e4e94d5a">Serialization::time_base_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>To which time zone a certain timing information relates to. </p>
<p>The constants in this enum type are used to define to which precise time zone a time stamp relates to. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="af7af2dcb41c42e9711bb53e2e4e94d5aabfe7b5a404e0caf8a3e04b4c660c894f"></a>LOCAL_TIME&#160;</td><td class="fielddoc"><p>The time stamp relates to the machine's local time zone. Request a time stamp in local time if you want to present that time stamp to the end user. </p>
</td></tr>
<tr><td class="fieldname"><a id="af7af2dcb41c42e9711bb53e2e4e94d5aa32ecb1026fcbe669997e9fa56e91df20"></a>UTC_TIME&#160;</td><td class="fielddoc"><p>The time stamp relates to "Greenwhich Mean Time" zone, also known as "Coordinated Universal Time". Request time stamp with UTC if you want to compare that time stamp with other time stamps. </p>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="Serialization_8h_source.html#l00158">158</a> of file <a class="el" href="Serialization_8h_source.html">Serialization.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a7d1d2803be85a41c204555b1ecd8c373"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d1d2803be85a41c204555b1ecd8c373">&#9670;&nbsp;</a></span>IsClass()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool Serialization::IsClass </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check whether data is a C/C++ <code>struct</code> or C++ <code>class</code> type. </p>
<p>Returns true if the supplied C++ variable or object is of C/C++ <code>struct</code> or C++ <code>class</code> type. Note that if you are using a C++ compiler which does have built-in type traits support, then this function will also return <code>true</code> on C/C++ <code>union</code> types.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>- the variable or object whose data type shall be checked </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="Serialization_8h_source.html#l00208">208</a> of file <a class="el" href="Serialization_8h_source.html">Serialization.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="Serialization_8h_source.html#l00387">Serialization::DataType::dataTypeOf()</a>.</p>

</div>
</div>
<a id="a61d3b658ef82d7af51c78ff4de926c13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61d3b658ef82d7af51c78ff4de926c13">&#9670;&nbsp;</a></span>IsEnum()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool Serialization::IsEnum </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check whether data is a C/C++ <code>enum</code> type. </p>
<p>Returns true if the supplied C++ variable or object is of a C/C++ <code>enum</code> type.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>- the variable or object whose data type shall be checked </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="Serialization_8h_source.html#l00171">171</a> of file <a class="el" href="Serialization_8h_source.html">Serialization.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="Serialization_8h_source.html#l00387">Serialization::DataType::dataTypeOf()</a>.</p>

</div>
</div>
<a id="a064dd04769f6cff191c6e289aab8586c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a064dd04769f6cff191c6e289aab8586c">&#9670;&nbsp;</a></span>IsUnion()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool Serialization::IsUnion </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check whether data is a C++ <code>union</code> type. </p>
<p>Returns true if the supplied C++ variable or object is of a C/C++ <code>union</code> type. Note that the result of this function is only reliable if the C++ compiler you are using has support for built-in type traits. If your C++ compiler does not have built-in type traits support, then this function will simply return <code>false</code> on all your calls.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>- the variable or object whose data type shall be checked </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="Serialization_8h_source.html#l00190">190</a> of file <a class="el" href="Serialization_8h_source.html">Serialization.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="Serialization_8h_source.html#l00387">Serialization::DataType::dataTypeOf()</a>.</p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a51b840bb74ee1538697763b103ab725e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51b840bb74ee1538697763b103ab725e">&#9670;&nbsp;</a></span>NO_UID</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classSerialization_1_1UID.html">UID</a> Serialization::NO_UID = _createNullUID()</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reflects an invalid <a class="el" href="classSerialization_1_1UID.html" title="Unique identifier referring to one specific native C++ object, member, fundamental variable...">UID</a> and behaves similar to NULL as invalid value for pointer types. </p>
<p>All <a class="el" href="classSerialization_1_1UID.html" title="Unique identifier referring to one specific native C++ object, member, fundamental variable...">UID</a> objects are first initialized with this value, and it essentially an all zero object. </p>

<p class="definition">Definition at line <a class="el" href="Serialization_8cpp_source.html#l00046">46</a> of file <a class="el" href="Serialization_8cpp_source.html">Serialization.cpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="Serialization_8cpp_source.html#l01039">Serialization::Archive::Archive()</a>, <a class="el" href="Serialization_8cpp_source.html#l01708">Serialization::Archive::clear()</a>, <a class="el" href="Serialization_8h_source.html#l00262">Serialization::UID::from()</a>, and <a class="el" href="Serialization_8cpp_source.html#l00423">Serialization::Member::Member()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceSerialization.html">Serialization</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>