39
39
<div class="refnamediv"><table width="100%"><tr>
41
41
<h2><span class="refentrytitle"><a name="DeeSharedModel.top_of_page"></a>DeeSharedModel</span></h2>
42
<p>DeeSharedModel — A <a class="link" href="DeeModel.html" title="DeeModel"><span class="type">DeeModel</span></a> that can synchronize with other
42
<p>DeeSharedModel — A <a href="/usr/share/gtk-doc/html/dee-1.0/DeeModel.html"><span class="type">DeeModel</span></a> that can synchronize with other
43
43
<a class="link" href="DeeSharedModel.html" title="DeeSharedModel"><span class="type">DeeSharedModel</span></a> objects across D-Bus.</p>
45
45
<td valign="top" align="right"></td>
46
46
</tr></table></div>
47
47
<div class="refsynopsisdiv">
48
48
<a name="DeeSharedModel.synopsis"></a><h2>Synopsis</h2>
49
<pre class="synopsis">
49
<a name="DeeSharedModelAccessMode"></a><pre class="synopsis">
50
50
#include <dee.h>
52
52
#define <a class="link" href="DeeSharedModel.html#DEE-SHARED-MODEL-DBUS-IFACE:CAPS" title="DEE_SHARED_MODEL_DBUS_IFACE">DEE_SHARED_MODEL_DBUS_IFACE</a>
53
53
struct <a class="link" href="DeeSharedModel.html#DeeSharedModel-struct" title="struct DeeSharedModel">DeeSharedModel</a>;
54
enum <a class="link" href="DeeSharedModel.html#DeeSharedModelAccessMode-enum" title="enum DeeSharedModelAccessMode">DeeSharedModelAccessMode</a>;
54
55
struct <a class="link" href="DeeSharedModel.html#DeeSharedModelClass" title="struct DeeSharedModelClass">DeeSharedModelClass</a>;
55
56
enum <a class="link" href="DeeSharedModel.html#DeeSharedModelError" title="enum DeeSharedModelError">DeeSharedModelError</a>;
56
57
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="DeeSharedModel.html#dee-shared-model-flush-revision-queue" title="dee_shared_model_flush_revision_queue ()">dee_shared_model_flush_revision_queue</a>
59
60
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="DeeSharedModel.html#dee-shared-model-get-swarm-name" title="dee_shared_model_get_swarm_name ()">dee_shared_model_get_swarm_name</a> (<em class="parameter"><code><a class="link" href="DeeSharedModel.html" title="DeeSharedModel"><span class="type">DeeSharedModel</span></a> *self</code></em>);
60
61
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="DeeSharedModel.html#dee-shared-model-is-leader" title="dee_shared_model_is_leader ()">dee_shared_model_is_leader</a> (<em class="parameter"><code><a class="link" href="DeeSharedModel.html" title="DeeSharedModel"><span class="type">DeeSharedModel</span></a> *self</code></em>);
61
62
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="DeeSharedModel.html#dee-shared-model-is-synchronized" title="dee_shared_model_is_synchronized ()">dee_shared_model_is_synchronized</a> (<em class="parameter"><code><a class="link" href="DeeSharedModel.html" title="DeeSharedModel"><span class="type">DeeSharedModel</span></a> *self</code></em>);
62
<a class="link" href="DeeModel.html" title="DeeModel"><span class="returnvalue">DeeModel</span></a> * <a class="link" href="DeeSharedModel.html#dee-shared-model-new" title="dee_shared_model_new ()">dee_shared_model_new</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
63
<a class="link" href="DeeModel.html" title="DeeModel"><span class="returnvalue">DeeModel</span></a> * <a class="link" href="DeeSharedModel.html#dee-shared-model-new-with-back-end" title="dee_shared_model_new_with_back_end ()">dee_shared_model_new_with_back_end</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
64
<em class="parameter"><code><a class="link" href="DeeModel.html" title="DeeModel"><span class="type">DeeModel</span></a> *back_end</code></em>);
63
<a href="/usr/share/gtk-doc/html/dee-1.0/DeeModel.html"><span class="returnvalue">DeeModel</span></a> * <a class="link" href="DeeSharedModel.html#dee-shared-model-new" title="dee_shared_model_new ()">dee_shared_model_new</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
64
<a href="/usr/share/gtk-doc/html/dee-1.0/DeeModel.html"><span class="returnvalue">DeeModel</span></a> * <a class="link" href="DeeSharedModel.html#dee-shared-model-new-for-peer" title="dee_shared_model_new_for_peer ()">dee_shared_model_new_for_peer</a> (<em class="parameter"><code><a class="link" href="DeePeer.html" title="DeePeer"><span class="type">DeePeer</span></a> *peer</code></em>);
65
<a href="/usr/share/gtk-doc/html/dee-1.0/DeeModel.html"><span class="returnvalue">DeeModel</span></a> * <a class="link" href="DeeSharedModel.html#dee-shared-model-new-with-back-end" title="dee_shared_model_new_with_back_end ()">dee_shared_model_new_with_back_end</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
66
<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dee-1.0/DeeModel.html"><span class="type">DeeModel</span></a> *back_end</code></em>);
67
69
<div class="refsect1">
72
74
+----<a class="link" href="DeeProxyModel.html" title="DeeProxyModel">DeeProxyModel</a>
73
75
+----DeeSharedModel
77
<pre class="synopsis">
79
+----DeeSharedModelAccessMode
76
82
<div class="refsect1">
77
83
<a name="DeeSharedModel.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
79
85
DeeSharedModel implements
80
<a class="link" href="DeeModel.html" title="DeeModel">DeeModel</a> and <a class="link" href="DeeSerializable.html" title="DeeSerializable">DeeSerializable</a>.</p>
86
<a href="/usr/share/gtk-doc/html/dee-1.0/DeeModel.html">DeeModel</a> and <a href="/usr/share/gtk-doc/html/dee-1.0/DeeSerializable.html">DeeSerializable</a>.</p>
82
88
<div class="refsect1">
83
89
<a name="DeeSharedModel.properties"></a><h2>Properties</h2>
84
90
<pre class="synopsis">
85
"<a class="link" href="DeeSharedModel.html#DeeSharedModel--access-mode" title='The "access-mode" property'>access-mode</a>" <span class="type">DeeSharedModelAccessMode</span> : Read / Write / Construct Only
91
"<a class="link" href="DeeSharedModel.html#DeeSharedModel--access-mode" title='The "access-mode" property'>access-mode</a>" <a class="link" href="DeeSharedModel.html#DeeSharedModelAccessMode"><span class="type">DeeSharedModelAccessMode</span></a> : Read / Write / Construct Only
86
92
"<a class="link" href="DeeSharedModel.html#DeeSharedModel--peer" title='The "peer" property'>peer</a>" <a class="link" href="DeePeer.html" title="DeePeer"><span class="type">DeePeer</span></a>* : Read / Write / Construct Only
87
93
"<a class="link" href="DeeSharedModel.html#DeeSharedModel--synchronized" title='The "synchronized" property'>synchronized</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read
133
139
<div class="refsect2">
140
<a name="DeeSharedModelAccessMode-enum"></a><h3>enum DeeSharedModelAccessMode</h3>
141
<pre class="programlisting">typedef enum {
142
DEE_SHARED_MODEL_ACCESS_MODE_WORLD_WRITABLE,
143
DEE_SHARED_MODEL_ACCESS_MODE_LEADER_WRITABLE
144
} DeeSharedModelAccessMode;
147
Enumeration defining behavior of the model with regards to writes from
148
other peers in the swarm.
152
<div class="refsect2">
134
153
<a name="DeeSharedModelClass"></a><h3>struct DeeSharedModelClass</h3>
135
154
<pre class="programlisting">struct DeeSharedModelClass {
261
280
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> dee_shared_model_is_synchronized (<em class="parameter"><code><a class="link" href="DeeSharedModel.html" title="DeeSharedModel"><span class="type">DeeSharedModel</span></a> *self</code></em>);</pre>
263
282
Check if the model is synchronized with its peers. Before modifying a
264
shared model in any way (except <a class="link" href="DeeModel.html#dee-model-set-schema" title="dee_model_set_schema ()"><code class="function">dee_model_set_schema()</code></a>) you should wait for
283
shared model in any way (except <a class="link" href="dee-1.0-DeeModel.html#dee-model-set-schema" title="dee_model_set_schema ()"><code class="function">dee_model_set_schema()</code></a>) you should wait for
265
284
it to become synchronized. This is normally done by waiting for the
266
285
"notify::synchronized" signal.
287
306
<div class="refsect2">
288
307
<a name="dee-shared-model-new"></a><h3>dee_shared_model_new ()</h3>
289
<pre class="programlisting"><a class="link" href="DeeModel.html" title="DeeModel"><span class="returnvalue">DeeModel</span></a> * dee_shared_model_new (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
308
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/dee-1.0/DeeModel.html"><span class="returnvalue">DeeModel</span></a> * dee_shared_model_new (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
291
310
Create a new empty shared model without any column schema associated.
292
311
The column schema will be set in one of two ways: firstly you may set it
293
manually with <a class="link" href="DeeModel.html#dee-model-set-schema" title="dee_model_set_schema ()"><code class="function">dee_model_set_schema()</code></a> or secondly it will be set once
312
manually with <a class="link" href="dee-1.0-DeeModel.html#dee-model-set-schema" title="dee_model_set_schema ()"><code class="function">dee_model_set_schema()</code></a> or secondly it will be set once
294
313
the first rows are exchanged with a peer model.
321
340
<div class="refsect2">
341
<a name="dee-shared-model-new-for-peer"></a><h3>dee_shared_model_new_for_peer ()</h3>
342
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/dee-1.0/DeeModel.html"><span class="returnvalue">DeeModel</span></a> * dee_shared_model_new_for_peer (<em class="parameter"><code><a class="link" href="DeePeer.html" title="DeePeer"><span class="type">DeePeer</span></a> *peer</code></em>);</pre>
344
Create a new empty shared model without any column schema associated.
345
The column schema will be set in one of two ways: firstly you may set it
346
manually with <a class="link" href="dee-1.0-DeeModel.html#dee-model-set-schema" title="dee_model_set_schema ()"><code class="function">dee_model_set_schema()</code></a> or secondly it will be set once
347
the first rows are exchanged with a peer model.
350
A <a class="link" href="DeeSharedModel.html" title="DeeSharedModel"><span class="type">DeeSharedModel</span></a> with a schema manually set has to be created before
351
creating more <a class="link" href="DeeSharedModel.html" title="DeeSharedModel"><span class="type">DeeSharedModel</span></a> with the same <em class="parameter"><code>name</code></em>.
354
A shared model created with this constructor will store row data in a
355
suitably picked memory backed model.
357
<div class="variablelist"><table border="0">
358
<col align="left" valign="top">
361
<td><p><span class="term"><em class="parameter"><code>peer</code></em> :</span></p></td>
362
<td>A <a class="link" href="DeePeer.html" title="DeePeer"><span class="type">DeePeer</span></a> instance. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
366
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
367
<td>a new <a class="link" href="DeeSharedModel.html" title="DeeSharedModel"><span class="type">DeeSharedModel</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> DeeSharedModel]</span>
374
<div class="refsect2">
322
375
<a name="dee-shared-model-new-with-back-end"></a><h3>dee_shared_model_new_with_back_end ()</h3>
323
<pre class="programlisting"><a class="link" href="DeeModel.html" title="DeeModel"><span class="returnvalue">DeeModel</span></a> * dee_shared_model_new_with_back_end (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
324
<em class="parameter"><code><a class="link" href="DeeModel.html" title="DeeModel"><span class="type">DeeModel</span></a> *back_end</code></em>);</pre>
376
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/dee-1.0/DeeModel.html"><span class="returnvalue">DeeModel</span></a> * dee_shared_model_new_with_back_end (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
377
<em class="parameter"><code><a href="/usr/share/gtk-doc/html/dee-1.0/DeeModel.html"><span class="type">DeeModel</span></a> *back_end</code></em>);</pre>
326
379
Create a new shared model storing all data in <em class="parameter"><code>back_end</code></em>.
342
395
<td><p><span class="term"><em class="parameter"><code>back_end</code></em> :</span></p></td>
343
<td>The <a class="link" href="DeeModel.html" title="DeeModel"><span class="type">DeeModel</span></a> that will actually store
396
<td>The <a href="/usr/share/gtk-doc/html/dee-1.0/DeeModel.html"><span class="type">DeeModel</span></a> that will actually store
344
397
the model data. Ownership of the ref to <em class="parameter"><code>back_end</code></em> is transfered to
345
398
the shared model. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
358
411
<a name="DeeSharedModel.property-details"></a><h2>Property Details</h2>
359
412
<div class="refsect2">
360
413
<a name="DeeSharedModel--access-mode"></a><h3>The <code class="literal">"access-mode"</code> property</h3>
361
<pre class="programlisting"> "access-mode" <span class="type">DeeSharedModelAccessMode</span> : Read / Write / Construct Only</pre>
414
<pre class="programlisting"> "access-mode" <a class="link" href="DeeSharedModel.html#DeeSharedModelAccessMode"><span class="type">DeeSharedModelAccessMode</span></a> : Read / Write / Construct Only</pre>
363
416
Enumeration defining behavior of this model when trying to write to it.
392
445
You should not modify a <a class="link" href="DeeSharedModel.html" title="DeeSharedModel"><span class="type">DeeSharedModel</span></a> that is not synchronized. Before
393
modifying the model in any way (except calling <a class="link" href="DeeModel.html#dee-model-set-schema" title="dee_model_set_schema ()"><code class="function">dee_model_set_schema()</code></a>)
446
modifying the model in any way (except calling <a class="link" href="dee-1.0-DeeModel.html#dee-model-set-schema" title="dee_model_set_schema ()"><code class="function">dee_model_set_schema()</code></a>)
394
447
you should wait for it to become synchronized.
396
449
<p>Default value: FALSE</p>