File: group__Variant.html

package info (click to toggle)
glibmm2.4 2.42.0-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 53,308 kB
  • ctags: 14,868
  • sloc: xml: 108,462; cpp: 15,282; sh: 11,421; perl: 5,139; python: 1,626; makefile: 304
file content (137 lines) | stat: -rw-r--r-- 21,192 bytes parent folder | download
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
<!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.7"/>
<title>glibmm: Variant Data Types</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="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 style="padding-left: 0.5em;">
   <div id="projectname">glibmm
   &#160;<span id="projectnumber">2.42.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.7 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a>  </div>
  <div class="headertitle">
<div class="title">Variant Data Types</div>  </div>
</div><!--header-->
<div class="contents">

<p>The <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> classes deal with strongly typed variant data.  
<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="classGlib_1_1VariantBase.html">Glib::VariantBase</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the base class for all <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> types.  <a href="classGlib_1_1VariantBase.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="classGlib_1_1VariantStringBase.html">Glib::VariantStringBase</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class from which string variant classes derive.  <a href="classGlib_1_1VariantStringBase.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="classGlib_1_1VariantContainerBase.html">Glib::VariantContainerBase</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The base class from which multiple-item Variants derive, such as Variants containing tuples or arrays.  <a href="classGlib_1_1VariantContainerBase.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="classGlib_1_1Variant.html">Glib::Variant&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template class used for the specialization of the Variant&lt;&gt; classes.  <a href="classGlib_1_1Variant.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="classGlib_1_1Variant_3_01VariantBase_01_4.html">Glib::Variant&lt; VariantBase &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> containing a <a class="el" href="classGlib_1_1VariantBase.html" title="This is the base class for all Variant types. ">VariantBase</a>.  <a href="classGlib_1_1Variant_3_01VariantBase_01_4.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="classGlib_1_1Variant_3_01Variant_3_01T_01_4_01_4.html">Glib::Variant&lt; Variant&lt; T &gt; &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> containing a Variant&lt;T&gt;.  <a href="classGlib_1_1Variant_3_01Variant_3_01T_01_4_01_4.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="classGlib_1_1Variant_3_01Glib_1_1ustring_01_4.html">Glib::Variant&lt; Glib::ustring &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> containing a <a class="el" href="classGlib_1_1ustring.html" title="Glib::ustring has much the same interface as std::string, but contains Unicode characters encoded as ...">Glib::ustring</a>, for variants of type string, bytestring, object path, or signature.  <a href="classGlib_1_1Variant_3_01Glib_1_1ustring_01_4.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="classGlib_1_1Variant_3_01std_1_1string_01_4.html">Glib::Variant&lt; std::string &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> containing a <a class="elRef" doxygen="/opt/gnome/share/mm-common/doctags/libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01681.html#ga32db3d9898c44d3b3a578b560f7758cc">std::string</a>, for variants of type bytestring, object path, or signature.  <a href="classGlib_1_1Variant_3_01std_1_1string_01_4.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="classGlib_1_1Variant_3_01std_1_1vector_3_01T_01_4_01_4.html">Glib::Variant&lt; std::vector&lt; T &gt; &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> containing an array of items.  <a href="classGlib_1_1Variant_3_01std_1_1vector_3_01T_01_4_01_4.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="classGlib_1_1Variant_3_01std_1_1vector_3_01Glib_1_1ustring_01_4_01_4.html">Glib::Variant&lt; std::vector&lt; Glib::ustring &gt; &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> containing an array of UTF-8 capable strings.  <a href="classGlib_1_1Variant_3_01std_1_1vector_3_01Glib_1_1ustring_01_4_01_4.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="classGlib_1_1Variant_3_01std_1_1vector_3_01std_1_1string_01_4_01_4.html">Glib::Variant&lt; std::vector&lt; std::string &gt; &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> containing an array of non-UTF-8 strings (byte string arrays).  <a href="classGlib_1_1Variant_3_01std_1_1vector_3_01std_1_1string_01_4_01_4.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="classGlib_1_1Variant_3_01std_1_1map_3_01K_00_01V_01_4_01_4.html">Glib::Variant&lt; std::map&lt; K, V &gt; &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> containing a dictionary (a map of (key, value) elements).  <a href="classGlib_1_1Variant_3_01std_1_1map_3_01K_00_01V_01_4_01_4.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="classGlib_1_1VariantType.html">Glib::VariantType</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classGlib_1_1VariantType.html" title="VariantType - The VariantBase type system. ">VariantType</a> - The <a class="el" href="classGlib_1_1VariantBase.html" title="This is the base class for all Variant types. ">VariantBase</a> type system.  <a href="classGlib_1_1VariantType.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="classGlib_1_1Variant_3_01bool_01_4.html">Glib::Variant&lt; bool &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Glib::Variant</a> containing a bool type.  <a href="classGlib_1_1Variant_3_01bool_01_4.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="classGlib_1_1Variant_3_01unsigned_01char_01_4.html">Glib::Variant&lt; unsigned char &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Glib::Variant</a> containing a unsigned char type.  <a href="classGlib_1_1Variant_3_01unsigned_01char_01_4.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="classGlib_1_1Variant_3_01gint16_01_4.html">Glib::Variant&lt; gint16 &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Glib::Variant</a> containing a gint16 type.  <a href="classGlib_1_1Variant_3_01gint16_01_4.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="classGlib_1_1Variant_3_01guint16_01_4.html">Glib::Variant&lt; guint16 &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Glib::Variant</a> containing a guint16 type.  <a href="classGlib_1_1Variant_3_01guint16_01_4.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="classGlib_1_1Variant_3_01gint32_01_4.html">Glib::Variant&lt; gint32 &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Glib::Variant</a> containing a gint32 type.  <a href="classGlib_1_1Variant_3_01gint32_01_4.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="classGlib_1_1Variant_3_01guint32_01_4.html">Glib::Variant&lt; guint32 &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Glib::Variant</a> containing a guint32 type.  <a href="classGlib_1_1Variant_3_01guint32_01_4.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="classGlib_1_1Variant_3_01gint64_01_4.html">Glib::Variant&lt; gint64 &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Glib::Variant</a> containing a gint64 type.  <a href="classGlib_1_1Variant_3_01gint64_01_4.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="classGlib_1_1Variant_3_01guint64_01_4.html">Glib::Variant&lt; guint64 &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Glib::Variant</a> containing a guint64 type.  <a href="classGlib_1_1Variant_3_01guint64_01_4.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="classGlib_1_1Variant_3_01double_01_4.html">Glib::Variant&lt; double &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Glib::Variant</a> containing a double type.  <a href="classGlib_1_1Variant_3_01double_01_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>The <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> classes deal with strongly typed variant data. </p>
<p>A <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> stores a value along with information about the type of that value. The range of possible values is determined by the type. The type system used is <a class="el" href="classGlib_1_1VariantType.html" title="VariantType - The VariantBase type system. ">VariantType</a>.</p>
<p>See the <a class="el" href="classGlib_1_1VariantBase.html" title="This is the base class for all Variant types. ">VariantBase</a> class and it's derived types, such as <a class="el" href="classGlib_1_1VariantContainerBase.html" title="The base class from which multiple-item Variants derive, such as Variants containing tuples or arrays...">VariantContainerBase</a>, and the Variant&lt;&gt; template type.</p>
<p><a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> instances always have a type and a value (which are given at construction time). The type and value of a <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> can never change other than by the <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> itself being destroyed. A <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> cannot contain a pointer.</p>
<p><a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> is heavily optimised for dealing with data in serialised form. It works particularly well with data located in memory-mapped files. It can perform nearly all deserialisation operations in a small constant time, usually touching only a single memory page. Serialised <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> data can also be sent over the network.</p>
<p><a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> is largely compatible with D-Bus. Almost all types of <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> instances can be sent over D-Bus. See <a class="el" href="classGlib_1_1VariantType.html" title="VariantType - The VariantBase type system. ">VariantType</a> for exceptions.</p>
<p>There is a Python-inspired text language for describing <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> values. <a class="el" href="classGlib_1_1Variant.html" title="Template class used for the specialization of the Variant<> classes. ">Variant</a> includes a printer for this language and a parser with type inferencing.. </p>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Sep 22 2014 21:38:30 for glibmm by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.7
</small></address>
</body>
</html>