File: qdbusargument.html

package info (click to toggle)
python-qt4 4.12.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 40,300 kB
  • ctags: 6,185
  • sloc: python: 125,988; cpp: 13,291; xml: 292; makefile: 246; php: 27; sh: 2
file content (146 lines) | stat: -rw-r--r-- 15,472 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
138
139
140
141
142
143
144
145
146
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html><head><title>QDBusArgument Class Reference</title><style>h3.fn,span.fn { margin-left: 1cm; text-indent: -1cm }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
td.postheader { font-family: sans-serif }
tr.address { font-family: sans-serif }
body { background: #ffffff; color: black; }
</style></head><body><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr /><td align="left" valign="top" width="32"><img align="left" border="0" height="32" src="images/rb-logo.png" width="32" /></td><td width="1">&#160;&#160;</td><td class="postheader" valign="center"><a href="index.html"><font color="#004faf">Home</font></a>&#160;&#183; <a href="classes.html"><font color="#004faf">All Classes</font></a>&#160;&#183; <a href="modules.html"><font color="#004faf">Modules</font></a></td></table><h1 align="center">QDBusArgument Class Reference<br /><sup><sup>[<a href="qtdbus.html">QtDBus</a> module]</sup></sup></h1><p>The QDBusArgument class is used to marshall and demarshall D-Bus
arguments. <a href="#details">More...</a></p>

<h3>Methods</h3><ul><li><div class="fn" /><b><a href="qdbusargument.html#QDBusArgument">__init__</a></b> (<i>self</i>)</li><li><div class="fn" /><b><a href="qdbusargument.html#QDBusArgument-2">__init__</a></b> (<i>self</i>, QDBusArgument&#160;<i>other</i>)</li><li><div class="fn" /><b><a href="qdbusargument.html#QDBusArgument-3">__init__</a></b> (<i>self</i>, object&#160;<i>arg</i>, int&#160;<i>id</i>&#160;=&#160;QMetaType.Int)</li><li><div class="fn" />object <b><a href="qdbusargument.html#add">add</a></b> (<i>self</i>, object&#160;<i>arg</i>, int&#160;<i>id</i>&#160;=&#160;QMetaType.Int)</li><li><div class="fn" /><b><a href="qdbusargument.html#beginArray">beginArray</a></b> (<i>self</i>, int&#160;<i>id</i>)</li><li><div class="fn" /><b><a href="qdbusargument.html#beginMap">beginMap</a></b> (<i>self</i>, int&#160;<i>kid</i>, int&#160;<i>vid</i>)</li><li><div class="fn" /><b><a href="qdbusargument.html#beginMapEntry">beginMapEntry</a></b> (<i>self</i>)</li><li><div class="fn" /><b><a href="qdbusargument.html#beginStructure">beginStructure</a></b> (<i>self</i>)</li><li><div class="fn" /><b><a href="qdbusargument.html#endArray">endArray</a></b> (<i>self</i>)</li><li><div class="fn" /><b><a href="qdbusargument.html#endMap">endMap</a></b> (<i>self</i>)</li><li><div class="fn" /><b><a href="qdbusargument.html#endMapEntry">endMapEntry</a></b> (<i>self</i>)</li><li><div class="fn" /><b><a href="qdbusargument.html#endStructure">endStructure</a></b> (<i>self</i>)</li></ul><a name="details" /><hr /><h2>Detailed Description</h2><p>
In C++ the QDBusArgument class is used to marshall and demarshall DBus
collection types, i.e. arrays, structures and maps.  In PyQt values are
de-marshalled automatically and QDBusArgument is only used to marshall values.
In C++ marshalling is done using overloaded left shift operators.  In PyQt the
single add() function is used.
</p>
<hr /><h2>Method Documentation</h2><h3 class="fn"><a name="QDBusArgument" />QDBusArgument.__init__ (<i>self</i>)</h3><p>Constructs an empty <a href="qdbusargument.html">QDBusArgument</a> argument.</p>
<p>An empty <a href="qdbusargument.html">QDBusArgument</a> object
does not allow either reading or writing to be performed.</p>


<h3 class="fn"><a name="QDBusArgument-2" />QDBusArgument.__init__ (<i>self</i>, <a href="qdbusargument.html">QDBusArgument</a>&#160;<i>other</i>)</h3><p>Constructs a copy of the <i>other</i> <a href="qdbusargument.html">QDBusArgument</a> object.</p>
<p>Both objects will therefore contain the same state from this
point forward. QDBusArguments are explicitly shared and, therefore,
any modification to either copy will affect the other one too.</p>


<h3 class="fn"><a name="QDBusArgument-3" />QDBusArgument.__init__ (<i>self</i>, object&#160;<i>arg</i>, int&#160;<i>id</i>&#160;=&#160;QMetaType.Int)</h3><h3 class="fn"><a name="add" />object QDBusArgument.add (<i>self</i>, object&#160;<i>arg</i>, int&#160;<i>id</i>&#160;=&#160;QMetaType.Int)</h3><h3 class="fn"><a name="beginArray" />QDBusArgument.beginArray (<i>self</i>, int&#160;<i>id</i>)</h3><p>Opens a new D-Bus array suitable for appending elements of
meta-type <i>id</i>.</p>
<p>This function is used usually in <tt>operator&lt;&lt;</tt>
streaming operators, as in the following example:</p>
<pre class="cpp">
 <span class="comment">// append an array of MyElement types</span>
 <span class="type"><a href="qdbusargument.html">QDBusArgument</a></span> <span class="operator">&amp;</span><span class="keyword">operator</span><span class="operator">&lt;</span><span class="operator">&lt;</span>(<span class="type"><a href="qdbusargument.html">QDBusArgument</a></span> <span class="operator">&amp;</span>argument<span class="operator">,</span> <span class="keyword">const</span> MyArray <span class="operator">&amp;</span>myarray)
 {
     argument<span class="operator">.</span>beginArray( <a href="qmetatype.html#qMetaTypeId">qMetaTypeId</a><span class="operator">&lt;</span>MyElement<span class="operator">&gt;</span>() );
     <span class="keyword">for</span> ( <span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> myarray<span class="operator">.</span>length; <span class="operator">+</span><span class="operator">+</span>i )
         argument <span class="operator">&lt;</span><span class="operator">&lt;</span> myarray<span class="operator">.</span>elements<span class="operator">[</span>i<span class="operator">]</span>;
     argument<span class="operator">.</span>endArray();
     <span class="keyword">return</span> argument;
 }
</pre>
<p>If the type you want to marshall is a <a href="qlist.html">QList</a>, <a href="qvector.html">QVector</a> or any
of the Qt's <a href="containers.html">Container Classes</a> that
take one template parameter, you need not declare an
<tt>operator&lt;&lt;</tt> function for it, since <a href="qtdbus.html">QtDBus</a> provides generic templates to do the job
of marshalling the data. The same applies for STL's sequence
containers, such as <tt>std.list</tt>, <tt>std.vector</tt>,
etc.</p>
<p><b>See also</b> <a href="qdbusargument.html#endArray">endArray</a>(), <a href="qdbusargument.html#beginStructure">beginStructure</a>(), and
<a href="qdbusargument.html#beginMap">beginMap</a>().</p>


<h3 class="fn"><a name="beginMap" />QDBusArgument.beginMap (<i>self</i>, int&#160;<i>kid</i>, int&#160;<i>vid</i>)</h3><p>Opens a new D-Bus map suitable for appending elements. Maps are
containers that associate one entry (the key) to another (the
value), such as Qt's <a href="qmap.html">QMap</a> or <a href="qhash.html">QHash</a>. The ids of the map's key and value meta
types must be passed in <i>kid</i> and <i>vid</i> respectively.</p>
<p>This function is used usually in <tt>operator&lt;&lt;</tt>
streaming operators, as in the following example:</p>
<pre class="cpp">
 <span class="comment">// append a dictionary that associates ints to MyValue types</span>
 <span class="type"><a href="qdbusargument.html">QDBusArgument</a></span> <span class="operator">&amp;</span><span class="keyword">operator</span><span class="operator">&lt;</span><span class="operator">&lt;</span>(<span class="type"><a href="qdbusargument.html">QDBusArgument</a></span> <span class="operator">&amp;</span>argument<span class="operator">,</span> <span class="keyword">const</span> MyDictionary <span class="operator">&amp;</span>mydict)
 {
     argument<span class="operator">.</span>beginMap( <span class="type"><a href="qvariant.html">QVariant</a></span><span class="operator">.</span>Int<span class="operator">,</span> <a href="qmetatype.html#qMetaTypeId">qMetaTypeId</a><span class="operator">&lt;</span>MyValue<span class="operator">&gt;</span>() );
     <span class="keyword">for</span> ( <span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> mydict<span class="operator">.</span>length; <span class="operator">+</span><span class="operator">+</span>i ) {
         argument<span class="operator">.</span>beginMapEntry();
         argument <span class="operator">&lt;</span><span class="operator">&lt;</span> mydict<span class="operator">.</span>data<span class="operator">[</span>i<span class="operator">]</span><span class="operator">.</span>key <span class="operator">&lt;</span><span class="operator">&lt;</span> mydict<span class="operator">.</span>data<span class="operator">[</span>i<span class="operator">]</span><span class="operator">.</span>value;
         argument<span class="operator">.</span>endMapEntry();
     }
     argument<span class="operator">.</span>endMap();
     <span class="keyword">return</span> argument;
 }
</pre>
<p>If the type you want to marshall is a <a href="qmap.html">QMap</a> or <a href="qhash.html">QHash</a>, you need
not declare an <tt>operator&lt;&lt;</tt> function for it, since
<a href="qtdbus.html">QtDBus</a> provides generic templates to do
the job of marshalling the data.</p>
<p><b>See also</b> <a href="qdbusargument.html#endMap">endMap</a>(), <a href="qdbusargument.html#beginStructure">beginStructure</a>(), <a href="qdbusargument.html#beginArray">beginArray</a>(), and <a href="qdbusargument.html#beginMapEntry">beginMapEntry</a>().</p>


<h3 class="fn"><a name="beginMapEntry" />QDBusArgument.beginMapEntry (<i>self</i>)</h3><p>Opens a D-Bus map entry suitable for appending the key and value
entries. This function is only valid when a map has been opened
with <a href="qdbusargument.html#beginMap">beginMap</a>().</p>
<p>See <a href="qdbusargument.html#beginMap">beginMap</a>() for an
example of usage of this function.</p>
<p><b>See also</b> <a href="qdbusargument.html#endMapEntry">endMapEntry</a>() and <a href="qdbusargument.html#beginMap">beginMap</a>().</p>


<h3 class="fn"><a name="beginStructure" />QDBusArgument.beginStructure (<i>self</i>)</h3><p>Opens a new D-Bus structure suitable for appending new
arguments.</p>
<p>This function is used usually in <tt>operator&lt;&lt;</tt>
streaming operators, as in the following example:</p>
<pre class="cpp">
 <span class="type"><a href="qdbusargument.html">QDBusArgument</a></span> <span class="operator">&amp;</span><span class="keyword">operator</span><span class="operator">&lt;</span><span class="operator">&lt;</span>(<span class="type"><a href="qdbusargument.html">QDBusArgument</a></span> <span class="operator">&amp;</span>argument<span class="operator">,</span> <span class="keyword">const</span> MyStructure <span class="operator">&amp;</span>mystruct)
 {
     argument<span class="operator">.</span>beginStructure();
     argument <span class="operator">&lt;</span><span class="operator">&lt;</span> mystruct<span class="operator">.</span>member1 <span class="operator">&lt;</span><span class="operator">&lt;</span> mystruct<span class="operator">.</span>member2 <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span> ;
     argument<span class="operator">.</span>endStructure();
     <span class="keyword">return</span> argument;
 }
</pre>
<p>Structures can contain other structures, so the following code
is also valid:</p>
<pre class="cpp">
 <span class="type"><a href="qdbusargument.html">QDBusArgument</a></span> <span class="operator">&amp;</span><span class="keyword">operator</span><span class="operator">&lt;</span><span class="operator">&lt;</span>(<span class="type"><a href="qdbusargument.html">QDBusArgument</a></span> <span class="operator">&amp;</span>argument<span class="operator">,</span> <span class="keyword">const</span> MyStructure <span class="operator">&amp;</span>mystruct)
 {
     argument<span class="operator">.</span>beginStructure();
     argument <span class="operator">&lt;</span><span class="operator">&lt;</span> mystruct<span class="operator">.</span>member1 <span class="operator">&lt;</span><span class="operator">&lt;</span> mystruct<span class="operator">.</span>member2;

     argument<span class="operator">.</span>beginStructure();
     argument <span class="operator">&lt;</span><span class="operator">&lt;</span> mystruct<span class="operator">.</span>member3<span class="operator">.</span>subMember1 <span class="operator">&lt;</span><span class="operator">&lt;</span> mystruct<span class="operator">.</span>member3<span class="operator">.</span>subMember2;
     argument<span class="operator">.</span>endStructure();

     argument <span class="operator">&lt;</span><span class="operator">&lt;</span> mystruct<span class="operator">.</span>member4;
     argument<span class="operator">.</span>endStructure();
     <span class="keyword">return</span> argument;
 }
</pre>
<p><b>See also</b> <a href="qdbusargument.html#endStructure">endStructure</a>(), <a href="qdbusargument.html#beginArray">beginArray</a>(), and <a href="qdbusargument.html#beginMap">beginMap</a>().</p>


<h3 class="fn"><a name="endArray" />QDBusArgument.endArray (<i>self</i>)</h3><p>Closes a D-Bus array opened with <a href="qdbusargument.html#beginArray">beginArray</a>(). This function
must be called same number of times that <a href="qdbusargument.html#beginArray">beginArray</a>() is called.</p>
<p><b>See also</b> <a href="qdbusargument.html#beginArray">beginArray</a>(), <a href="qdbusargument.html#endStructure">endStructure</a>(), and <a href="qdbusargument.html#endMap">endMap</a>().</p>


<h3 class="fn"><a name="endMap" />QDBusArgument.endMap (<i>self</i>)</h3><p>Closes a D-Bus map opened with <a href="qdbusargument.html#beginMap">beginMap</a>(). This function must be
called same number of times that <a href="qdbusargument.html#beginMap">beginMap</a>() is called.</p>
<p><b>See also</b> <a href="qdbusargument.html#beginMap">beginMap</a>(), <a href="qdbusargument.html#endStructure">endStructure</a>(), and <a href="qdbusargument.html#endArray">endArray</a>().</p>


<h3 class="fn"><a name="endMapEntry" />QDBusArgument.endMapEntry (<i>self</i>)</h3><p>Closes a D-Bus map entry opened with <a href="qdbusargument.html#beginMapEntry">beginMapEntry</a>(). This
function must be called same number of times that <a href="qdbusargument.html#beginMapEntry">beginMapEntry</a>() is
called.</p>
<p><b>See also</b> <a href="qdbusargument.html#beginMapEntry">beginMapEntry</a>().</p>


<h3 class="fn"><a name="endStructure" />QDBusArgument.endStructure (<i>self</i>)</h3><p>Closes a D-Bus structure opened with <a href="qdbusargument.html#beginStructure">beginStructure</a>(). This
function must be called same number of times that <a href="qdbusargument.html#beginStructure">beginStructure</a>() is
called.</p>
<p><b>See also</b> <a href="qdbusargument.html#beginStructure">beginStructure</a>(), <a href="qdbusargument.html#endArray">endArray</a>(), and <a href="qdbusargument.html#endMap">endMap</a>().</p>


<address><hr /><div align="center"><table border="0" cellspacing="0" width="100%"><tr class="address"><td align="left" width="25%">PyQt&#160;4.12.1 for X11</td><td align="center" width="50%">Copyright &#169; <a href="http://www.riverbankcomputing.com">Riverbank&#160;Computing&#160;Ltd</a> and <a href="http://www.qt.io">The Qt Company</a> 2015</td><td align="right" width="25%">Qt&#160;4.8.7</td></tr></table></div></address></body></html>