sync
[gir-1.1] / Midgard-10.05.gir
1 <?xml version="1.0"?>
2 <!-- This file was automatically generated from C sources - DO NOT EDIT!
3 To affect the contents of this file, edit the original C definitions,
4 and/or use gtk-doc annotations.  -->
5 <repository version="1.1"
6             xmlns="http://www.gtk.org/introspection/core/1.0"
7             xmlns:c="http://www.gtk.org/introspection/c/1.0"
8             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
9   <include name="GLib" version="2.0"/>
10   <include name="GObject" version="2.0"/>
11   <include name="Gda" version="4.0"/>
12   <include name="libxml2" version="2.0"/>
13   <package name="gobject-2.0"/>
14   <package name="libgda-4.0"/>
15   <package name="libxml-2.0"/>
16   <namespace name="Midgard"
17              version="10.05"
18              shared-library="libmidgard2.so.2010"
19              c:prefix="Midgard">
20     <class name="Blob"
21            c:type="MidgardBlob"
22            parent="GObject.Object"
23            glib:type-name="MidgardBlob"
24            glib:get-type="midgard_blob_get_type"
25            glib:type-struct="BlobClass">
26       <constructor name="new" c:identifier="midgard_blob_new">
27         <doc xml:whitespace="preserve">Default encoding is UTF-8. Set NULL @encoding if such is required. 
28 Instatiate new Midgard Blob object for the given midgard_attachment object. 
29 This is almost the same constructor as g_object_new, but unlike that one,
30 midgard_blob_new requires MidgardObject (midgard_attachment) object's pointer.
31 This constructor defines new relative path for attachment, if midgard_attachment 
32 is associated with midgard_blob and its location is empty. 
33 In any other case, location is not changed.</doc>
34         <return-value transfer-ownership="full">
35           <doc xml:whitespace="preserve">newly instatiated #MidgardBlob object or %NULL on failure</doc>
36           <type name="Blob" c:type="MidgardBlob*"/>
37         </return-value>
38         <parameters>
39           <parameter name="attachment" transfer-ownership="none">
40             <doc xml:whitespace="preserve">#MidgardObject of MIDGARD_TYPE_ATTACHMENT type.</doc>
41             <type name="Object" c:type="MidgardObject*"/>
42           </parameter>
43           <parameter name="encoding" transfer-ownership="none">
44             <doc xml:whitespace="preserve">file encoding</doc>
45             <type name="utf8" c:type="gchar*"/>
46           </parameter>
47         </parameters>
48       </constructor>
49       <virtual-method name="read_content" invoker="read_content">
50         <doc xml:whitespace="preserve">Returned content should be freed when no longer needed.
51 This function should be used to get content of small files.
52 For large and huge ones midgard_blob_get_handler should be used
53 to get file handle.</doc>
54         <return-value transfer-ownership="full">
55           <doc xml:whitespace="preserve">content of the file, or %NULL on failure</doc>
56           <type name="utf8" c:type="gchar*"/>
57         </return-value>
58         <parameters>
59           <parameter name="bytes_read"
60                      direction="out"
61                      caller-allocates="0"
62                      transfer-ownership="full">
63             <doc xml:whitespace="preserve">number of bytes read</doc>
64             <type name="gsize" c:type="gsize*"/>
65           </parameter>
66         </parameters>
67       </virtual-method>
68       <virtual-method name="write_content" invoker="write_content">
69         <doc xml:whitespace="preserve">Write given @content to a file.</doc>
70         <return-value transfer-ownership="none">
71           <doc xml:whitespace="preserve">%TRUE if content has been written to file, %FALSE otherwise.</doc>
72           <type name="boolean" c:type="gboolean"/>
73         </return-value>
74         <parameters>
75           <parameter name="content" transfer-ownership="none">
76             <doc xml:whitespace="preserve">content which should be written to file.</doc>
77             <type name="utf8" c:type="gchar*"/>
78           </parameter>
79         </parameters>
80       </virtual-method>
81       <virtual-method name="remove_file" invoker="remove_file">
82         <doc xml:whitespace="preserve">Deletes a file which is associated with blob and located at
83 attachment's location which is initialized for blob.
84 #midgard_blob_exists should be invoked if file may be already 
85 deleted, for example when one file is shared among many attachments.</doc>
86         <return-value transfer-ownership="none">
87           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
88           <type name="boolean" c:type="gboolean"/>
89         </return-value>
90       </virtual-method>
91       <virtual-method name="exists" invoker="exists">
92         <doc xml:whitespace="preserve">Check if file associated with midgard_blob exists.
93 This function will also return FALSE, if file is not yet associated.</doc>
94         <return-value transfer-ownership="none">
95           <doc xml:whitespace="preserve">%TRUE if file exists, %FALSE otherwise</doc>
96           <type name="boolean" c:type="gboolean"/>
97         </return-value>
98       </virtual-method>
99       <virtual-method name="get_path" invoker="get_path">
100         <return-value transfer-ownership="none">
101           <type name="utf8" c:type="gchar*"/>
102         </return-value>
103       </virtual-method>
104       <virtual-method name="get_handler" invoker="get_handler">
105         <doc xml:whitespace="preserve">The main idea is to get file handler. On C level it returns
106 GIOChannel, but language bindings could return typical file handler 
107 or anything else which is needed for particular language.
108 Returned channel is owned by midgard_blob and should not be freed
109 or unreferenced.</doc>
110         <return-value transfer-ownership="full">
111           <doc xml:whitespace="preserve">GIOChannel or %NULL</doc>
112           <type name="GLib.IOChannel" c:type="GIOChannel*"/>
113         </return-value>
114         <parameters>
115           <parameter name="mode" transfer-ownership="none">
116             <doc xml:whitespace="preserve">fopen mode (r, w, a, b). Default is 'w'.</doc>
117             <type name="utf8" c:type="gchar*"/>
118           </parameter>
119         </parameters>
120       </virtual-method>
121       <method name="read_content" c:identifier="midgard_blob_read_content">
122         <doc xml:whitespace="preserve">Returned content should be freed when no longer needed.
123 This function should be used to get content of small files.
124 For large and huge ones midgard_blob_get_handler should be used
125 to get file handle.</doc>
126         <return-value transfer-ownership="full">
127           <doc xml:whitespace="preserve">content of the file, or %NULL on failure</doc>
128           <type name="utf8" c:type="gchar*"/>
129         </return-value>
130         <parameters>
131           <parameter name="bytes_read"
132                      direction="out"
133                      caller-allocates="0"
134                      transfer-ownership="full">
135             <doc xml:whitespace="preserve">number of bytes read</doc>
136             <type name="gsize" c:type="gsize*"/>
137           </parameter>
138         </parameters>
139       </method>
140       <method name="write_content" c:identifier="midgard_blob_write_content">
141         <doc xml:whitespace="preserve">Write given @content to a file.</doc>
142         <return-value transfer-ownership="none">
143           <doc xml:whitespace="preserve">%TRUE if content has been written to file, %FALSE otherwise.</doc>
144           <type name="boolean" c:type="gboolean"/>
145         </return-value>
146         <parameters>
147           <parameter name="content" transfer-ownership="none">
148             <doc xml:whitespace="preserve">content which should be written to file.</doc>
149             <type name="utf8" c:type="gchar*"/>
150           </parameter>
151         </parameters>
152       </method>
153       <method name="get_handler" c:identifier="midgard_blob_get_handler">
154         <doc xml:whitespace="preserve">The main idea is to get file handler. On C level it returns
155 GIOChannel, but language bindings could return typical file handler 
156 or anything else which is needed for particular language.
157 Returned channel is owned by midgard_blob and should not be freed
158 or unreferenced.</doc>
159         <return-value transfer-ownership="full">
160           <doc xml:whitespace="preserve">GIOChannel or %NULL</doc>
161           <type name="GLib.IOChannel" c:type="GIOChannel*"/>
162         </return-value>
163         <parameters>
164           <parameter name="mode" transfer-ownership="none">
165             <doc xml:whitespace="preserve">fopen mode (r, w, a, b). Default is 'w'.</doc>
166             <type name="utf8" c:type="gchar*"/>
167           </parameter>
168         </parameters>
169       </method>
170       <method name="get_path" c:identifier="midgard_blob_get_path">
171         <return-value transfer-ownership="none">
172           <type name="utf8" c:type="gchar*"/>
173         </return-value>
174       </method>
175       <method name="exists" c:identifier="midgard_blob_exists">
176         <doc xml:whitespace="preserve">Check if file associated with midgard_blob exists.
177 This function will also return FALSE, if file is not yet associated.</doc>
178         <return-value transfer-ownership="none">
179           <doc xml:whitespace="preserve">%TRUE if file exists, %FALSE otherwise</doc>
180           <type name="boolean" c:type="gboolean"/>
181         </return-value>
182       </method>
183       <method name="remove_file" c:identifier="midgard_blob_remove_file">
184         <doc xml:whitespace="preserve">Deletes a file which is associated with blob and located at
185 attachment's location which is initialized for blob.
186 #midgard_blob_exists should be invoked if file may be already 
187 deleted, for example when one file is shared among many attachments.</doc>
188         <return-value transfer-ownership="none">
189           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
190           <type name="boolean" c:type="gboolean"/>
191         </return-value>
192       </method>
193       <property name="content" writable="1" transfer-ownership="none">
194         <type name="utf8" c:type="gchararray"/>
195       </property>
196       <property name="parentguid" writable="1" transfer-ownership="none">
197         <type name="utf8" c:type="gchararray"/>
198       </property>
199       <field name="parent">
200         <type name="GObject.Object" c:type="GObject"/>
201       </field>
202       <field name="priv">
203         <type name="BlobPrivate" c:type="MidgardBlobPrivate*"/>
204       </field>
205     </class>
206     <record name="BlobClass"
207             c:type="MidgardBlobClass"
208             glib:is-gtype-struct-for="Blob">
209       <field name="parent">
210         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
211       </field>
212       <field name="read_content">
213         <callback name="read_content" c:type="read_content">
214           <return-value transfer-ownership="full">
215             <doc xml:whitespace="preserve">content of the file, or %NULL on failure</doc>
216             <type name="utf8" c:type="gchar*"/>
217           </return-value>
218           <parameters>
219             <parameter name="self" transfer-ownership="none">
220               <type name="Blob" c:type="MidgardBlob*"/>
221             </parameter>
222             <parameter name="bytes_read"
223                        direction="out"
224                        caller-allocates="0"
225                        transfer-ownership="full">
226               <doc xml:whitespace="preserve">number of bytes read</doc>
227               <type name="gsize" c:type="gsize*"/>
228             </parameter>
229           </parameters>
230         </callback>
231       </field>
232       <field name="write_content">
233         <callback name="write_content" c:type="write_content">
234           <return-value transfer-ownership="none">
235             <doc xml:whitespace="preserve">%TRUE if content has been written to file, %FALSE otherwise.</doc>
236             <type name="boolean" c:type="gboolean"/>
237           </return-value>
238           <parameters>
239             <parameter name="self" transfer-ownership="none">
240               <type name="Blob" c:type="MidgardBlob*"/>
241             </parameter>
242             <parameter name="content" transfer-ownership="none">
243               <doc xml:whitespace="preserve">content which should be written to file.</doc>
244               <type name="utf8" c:type="gchar*"/>
245             </parameter>
246           </parameters>
247         </callback>
248       </field>
249       <field name="remove_file">
250         <callback name="remove_file" c:type="remove_file">
251           <return-value transfer-ownership="none">
252             <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
253             <type name="boolean" c:type="gboolean"/>
254           </return-value>
255           <parameters>
256             <parameter name="self" transfer-ownership="none">
257               <type name="Blob" c:type="MidgardBlob*"/>
258             </parameter>
259           </parameters>
260         </callback>
261       </field>
262       <field name="exists">
263         <callback name="exists" c:type="exists">
264           <return-value transfer-ownership="none">
265             <doc xml:whitespace="preserve">%TRUE if file exists, %FALSE otherwise</doc>
266             <type name="boolean" c:type="gboolean"/>
267           </return-value>
268           <parameters>
269             <parameter name="self" transfer-ownership="none">
270               <type name="Blob" c:type="MidgardBlob*"/>
271             </parameter>
272           </parameters>
273         </callback>
274       </field>
275       <field name="get_path">
276         <callback name="get_path" c:type="get_path">
277           <return-value transfer-ownership="none">
278             <type name="utf8" c:type="gchar*"/>
279           </return-value>
280           <parameters>
281             <parameter name="self" transfer-ownership="none">
282               <type name="Blob" c:type="MidgardBlob*"/>
283             </parameter>
284           </parameters>
285         </callback>
286       </field>
287       <field name="get_handler">
288         <callback name="get_handler" c:type="get_handler">
289           <return-value transfer-ownership="full">
290             <doc xml:whitespace="preserve">GIOChannel or %NULL</doc>
291             <type name="GLib.IOChannel" c:type="GIOChannel*"/>
292           </return-value>
293           <parameters>
294             <parameter name="self" transfer-ownership="none">
295               <type name="Blob" c:type="MidgardBlob*"/>
296             </parameter>
297             <parameter name="mode" transfer-ownership="none">
298               <doc xml:whitespace="preserve">fopen mode (r, w, a, b). Default is 'w'.</doc>
299               <type name="utf8" c:type="gchar*"/>
300             </parameter>
301           </parameters>
302         </callback>
303       </field>
304     </record>
305     <record name="BlobPrivate" c:type="MidgardBlobPrivate">
306     </record>
307     <constant name="CONFIG_EXTENSION" value=".mcfg">
308       <type name="utf8"/>
309     </constant>
310     <class name="Collector"
311            c:type="MidgardCollector"
312            parent="QueryBuilder"
313            glib:type-name="MidgardCollector"
314            glib:get-type="midgard_collector_get_type"
315            glib:type-struct="CollectorClass">
316       <constructor name="new" c:identifier="midgard_collector_new">
317         <doc xml:whitespace="preserve">unique per object or record. In other words, @domain is a common property (and value)
318 for group of objects expected in collection.
319 If you need reuse given value, make a copy. 
320 Cases to return NULL:
321 &lt;itemizedlist&gt;
322 &lt;listitem&gt;&lt;para&gt;
323 &lt;/para&gt;&lt;/listitem&gt;
324 &lt;listitem&gt;&lt;para&gt;
325 &lt;/para&gt;&lt;/listitem&gt;
326 &lt;listitem&gt;&lt;para&gt;
327 &lt;/para&gt;&lt;/listitem&gt;
328 &lt;listitem&gt;&lt;para&gt;
329 &lt;/para&gt;&lt;/listitem&gt;
330 &lt;/itemizedlist&gt;</doc>
331         <return-value transfer-ownership="full">
332           <doc xml:whitespace="preserve">#MidgardCollector instance, or %NULL on failure</doc>
333           <type name="Collector" c:type="MidgardCollector*"/>
334         </return-value>
335         <parameters>
336           <parameter name="mgd" transfer-ownership="none">
337             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
338             <type name="Connection" c:type="MidgardConnection*"/>
339           </parameter>
340           <parameter name="typename" transfer-ownership="none">
341             <doc xml:whitespace="preserve">name of given class, which collector is initialized for</doc>
342             <type name="utf8" c:type="gchar*"/>
343           </parameter>
344           <parameter name="domain" transfer-ownership="none">
345             <doc xml:whitespace="preserve">collection' domain</doc>
346             <type name="utf8" c:type="gchar*"/>
347           </parameter>
348           <parameter name="value" transfer-ownership="none">
349             <doc xml:whitespace="preserve">domain's constraint value</doc>
350             <type name="GObject.Value" c:type="GValue*"/>
351           </parameter>
352         </parameters>
353       </constructor>
354       <virtual-method name="set_key_property" invoker="set_key_property">
355         <return-value transfer-ownership="none">
356           <type name="boolean" c:type="gboolean"/>
357         </return-value>
358         <parameters>
359           <parameter name="key" transfer-ownership="none">
360             <type name="utf8" c:type="gchar*"/>
361           </parameter>
362           <parameter name="value" transfer-ownership="none">
363             <type name="GObject.Value" c:type="GValue*"/>
364           </parameter>
365         </parameters>
366       </virtual-method>
367       <virtual-method name="add_value_property" invoker="add_value_property">
368         <doc xml:whitespace="preserve">Cases to return FALSE:
369 &lt;itemizedlist&gt;
370 &lt;listitem&gt;&lt;para&gt;
371 &lt;/para&gt;&lt;/listitem&gt;
372 &lt;listitem&gt;&lt;para&gt;
373 &lt;/para&gt;&lt;/listitem&gt; 
374 &lt;/itemizedlist&gt;
375 Number of value properties added to Midgard Collector is limited by
376 the number of properties registered for type which has been initialized
377 for the given #MidgardCollector instance.</doc>
378         <return-value transfer-ownership="none">
379           <doc xml:whitespace="preserve">%TRUE if named value property has been added, %FALSE otherwise</doc>
380           <type name="boolean" c:type="gboolean"/>
381         </return-value>
382         <parameters>
383           <parameter name="value" transfer-ownership="none">
384             <doc xml:whitespace="preserve">property name</doc>
385             <type name="utf8" c:type="gchar*"/>
386           </parameter>
387         </parameters>
388       </virtual-method>
389       <virtual-method name="set" invoker="set">
390         <doc xml:whitespace="preserve">Cases to return FALSE:
391 &lt;itemizedlist&gt;
392 &lt;listitem&gt;&lt;para&gt;
393 &lt;/para&gt;&lt;/listitem&gt;
394 &lt;listitem&gt;&lt;para&gt;
395 &lt;/para&gt;&lt;/listitem&gt;
396 &lt;listitem&gt;&lt;para&gt;
397 &lt;/para&gt;&lt;/listitem&gt;
398 &lt;/itemizedlist&gt;
399 If the key is already added to MidgardCollector then its value 
400 (as subkey&amp;value pair) is destroyed and new one is set. 
401 In other case new key and its subkey&amp;value pair is added  to collector.
402 Key used in this function is a value returned ( or set ) for collector's key.
403 Keys are collection of values returned from property fields.  
404 Subkey is an explicit  property name.
405 GValue @value argument is owned by MidgardCollector.
406 If value should be reused, its copy should be passed as method argument.</doc>
407         <return-value transfer-ownership="none">
408           <doc xml:whitespace="preserve">%TRUE, if key's value has been set, %FALSE otherwise</doc>
409           <type name="boolean" c:type="gboolean"/>
410         </return-value>
411         <parameters>
412           <parameter name="key" transfer-ownership="none">
413             <doc xml:whitespace="preserve">key name for which @subkey&amp;@value pair should be set</doc>
414             <type name="utf8" c:type="gchar*"/>
415           </parameter>
416           <parameter name="subkey" transfer-ownership="none">
417             <doc xml:whitespace="preserve">property name which is a subkey</doc>
418             <type name="utf8" c:type="gchar*"/>
419           </parameter>
420           <parameter name="value" transfer-ownership="none">
421             <doc xml:whitespace="preserve">value for given @subkey</doc>
422             <type name="GObject.Value" c:type="GValue*"/>
423           </parameter>
424         </parameters>
425       </virtual-method>
426       <virtual-method name="get" invoker="get">
427         <doc xml:whitespace="preserve">GData keys ( collector's subkeys ) are inserted to GData as
428 Quarks , so you must call g_quark_to_string if you need to get strings 
429 ( e.g. implementing hash table for language bindings ).</doc>
430         <return-value transfer-ownership="full">
431           <doc xml:whitespace="preserve">#GData for the given key or %NULL if key is not found in collection</doc>
432           <type name="GLib.Data" c:type="GData*"/>
433         </return-value>
434         <parameters>
435           <parameter name="key" transfer-ownership="none">
436             <doc xml:whitespace="preserve">name of the key to look for</doc>
437             <type name="utf8" c:type="gchar*"/>
438           </parameter>
439         </parameters>
440       </virtual-method>
441       <virtual-method name="get_subkey" invoker="get_subkey">
442         <return-value transfer-ownership="full">
443           <doc xml:whitespace="preserve">subkey's #GValue value or %NULL if not found</doc>
444           <type name="GObject.Value" c:type="GValue*"/>
445         </return-value>
446         <parameters>
447           <parameter name="key" transfer-ownership="none">
448             <doc xml:whitespace="preserve">name of the key</doc>
449             <type name="utf8" c:type="gchar*"/>
450           </parameter>
451           <parameter name="subkey" transfer-ownership="none">
452             <doc xml:whitespace="preserve">name of key's subkey to look for</doc>
453             <type name="utf8" c:type="gchar*"/>
454           </parameter>
455         </parameters>
456       </virtual-method>
457       <virtual-method name="merge" invoker="merge">
458         <doc xml:whitespace="preserve">If third overwrite parameter is set as TRUE then all keys which exists 
459 in @self and @mc collector's instance will be oberwritten in @self colection
460 instance. If set as FALSE , only those keys will be added, which do not exist
461 in @self collection and exist in @mc collection.
462 Cases to return FALSE:
463 &lt;itemizedlist&gt;
464 &lt;listitem&gt;&lt;para&gt;
465 Second argument is not valid #MidgardCollector 
466 &lt;/para&gt;&lt;/listitem&gt;
467 &lt;listitem&gt;&lt;para&gt;
468 &lt;/para&gt;&lt;/listitem&gt;
469 &lt;/itemizedlist&gt;</doc>
470         <return-value transfer-ownership="none">
471           <doc xml:whitespace="preserve">%TRUE if collections has been merged, %FALSE otherwise</doc>
472           <type name="boolean" c:type="gboolean"/>
473         </return-value>
474         <parameters>
475           <parameter name="mc" transfer-ownership="none">
476             <doc xml:whitespace="preserve">#MidgardCollector instance</doc>
477             <type name="Collector" c:type="MidgardCollector*"/>
478           </parameter>
479           <parameter name="overwrite" transfer-ownership="none">
480             <doc xml:whitespace="preserve">whether overwrite collector's keys</doc>
481             <type name="boolean" c:type="gboolean"/>
482           </parameter>
483         </parameters>
484       </virtual-method>
485       <virtual-method name="list_keys" invoker="list_keys">
486         <return-value transfer-ownership="full">
487           <array c:type="gchar**">
488             <type name="utf8"/>
489           </array>
490         </return-value>
491       </virtual-method>
492       <virtual-method name="remove_key" invoker="remove_key">
493         <doc xml:whitespace="preserve">Removes key and associated value from the given #MidgardCollector instance.</doc>
494         <return-value transfer-ownership="none">
495           <doc xml:whitespace="preserve">%TRUE if key (and its value) has been removed from collection, %FALSE otherwise</doc>
496           <type name="boolean" c:type="gboolean"/>
497         </return-value>
498         <parameters>
499           <parameter name="key" transfer-ownership="none">
500             <doc xml:whitespace="preserve">name of the key in collector's collection</doc>
501             <type name="utf8" c:type="gchar*"/>
502           </parameter>
503         </parameters>
504       </virtual-method>
505       <virtual-method name="destroy">
506         <return-value transfer-ownership="none">
507           <type name="none" c:type="void"/>
508         </return-value>
509       </virtual-method>
510       <virtual-method name="add_constraint" invoker="add_constraint">
511         <return-value transfer-ownership="none">
512           <type name="boolean" c:type="gboolean"/>
513         </return-value>
514         <parameters>
515           <parameter name="name" transfer-ownership="none">
516             <type name="utf8" c:type="gchar*"/>
517           </parameter>
518           <parameter name="op" transfer-ownership="none">
519             <type name="utf8" c:type="gchar*"/>
520           </parameter>
521           <parameter name="value" transfer-ownership="none">
522             <type name="GObject.Value" c:type="GValue*"/>
523           </parameter>
524         </parameters>
525       </virtual-method>
526       <virtual-method name="add_constraint_with_property"
527                       invoker="add_constraint_with_property">
528         <return-value transfer-ownership="none">
529           <type name="boolean" c:type="gboolean"/>
530         </return-value>
531         <parameters>
532           <parameter name="property_a" transfer-ownership="none">
533             <type name="utf8" c:type="gchar*"/>
534           </parameter>
535           <parameter name="op" transfer-ownership="none">
536             <type name="utf8" c:type="gchar*"/>
537           </parameter>
538           <parameter name="property_b" transfer-ownership="none">
539             <type name="utf8" c:type="gchar*"/>
540           </parameter>
541         </parameters>
542       </virtual-method>
543       <virtual-method name="begin_group" invoker="begin_group">
544         <return-value transfer-ownership="none">
545           <type name="boolean" c:type="gboolean"/>
546         </return-value>
547         <parameters>
548           <parameter name="type" transfer-ownership="none">
549             <type name="utf8" c:type="gchar*"/>
550           </parameter>
551         </parameters>
552       </virtual-method>
553       <virtual-method name="end_group" invoker="end_group">
554         <return-value transfer-ownership="none">
555           <type name="boolean" c:type="gboolean"/>
556         </return-value>
557       </virtual-method>
558       <virtual-method name="add_order" invoker="add_order">
559         <return-value transfer-ownership="none">
560           <type name="boolean" c:type="gboolean"/>
561         </return-value>
562         <parameters>
563           <parameter name="name" transfer-ownership="none">
564             <type name="utf8" c:type="gchar*"/>
565           </parameter>
566           <parameter name="dir" transfer-ownership="none">
567             <type name="utf8" c:type="gchar*"/>
568           </parameter>
569         </parameters>
570       </virtual-method>
571       <virtual-method name="set_offset" invoker="set_offset">
572         <return-value transfer-ownership="none">
573           <type name="none" c:type="void"/>
574         </return-value>
575         <parameters>
576           <parameter name="offset" transfer-ownership="none">
577             <type name="uint" c:type="guint"/>
578           </parameter>
579         </parameters>
580       </virtual-method>
581       <virtual-method name="set_limit" invoker="set_limit">
582         <return-value transfer-ownership="none">
583           <type name="none" c:type="void"/>
584         </return-value>
585         <parameters>
586           <parameter name="limit" transfer-ownership="none">
587             <type name="uint" c:type="guint"/>
588           </parameter>
589         </parameters>
590       </virtual-method>
591       <virtual-method name="count" invoker="count">
592         <return-value transfer-ownership="none">
593           <type name="none" c:type="void"/>
594         </return-value>
595       </virtual-method>
596       <virtual-method name="include_deleted" invoker="include_deleted">
597         <return-value transfer-ownership="none">
598           <type name="none" c:type="void"/>
599         </return-value>
600       </virtual-method>
601       <virtual-method name="execute" invoker="execute">
602         <doc xml:whitespace="preserve">Executes SQL query and set internal keys&amp;values collection.
603 Overwritten #MidgardQueryBuilder execute method.
604 Unlike QB's execute method this one returns boolean value.
605 Resultset is stored inernally by #MidgardCollector instance.
606 Cases to return FALSE:
607 &lt;itemizedlist&gt;
608 &lt;listitem&gt;&lt;para&gt;
609 No key is associated, midgard_collector_set_key_property()
610 &lt;/para&gt;&lt;/listitem&gt;
611 &lt;listitem&gt;&lt;para&gt;
612 No value property is associated, midgard_collector_add_value_property()
613 &lt;/para&gt;&lt;/listitem&gt;
614 &lt;listitem&gt;&lt;para&gt;
615 Database provider returned SQL query syntax error
616 &lt;/para&gt;&lt;/listitem&gt;
617 &lt;listitem&gt;&lt;para&gt;
618 No record(s) matched  
619 &lt;/para&gt;&lt;/listitem&gt;
620 &lt;/itemizedlist&gt;</doc>
621         <return-value transfer-ownership="none">
622           <doc xml:whitespace="preserve">%TRUE in success, %FALSE otherwise</doc>
623           <type name="boolean" c:type="gboolean"/>
624         </return-value>
625       </virtual-method>
626       <method name="set_key_property"
627               c:identifier="midgard_collector_set_key_property">
628         <return-value transfer-ownership="none">
629           <type name="boolean" c:type="gboolean"/>
630         </return-value>
631         <parameters>
632           <parameter name="key" transfer-ownership="none">
633             <type name="utf8" c:type="gchar*"/>
634           </parameter>
635           <parameter name="value" transfer-ownership="none">
636             <type name="GObject.Value" c:type="GValue*"/>
637           </parameter>
638         </parameters>
639       </method>
640       <method name="add_value_property"
641               c:identifier="midgard_collector_add_value_property">
642         <doc xml:whitespace="preserve">Cases to return FALSE:
643 &lt;itemizedlist&gt;
644 &lt;listitem&gt;&lt;para&gt;
645 &lt;/para&gt;&lt;/listitem&gt;
646 &lt;listitem&gt;&lt;para&gt;
647 &lt;/para&gt;&lt;/listitem&gt; 
648 &lt;/itemizedlist&gt;
649 Number of value properties added to Midgard Collector is limited by
650 the number of properties registered for type which has been initialized
651 for the given #MidgardCollector instance.</doc>
652         <return-value transfer-ownership="none">
653           <doc xml:whitespace="preserve">%TRUE if named value property has been added, %FALSE otherwise</doc>
654           <type name="boolean" c:type="gboolean"/>
655         </return-value>
656         <parameters>
657           <parameter name="value" transfer-ownership="none">
658             <doc xml:whitespace="preserve">property name</doc>
659             <type name="utf8" c:type="gchar*"/>
660           </parameter>
661         </parameters>
662       </method>
663       <method name="set" c:identifier="midgard_collector_set">
664         <doc xml:whitespace="preserve">Cases to return FALSE:
665 &lt;itemizedlist&gt;
666 &lt;listitem&gt;&lt;para&gt;
667 &lt;/para&gt;&lt;/listitem&gt;
668 &lt;listitem&gt;&lt;para&gt;
669 &lt;/para&gt;&lt;/listitem&gt;
670 &lt;listitem&gt;&lt;para&gt;
671 &lt;/para&gt;&lt;/listitem&gt;
672 &lt;/itemizedlist&gt;
673 If the key is already added to MidgardCollector then its value 
674 (as subkey&amp;value pair) is destroyed and new one is set. 
675 In other case new key and its subkey&amp;value pair is added  to collector.
676 Key used in this function is a value returned ( or set ) for collector's key.
677 Keys are collection of values returned from property fields.  
678 Subkey is an explicit  property name.
679 GValue @value argument is owned by MidgardCollector.
680 If value should be reused, its copy should be passed as method argument.</doc>
681         <return-value transfer-ownership="none">
682           <doc xml:whitespace="preserve">%TRUE, if key's value has been set, %FALSE otherwise</doc>
683           <type name="boolean" c:type="gboolean"/>
684         </return-value>
685         <parameters>
686           <parameter name="key" transfer-ownership="none">
687             <doc xml:whitespace="preserve">key name for which @subkey&amp;@value pair should be set</doc>
688             <type name="utf8" c:type="gchar*"/>
689           </parameter>
690           <parameter name="subkey" transfer-ownership="none">
691             <doc xml:whitespace="preserve">property name which is a subkey</doc>
692             <type name="utf8" c:type="gchar*"/>
693           </parameter>
694           <parameter name="value" transfer-ownership="none">
695             <doc xml:whitespace="preserve">value for given @subkey</doc>
696             <type name="GObject.Value" c:type="GValue*"/>
697           </parameter>
698         </parameters>
699       </method>
700       <method name="get" c:identifier="midgard_collector_get">
701         <doc xml:whitespace="preserve">GData keys ( collector's subkeys ) are inserted to GData as
702 Quarks , so you must call g_quark_to_string if you need to get strings 
703 ( e.g. implementing hash table for language bindings ).</doc>
704         <return-value transfer-ownership="full">
705           <doc xml:whitespace="preserve">#GData for the given key or %NULL if key is not found in collection</doc>
706           <type name="GLib.Data" c:type="GData*"/>
707         </return-value>
708         <parameters>
709           <parameter name="key" transfer-ownership="none">
710             <doc xml:whitespace="preserve">name of the key to look for</doc>
711             <type name="utf8" c:type="gchar*"/>
712           </parameter>
713         </parameters>
714       </method>
715       <method name="get_subkey" c:identifier="midgard_collector_get_subkey">
716         <return-value transfer-ownership="full">
717           <doc xml:whitespace="preserve">subkey's #GValue value or %NULL if not found</doc>
718           <type name="GObject.Value" c:type="GValue*"/>
719         </return-value>
720         <parameters>
721           <parameter name="key" transfer-ownership="none">
722             <doc xml:whitespace="preserve">name of the key</doc>
723             <type name="utf8" c:type="gchar*"/>
724           </parameter>
725           <parameter name="subkey" transfer-ownership="none">
726             <doc xml:whitespace="preserve">name of key's subkey to look for</doc>
727             <type name="utf8" c:type="gchar*"/>
728           </parameter>
729         </parameters>
730       </method>
731       <method name="list_keys" c:identifier="midgard_collector_list_keys">
732         <return-value transfer-ownership="full">
733           <array c:type="gchar**">
734             <type name="utf8"/>
735           </array>
736         </return-value>
737       </method>
738       <method name="merge" c:identifier="midgard_collector_merge">
739         <doc xml:whitespace="preserve">If third overwrite parameter is set as TRUE then all keys which exists 
740 in @self and @mc collector's instance will be oberwritten in @self colection
741 instance. If set as FALSE , only those keys will be added, which do not exist
742 in @self collection and exist in @mc collection.
743 Cases to return FALSE:
744 &lt;itemizedlist&gt;
745 &lt;listitem&gt;&lt;para&gt;
746 Second argument is not valid #MidgardCollector 
747 &lt;/para&gt;&lt;/listitem&gt;
748 &lt;listitem&gt;&lt;para&gt;
749 &lt;/para&gt;&lt;/listitem&gt;
750 &lt;/itemizedlist&gt;</doc>
751         <return-value transfer-ownership="none">
752           <doc xml:whitespace="preserve">%TRUE if collections has been merged, %FALSE otherwise</doc>
753           <type name="boolean" c:type="gboolean"/>
754         </return-value>
755         <parameters>
756           <parameter name="mc" transfer-ownership="none">
757             <doc xml:whitespace="preserve">#MidgardCollector instance</doc>
758             <type name="Collector" c:type="MidgardCollector*"/>
759           </parameter>
760           <parameter name="overwrite" transfer-ownership="none">
761             <doc xml:whitespace="preserve">whether overwrite collector's keys</doc>
762             <type name="boolean" c:type="gboolean"/>
763           </parameter>
764         </parameters>
765       </method>
766       <method name="remove_key" c:identifier="midgard_collector_remove_key">
767         <doc xml:whitespace="preserve">Removes key and associated value from the given #MidgardCollector instance.</doc>
768         <return-value transfer-ownership="none">
769           <doc xml:whitespace="preserve">%TRUE if key (and its value) has been removed from collection, %FALSE otherwise</doc>
770           <type name="boolean" c:type="gboolean"/>
771         </return-value>
772         <parameters>
773           <parameter name="key" transfer-ownership="none">
774             <doc xml:whitespace="preserve">name of the key in collector's collection</doc>
775             <type name="utf8" c:type="gchar*"/>
776           </parameter>
777         </parameters>
778       </method>
779       <method name="add_constraint"
780               c:identifier="midgard_collector_add_constraint">
781         <return-value transfer-ownership="none">
782           <type name="boolean" c:type="gboolean"/>
783         </return-value>
784         <parameters>
785           <parameter name="name" transfer-ownership="none">
786             <type name="utf8" c:type="gchar*"/>
787           </parameter>
788           <parameter name="op" transfer-ownership="none">
789             <type name="utf8" c:type="gchar*"/>
790           </parameter>
791           <parameter name="value" transfer-ownership="none">
792             <type name="GObject.Value" c:type="GValue*"/>
793           </parameter>
794         </parameters>
795       </method>
796       <method name="add_constraint_with_property"
797               c:identifier="midgard_collector_add_constraint_with_property">
798         <return-value transfer-ownership="none">
799           <type name="boolean" c:type="gboolean"/>
800         </return-value>
801         <parameters>
802           <parameter name="property_a" transfer-ownership="none">
803             <type name="utf8" c:type="gchar*"/>
804           </parameter>
805           <parameter name="op" transfer-ownership="none">
806             <type name="utf8" c:type="gchar*"/>
807           </parameter>
808           <parameter name="property_b" transfer-ownership="none">
809             <type name="utf8" c:type="gchar*"/>
810           </parameter>
811         </parameters>
812       </method>
813       <method name="begin_group" c:identifier="midgard_collector_begin_group">
814         <return-value transfer-ownership="none">
815           <type name="boolean" c:type="gboolean"/>
816         </return-value>
817         <parameters>
818           <parameter name="type" transfer-ownership="none">
819             <type name="utf8" c:type="gchar*"/>
820           </parameter>
821         </parameters>
822       </method>
823       <method name="end_group" c:identifier="midgard_collector_end_group">
824         <return-value transfer-ownership="none">
825           <type name="boolean" c:type="gboolean"/>
826         </return-value>
827       </method>
828       <method name="add_order" c:identifier="midgard_collector_add_order">
829         <return-value transfer-ownership="none">
830           <type name="boolean" c:type="gboolean"/>
831         </return-value>
832         <parameters>
833           <parameter name="name" transfer-ownership="none">
834             <type name="utf8" c:type="gchar*"/>
835           </parameter>
836           <parameter name="dir" transfer-ownership="none">
837             <type name="utf8" c:type="gchar*"/>
838           </parameter>
839         </parameters>
840       </method>
841       <method name="set_offset" c:identifier="midgard_collector_set_offset">
842         <return-value transfer-ownership="none">
843           <type name="none" c:type="void"/>
844         </return-value>
845         <parameters>
846           <parameter name="offset" transfer-ownership="none">
847             <type name="uint" c:type="guint"/>
848           </parameter>
849         </parameters>
850       </method>
851       <method name="set_limit" c:identifier="midgard_collector_set_limit">
852         <return-value transfer-ownership="none">
853           <type name="none" c:type="void"/>
854         </return-value>
855         <parameters>
856           <parameter name="limit" transfer-ownership="none">
857             <type name="uint" c:type="guint"/>
858           </parameter>
859         </parameters>
860       </method>
861       <method name="count" c:identifier="midgard_collector_count">
862         <return-value transfer-ownership="none">
863           <type name="none" c:type="void"/>
864         </return-value>
865       </method>
866       <method name="execute" c:identifier="midgard_collector_execute">
867         <doc xml:whitespace="preserve">Executes SQL query and set internal keys&amp;values collection.
868 Overwritten #MidgardQueryBuilder execute method.
869 Unlike QB's execute method this one returns boolean value.
870 Resultset is stored inernally by #MidgardCollector instance.
871 Cases to return FALSE:
872 &lt;itemizedlist&gt;
873 &lt;listitem&gt;&lt;para&gt;
874 No key is associated, midgard_collector_set_key_property()
875 &lt;/para&gt;&lt;/listitem&gt;
876 &lt;listitem&gt;&lt;para&gt;
877 No value property is associated, midgard_collector_add_value_property()
878 &lt;/para&gt;&lt;/listitem&gt;
879 &lt;listitem&gt;&lt;para&gt;
880 Database provider returned SQL query syntax error
881 &lt;/para&gt;&lt;/listitem&gt;
882 &lt;listitem&gt;&lt;para&gt;
883 No record(s) matched  
884 &lt;/para&gt;&lt;/listitem&gt;
885 &lt;/itemizedlist&gt;</doc>
886         <return-value transfer-ownership="none">
887           <doc xml:whitespace="preserve">%TRUE in success, %FALSE otherwise</doc>
888           <type name="boolean" c:type="gboolean"/>
889         </return-value>
890       </method>
891       <method name="include_deleted"
892               c:identifier="midgard_collector_include_deleted">
893         <return-value transfer-ownership="none">
894           <type name="boolean" c:type="gboolean"/>
895         </return-value>
896       </method>
897       <field name="parent">
898         <type name="QueryBuilder" c:type="MidgardQueryBuilder"/>
899       </field>
900       <field name="priv">
901         <type name="CollectorPrivate" c:type="MidgardCollectorPrivate*"/>
902       </field>
903     </class>
904     <record name="CollectorClass"
905             c:type="MidgardCollectorClass"
906             glib:is-gtype-struct-for="Collector">
907       <field name="parent">
908         <type name="QueryBuilderClass" c:type="MidgardQueryBuilderClass"/>
909       </field>
910       <field name="set_key_property">
911         <callback name="set_key_property" c:type="set_key_property">
912           <return-value transfer-ownership="none">
913             <type name="boolean" c:type="gboolean"/>
914           </return-value>
915           <parameters>
916             <parameter name="collector" transfer-ownership="none">
917               <type name="Collector" c:type="MidgardCollector*"/>
918             </parameter>
919             <parameter name="key" transfer-ownership="none">
920               <type name="utf8" c:type="gchar*"/>
921             </parameter>
922             <parameter name="value" transfer-ownership="none">
923               <type name="GObject.Value" c:type="GValue*"/>
924             </parameter>
925           </parameters>
926         </callback>
927       </field>
928       <field name="add_value_property">
929         <callback name="add_value_property" c:type="add_value_property">
930           <return-value transfer-ownership="none">
931             <doc xml:whitespace="preserve">%TRUE if named value property has been added, %FALSE otherwise</doc>
932             <type name="boolean" c:type="gboolean"/>
933           </return-value>
934           <parameters>
935             <parameter name="collector" transfer-ownership="none">
936               <type name="Collector" c:type="MidgardCollector*"/>
937             </parameter>
938             <parameter name="value" transfer-ownership="none">
939               <doc xml:whitespace="preserve">property name</doc>
940               <type name="utf8" c:type="gchar*"/>
941             </parameter>
942           </parameters>
943         </callback>
944       </field>
945       <field name="set">
946         <callback name="set" c:type="set">
947           <return-value transfer-ownership="none">
948             <doc xml:whitespace="preserve">%TRUE, if key's value has been set, %FALSE otherwise</doc>
949             <type name="boolean" c:type="gboolean"/>
950           </return-value>
951           <parameters>
952             <parameter name="collector" transfer-ownership="none">
953               <type name="Collector" c:type="MidgardCollector*"/>
954             </parameter>
955             <parameter name="key" transfer-ownership="none">
956               <doc xml:whitespace="preserve">key name for which @subkey&amp;@value pair should be set</doc>
957               <type name="utf8" c:type="gchar*"/>
958             </parameter>
959             <parameter name="subkey" transfer-ownership="none">
960               <doc xml:whitespace="preserve">property name which is a subkey</doc>
961               <type name="utf8" c:type="gchar*"/>
962             </parameter>
963             <parameter name="value" transfer-ownership="none">
964               <doc xml:whitespace="preserve">value for given @subkey</doc>
965               <type name="GObject.Value" c:type="GValue*"/>
966             </parameter>
967           </parameters>
968         </callback>
969       </field>
970       <field name="get">
971         <callback name="get" c:type="get">
972           <return-value transfer-ownership="full">
973             <doc xml:whitespace="preserve">#GData for the given key or %NULL if key is not found in collection</doc>
974             <type name="GLib.Data" c:type="GData*"/>
975           </return-value>
976           <parameters>
977             <parameter name="collector" transfer-ownership="none">
978               <type name="Collector" c:type="MidgardCollector*"/>
979             </parameter>
980             <parameter name="key" transfer-ownership="none">
981               <doc xml:whitespace="preserve">name of the key to look for</doc>
982               <type name="utf8" c:type="gchar*"/>
983             </parameter>
984           </parameters>
985         </callback>
986       </field>
987       <field name="get_subkey">
988         <callback name="get_subkey" c:type="get_subkey">
989           <return-value transfer-ownership="full">
990             <doc xml:whitespace="preserve">subkey's #GValue value or %NULL if not found</doc>
991             <type name="GObject.Value" c:type="GValue*"/>
992           </return-value>
993           <parameters>
994             <parameter name="collector" transfer-ownership="none">
995               <type name="Collector" c:type="MidgardCollector*"/>
996             </parameter>
997             <parameter name="key" transfer-ownership="none">
998               <doc xml:whitespace="preserve">name of the key</doc>
999               <type name="utf8" c:type="gchar*"/>
1000             </parameter>
1001             <parameter name="subkey" transfer-ownership="none">
1002               <doc xml:whitespace="preserve">name of key's subkey to look for</doc>
1003               <type name="utf8" c:type="gchar*"/>
1004             </parameter>
1005           </parameters>
1006         </callback>
1007       </field>
1008       <field name="merge">
1009         <callback name="merge" c:type="merge">
1010           <return-value transfer-ownership="none">
1011             <doc xml:whitespace="preserve">%TRUE if collections has been merged, %FALSE otherwise</doc>
1012             <type name="boolean" c:type="gboolean"/>
1013           </return-value>
1014           <parameters>
1015             <parameter name="collector" transfer-ownership="none">
1016               <type name="Collector" c:type="MidgardCollector*"/>
1017             </parameter>
1018             <parameter name="mc" transfer-ownership="none">
1019               <doc xml:whitespace="preserve">#MidgardCollector instance</doc>
1020               <type name="Collector" c:type="MidgardCollector*"/>
1021             </parameter>
1022             <parameter name="overwrite" transfer-ownership="none">
1023               <doc xml:whitespace="preserve">whether overwrite collector's keys</doc>
1024               <type name="boolean" c:type="gboolean"/>
1025             </parameter>
1026           </parameters>
1027         </callback>
1028       </field>
1029       <field name="list_keys">
1030         <callback name="list_keys" c:type="list_keys">
1031           <return-value transfer-ownership="full">
1032             <array c:type="gchar**">
1033               <type name="utf8"/>
1034             </array>
1035           </return-value>
1036           <parameters>
1037             <parameter name="collector" transfer-ownership="none">
1038               <type name="Collector" c:type="MidgardCollector*"/>
1039             </parameter>
1040           </parameters>
1041         </callback>
1042       </field>
1043       <field name="remove_key">
1044         <callback name="remove_key" c:type="remove_key">
1045           <return-value transfer-ownership="none">
1046             <doc xml:whitespace="preserve">%TRUE if key (and its value) has been removed from collection, %FALSE otherwise</doc>
1047             <type name="boolean" c:type="gboolean"/>
1048           </return-value>
1049           <parameters>
1050             <parameter name="collector" transfer-ownership="none">
1051               <type name="Collector" c:type="MidgardCollector*"/>
1052             </parameter>
1053             <parameter name="key" transfer-ownership="none">
1054               <doc xml:whitespace="preserve">name of the key in collector's collection</doc>
1055               <type name="utf8" c:type="gchar*"/>
1056             </parameter>
1057           </parameters>
1058         </callback>
1059       </field>
1060       <field name="destroy">
1061         <callback name="destroy" c:type="destroy">
1062           <return-value transfer-ownership="none">
1063             <type name="none" c:type="void"/>
1064           </return-value>
1065           <parameters>
1066             <parameter name="collector" transfer-ownership="none">
1067               <type name="Collector" c:type="MidgardCollector*"/>
1068             </parameter>
1069           </parameters>
1070         </callback>
1071       </field>
1072       <field name="add_constraint">
1073         <callback name="add_constraint" c:type="add_constraint">
1074           <return-value transfer-ownership="none">
1075             <type name="boolean" c:type="gboolean"/>
1076           </return-value>
1077           <parameters>
1078             <parameter name="self" transfer-ownership="none">
1079               <type name="Collector" c:type="MidgardCollector*"/>
1080             </parameter>
1081             <parameter name="name" transfer-ownership="none">
1082               <type name="utf8" c:type="gchar*"/>
1083             </parameter>
1084             <parameter name="op" transfer-ownership="none">
1085               <type name="utf8" c:type="gchar*"/>
1086             </parameter>
1087             <parameter name="value" transfer-ownership="none">
1088               <type name="GObject.Value" c:type="GValue*"/>
1089             </parameter>
1090           </parameters>
1091         </callback>
1092       </field>
1093       <field name="add_constraint_with_property">
1094         <callback name="add_constraint_with_property"
1095                   c:type="add_constraint_with_property">
1096           <return-value transfer-ownership="none">
1097             <type name="boolean" c:type="gboolean"/>
1098           </return-value>
1099           <parameters>
1100             <parameter name="self" transfer-ownership="none">
1101               <type name="Collector" c:type="MidgardCollector*"/>
1102             </parameter>
1103             <parameter name="property_a" transfer-ownership="none">
1104               <type name="utf8" c:type="gchar*"/>
1105             </parameter>
1106             <parameter name="op" transfer-ownership="none">
1107               <type name="utf8" c:type="gchar*"/>
1108             </parameter>
1109             <parameter name="property_b" transfer-ownership="none">
1110               <type name="utf8" c:type="gchar*"/>
1111             </parameter>
1112           </parameters>
1113         </callback>
1114       </field>
1115       <field name="begin_group">
1116         <callback name="begin_group" c:type="begin_group">
1117           <return-value transfer-ownership="none">
1118             <type name="boolean" c:type="gboolean"/>
1119           </return-value>
1120           <parameters>
1121             <parameter name="self" transfer-ownership="none">
1122               <type name="Collector" c:type="MidgardCollector*"/>
1123             </parameter>
1124             <parameter name="type" transfer-ownership="none">
1125               <type name="utf8" c:type="gchar*"/>
1126             </parameter>
1127           </parameters>
1128         </callback>
1129       </field>
1130       <field name="end_group">
1131         <callback name="end_group" c:type="end_group">
1132           <return-value transfer-ownership="none">
1133             <type name="boolean" c:type="gboolean"/>
1134           </return-value>
1135           <parameters>
1136             <parameter name="self" transfer-ownership="none">
1137               <type name="Collector" c:type="MidgardCollector*"/>
1138             </parameter>
1139           </parameters>
1140         </callback>
1141       </field>
1142       <field name="add_order">
1143         <callback name="add_order" c:type="add_order">
1144           <return-value transfer-ownership="none">
1145             <type name="boolean" c:type="gboolean"/>
1146           </return-value>
1147           <parameters>
1148             <parameter name="self" transfer-ownership="none">
1149               <type name="Collector" c:type="MidgardCollector*"/>
1150             </parameter>
1151             <parameter name="name" transfer-ownership="none">
1152               <type name="utf8" c:type="gchar*"/>
1153             </parameter>
1154             <parameter name="dir" transfer-ownership="none">
1155               <type name="utf8" c:type="gchar*"/>
1156             </parameter>
1157           </parameters>
1158         </callback>
1159       </field>
1160       <field name="set_offset">
1161         <callback name="set_offset" c:type="set_offset">
1162           <return-value transfer-ownership="none">
1163             <type name="none" c:type="void"/>
1164           </return-value>
1165           <parameters>
1166             <parameter name="self" transfer-ownership="none">
1167               <type name="Collector" c:type="MidgardCollector*"/>
1168             </parameter>
1169             <parameter name="offset" transfer-ownership="none">
1170               <type name="uint" c:type="guint"/>
1171             </parameter>
1172           </parameters>
1173         </callback>
1174       </field>
1175       <field name="set_limit">
1176         <callback name="set_limit" c:type="set_limit">
1177           <return-value transfer-ownership="none">
1178             <type name="none" c:type="void"/>
1179           </return-value>
1180           <parameters>
1181             <parameter name="self" transfer-ownership="none">
1182               <type name="Collector" c:type="MidgardCollector*"/>
1183             </parameter>
1184             <parameter name="limit" transfer-ownership="none">
1185               <type name="uint" c:type="guint"/>
1186             </parameter>
1187           </parameters>
1188         </callback>
1189       </field>
1190       <field name="count">
1191         <callback name="count" c:type="count">
1192           <return-value transfer-ownership="none">
1193             <type name="none" c:type="void"/>
1194           </return-value>
1195           <parameters>
1196             <parameter name="self" transfer-ownership="none">
1197               <type name="Collector" c:type="MidgardCollector*"/>
1198             </parameter>
1199           </parameters>
1200         </callback>
1201       </field>
1202       <field name="include_deleted">
1203         <callback name="include_deleted" c:type="include_deleted">
1204           <return-value transfer-ownership="none">
1205             <type name="none" c:type="void"/>
1206           </return-value>
1207           <parameters>
1208             <parameter name="self" transfer-ownership="none">
1209               <type name="Collector" c:type="MidgardCollector*"/>
1210             </parameter>
1211           </parameters>
1212         </callback>
1213       </field>
1214       <field name="execute">
1215         <callback name="execute" c:type="execute">
1216           <return-value transfer-ownership="none">
1217             <doc xml:whitespace="preserve">%TRUE in success, %FALSE otherwise</doc>
1218             <type name="boolean" c:type="gboolean"/>
1219           </return-value>
1220           <parameters>
1221             <parameter name="self" transfer-ownership="none">
1222               <type name="Collector" c:type="MidgardCollector*"/>
1223             </parameter>
1224           </parameters>
1225         </callback>
1226       </field>
1227     </record>
1228     <record name="CollectorPrivate" c:type="MidgardCollectorPrivate">
1229     </record>
1230     <class name="Config"
1231            c:type="MidgardConfig"
1232            parent="GObject.Object"
1233            glib:type-name="MidgardConfig"
1234            glib:get-type="midgard_config_get_type"
1235            glib:type-struct="ConfigClass">
1236       <constructor name="new" c:identifier="midgard_config_new">
1237         <doc xml:whitespace="preserve">Initializes new instance of MidgardConfig object type. 
1238 NULL is returned when object can not be initialized.</doc>
1239         <return-value transfer-ownership="full">
1240           <doc xml:whitespace="preserve">pointer to @MidgardConfig object or %NULL on failure.</doc>
1241           <type name="Config" c:type="MidgardConfig*"/>
1242         </return-value>
1243       </constructor>
1244       <function name="list_files" c:identifier="midgard_config_list_files">
1245         <doc xml:whitespace="preserve">List all available configuration files.
1246 If @user value is set to %TRUE, all available files from ~/.midgard/conf.d will be listed. 
1247 Only system files ( usually from /etc/midgard/conf.d ) will be listed if @user value is set to %FALSE.
1248 Returned array should be freed when no longer needed.</doc>
1249         <return-value transfer-ownership="full">
1250           <doc xml:whitespace="preserve">newly allocated and %NULL terminated array of file names.</doc>
1251           <array c:type="gchar**">
1252             <type name="utf8"/>
1253           </array>
1254         </return-value>
1255         <parameters>
1256           <parameter name="user" transfer-ownership="none">
1257             <doc xml:whitespace="preserve">boolean switch for system or user's config files</doc>
1258             <type name="boolean" c:type="gboolean"/>
1259           </parameter>
1260         </parameters>
1261       </function>
1262       <method name="read_file"
1263               c:identifier="midgard_config_read_file"
1264               version="9.3"
1265               throws="1">
1266         <doc xml:whitespace="preserve">This method reads configuration file from the given name and sets MidgardConfig object's properties.
1267 Such initialized MidgardConfig instance may be reused among midgard-core and midgard-php extension 
1268 for example, without any need to re-read configuration file and without  any need to re-initalize 
1269 #MidgardConfig object instance. 
1270 Set %TRUE as @user boolean value to read files from user's home directory.</doc>
1271         <return-value transfer-ownership="none">
1272           <doc xml:whitespace="preserve">%TRUE when file has been read , %FALSE otherwise.</doc>
1273           <type name="boolean" c:type="gboolean"/>
1274         </return-value>
1275         <parameters>
1276           <parameter name="filename" transfer-ownership="none">
1277             <doc xml:whitespace="preserve">name of the file to read</doc>
1278             <type name="utf8" c:type="gchar*"/>
1279           </parameter>
1280           <parameter name="user" transfer-ownership="none">
1281             <doc xml:whitespace="preserve">boolean switch for system or user's config files</doc>
1282             <type name="boolean" c:type="gboolean"/>
1283           </parameter>
1284         </parameters>
1285       </method>
1286       <method name="read_file_at_path"
1287               c:identifier="midgard_config_read_file_at_path"
1288               throws="1">
1289         <return-value transfer-ownership="none">
1290           <doc xml:whitespace="preserve">%TRUE if file has been read, %FALSE otherwise</doc>
1291           <type name="boolean" c:type="gboolean"/>
1292         </return-value>
1293         <parameters>
1294           <parameter name="filepath" transfer-ownership="none">
1295             <doc xml:whitespace="preserve">a path to read file from</doc>
1296             <type name="utf8" c:type="gchar*"/>
1297           </parameter>
1298         </parameters>
1299       </method>
1300       <method name="read_data"
1301               c:identifier="midgard_config_read_data"
1302               throws="1">
1303         <return-value transfer-ownership="none">
1304           <doc xml:whitespace="preserve">%TRUE if data has been read, %FALSE otherwise</doc>
1305           <type name="boolean" c:type="gboolean"/>
1306         </return-value>
1307         <parameters>
1308           <parameter name="data" transfer-ownership="none">
1309             <doc xml:whitespace="preserve">a NULL-terminated buffer containing the configuration</doc>
1310             <type name="utf8" c:type="gchar*"/>
1311           </parameter>
1312         </parameters>
1313       </method>
1314       <method name="save_file"
1315               c:identifier="midgard_config_save_file"
1316               throws="1">
1317         <doc xml:whitespace="preserve">Saves configuration file for the given #MidgardConfig.
1318 This method saves configuration file with the given name.
1319 If third user parameter is set to %TRUE, then configuration file will 
1320 be saved in ~/.midgard2/conf.d directory.
1321 User's conf.d directory will be created if doesn't exist.
1322 directory doesn't exist or file can not be saved.</doc>
1323         <return-value transfer-ownership="none">
1324           <doc xml:whitespace="preserve">%TRUE on success or %FALSE  ( with propper warning message ) if system wide</doc>
1325           <type name="boolean" c:type="gboolean"/>
1326         </return-value>
1327         <parameters>
1328           <parameter name="name" transfer-ownership="none">
1329             <doc xml:whitespace="preserve">configuration filename</doc>
1330             <type name="utf8" c:type="gchar*"/>
1331           </parameter>
1332           <parameter name="user" transfer-ownership="none">
1333             <doc xml:whitespace="preserve">system or home directory switch</doc>
1334             <type name="boolean" c:type="gboolean"/>
1335           </parameter>
1336         </parameters>
1337       </method>
1338       <method name="create_blobdir"
1339               c:identifier="midgard_config_create_blobdir">
1340         <doc xml:whitespace="preserve">Creates directories for blobs</doc>
1341         <return-value transfer-ownership="none">
1342           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise.</doc>
1343           <type name="boolean" c:type="gboolean"/>
1344         </return-value>
1345       </method>
1346       <method name="copy" c:identifier="midgard_config_copy" version="10.05">
1347         <return-value transfer-ownership="full">
1348           <doc xml:whitespace="preserve">deep copy of given #MidgardConfig object</doc>
1349           <type name="Config" c:type="MidgardConfig*"/>
1350         </return-value>
1351       </method>
1352       <method name="get_database_name"
1353               c:identifier="midgard_config_get_database_name">
1354         <return-value transfer-ownership="none">
1355           <type name="utf8" c:type="gchar*"/>
1356         </return-value>
1357       </method>
1358       <method name="get_database_type"
1359               c:identifier="midgard_config_get_database_type">
1360         <return-value transfer-ownership="none">
1361           <type name="utf8" c:type="gchar*"/>
1362         </return-value>
1363       </method>
1364       <method name="get_database_username"
1365               c:identifier="midgard_config_get_database_username">
1366         <return-value transfer-ownership="none">
1367           <type name="utf8" c:type="gchar*"/>
1368         </return-value>
1369       </method>
1370       <method name="get_database_password"
1371               c:identifier="midgard_config_get_database_password">
1372         <return-value transfer-ownership="none">
1373           <type name="utf8" c:type="gchar*"/>
1374         </return-value>
1375       </method>
1376       <method name="get_database_host"
1377               c:identifier="midgard_config_get_database_host">
1378         <return-value transfer-ownership="none">
1379           <type name="utf8" c:type="gchar*"/>
1380         </return-value>
1381       </method>
1382       <method name="get_database_port"
1383               c:identifier="midgard_config_get_database_port">
1384         <return-value transfer-ownership="none">
1385           <type name="uint" c:type="guint"/>
1386         </return-value>
1387       </method>
1388       <method name="get_blobdir" c:identifier="midgard_config_get_blobdir">
1389         <return-value transfer-ownership="none">
1390           <type name="utf8" c:type="gchar*"/>
1391         </return-value>
1392       </method>
1393       <method name="get_logfile" c:identifier="midgard_config_get_logfile">
1394         <return-value transfer-ownership="none">
1395           <type name="utf8" c:type="gchar*"/>
1396         </return-value>
1397       </method>
1398       <method name="get_loglevel" c:identifier="midgard_config_get_loglevel">
1399         <return-value transfer-ownership="none">
1400           <type name="utf8" c:type="gchar*"/>
1401         </return-value>
1402       </method>
1403       <method name="get_table_create"
1404               c:identifier="midgard_config_get_table_create">
1405         <return-value transfer-ownership="none">
1406           <type name="boolean" c:type="gboolean"/>
1407         </return-value>
1408       </method>
1409       <method name="get_table_update"
1410               c:identifier="midgard_config_get_table_update">
1411         <return-value transfer-ownership="none">
1412           <type name="boolean" c:type="gboolean"/>
1413         </return-value>
1414       </method>
1415       <method name="get_testunit" c:identifier="midgard_config_get_testunit">
1416         <return-value transfer-ownership="none">
1417           <type name="boolean" c:type="gboolean"/>
1418         </return-value>
1419       </method>
1420       <method name="get_midgard_username"
1421               c:identifier="midgard_config_get_midgard_username">
1422         <return-value transfer-ownership="none">
1423           <type name="utf8" c:type="gchar*"/>
1424         </return-value>
1425       </method>
1426       <method name="get_midgard_password"
1427               c:identifier="midgard_config_get_midgard_password">
1428         <return-value transfer-ownership="none">
1429           <type name="utf8" c:type="gchar*"/>
1430         </return-value>
1431       </method>
1432       <method name="get_authtype" c:identifier="midgard_config_get_authtype">
1433         <return-value transfer-ownership="none">
1434           <type name="utf8" c:type="gchar*"/>
1435         </return-value>
1436       </method>
1437       <method name="get_pamfile" c:identifier="midgard_config_get_pamfile">
1438         <return-value transfer-ownership="none">
1439           <type name="utf8" c:type="gchar*"/>
1440         </return-value>
1441       </method>
1442       <method name="get_schema_dir"
1443               c:identifier="midgard_config_get_schema_dir">
1444         <return-value transfer-ownership="none">
1445           <type name="utf8" c:type="gchar*"/>
1446         </return-value>
1447       </method>
1448       <method name="set_database_name"
1449               c:identifier="midgard_config_set_database_name">
1450         <return-value transfer-ownership="none">
1451           <type name="none" c:type="void"/>
1452         </return-value>
1453         <parameters>
1454           <parameter name="name" transfer-ownership="none">
1455             <type name="utf8" c:type="gchar*"/>
1456           </parameter>
1457         </parameters>
1458       </method>
1459       <method name="set_database_type"
1460               c:identifier="midgard_config_set_database_type">
1461         <return-value transfer-ownership="none">
1462           <type name="none" c:type="void"/>
1463         </return-value>
1464         <parameters>
1465           <parameter name="type" transfer-ownership="none">
1466             <type name="utf8" c:type="gchar*"/>
1467           </parameter>
1468         </parameters>
1469       </method>
1470       <method name="set_database_username"
1471               c:identifier="midgard_config_set_database_username">
1472         <return-value transfer-ownership="none">
1473           <type name="none" c:type="void"/>
1474         </return-value>
1475         <parameters>
1476           <parameter name="username" transfer-ownership="none">
1477             <type name="utf8" c:type="gchar*"/>
1478           </parameter>
1479         </parameters>
1480       </method>
1481       <method name="set_database_password"
1482               c:identifier="midgard_config_set_database_password">
1483         <return-value transfer-ownership="none">
1484           <type name="none" c:type="void"/>
1485         </return-value>
1486         <parameters>
1487           <parameter name="password" transfer-ownership="none">
1488             <type name="utf8" c:type="gchar*"/>
1489           </parameter>
1490         </parameters>
1491       </method>
1492       <method name="set_database_host"
1493               c:identifier="midgard_config_set_database_host">
1494         <return-value transfer-ownership="none">
1495           <type name="none" c:type="void"/>
1496         </return-value>
1497         <parameters>
1498           <parameter name="host" transfer-ownership="none">
1499             <type name="utf8" c:type="gchar*"/>
1500           </parameter>
1501         </parameters>
1502       </method>
1503       <method name="set_database_port"
1504               c:identifier="midgard_config_set_database_port">
1505         <return-value transfer-ownership="none">
1506           <type name="none" c:type="void"/>
1507         </return-value>
1508         <parameters>
1509           <parameter name="port" transfer-ownership="none">
1510             <type name="uint" c:type="guint"/>
1511           </parameter>
1512         </parameters>
1513       </method>
1514       <method name="set_blobdir" c:identifier="midgard_config_set_blobdir">
1515         <return-value transfer-ownership="none">
1516           <type name="none" c:type="void"/>
1517         </return-value>
1518         <parameters>
1519           <parameter name="blobdir" transfer-ownership="none">
1520             <type name="utf8" c:type="gchar*"/>
1521           </parameter>
1522         </parameters>
1523       </method>
1524       <method name="set_logfile" c:identifier="midgard_config_set_logfile">
1525         <return-value transfer-ownership="none">
1526           <type name="none" c:type="void"/>
1527         </return-value>
1528         <parameters>
1529           <parameter name="logfile" transfer-ownership="none">
1530             <type name="utf8" c:type="gchar*"/>
1531           </parameter>
1532         </parameters>
1533       </method>
1534       <method name="set_loglevel" c:identifier="midgard_config_set_loglevel">
1535         <return-value transfer-ownership="none">
1536           <type name="none" c:type="void"/>
1537         </return-value>
1538         <parameters>
1539           <parameter name="loglevel" transfer-ownership="none">
1540             <type name="utf8" c:type="gchar*"/>
1541           </parameter>
1542         </parameters>
1543       </method>
1544       <method name="set_table_create"
1545               c:identifier="midgard_config_set_table_create">
1546         <return-value transfer-ownership="none">
1547           <type name="none" c:type="void"/>
1548         </return-value>
1549         <parameters>
1550           <parameter name="toggle" transfer-ownership="none">
1551             <type name="boolean" c:type="gboolean"/>
1552           </parameter>
1553         </parameters>
1554       </method>
1555       <method name="set_table_update"
1556               c:identifier="midgard_config_set_table_update">
1557         <return-value transfer-ownership="none">
1558           <type name="none" c:type="void"/>
1559         </return-value>
1560         <parameters>
1561           <parameter name="toggle" transfer-ownership="none">
1562             <type name="boolean" c:type="gboolean"/>
1563           </parameter>
1564         </parameters>
1565       </method>
1566       <method name="set_testunit" c:identifier="midgard_config_set_testunit">
1567         <return-value transfer-ownership="none">
1568           <type name="none" c:type="void"/>
1569         </return-value>
1570         <parameters>
1571           <parameter name="toggle" transfer-ownership="none">
1572             <type name="boolean" c:type="gboolean"/>
1573           </parameter>
1574         </parameters>
1575       </method>
1576       <method name="set_midgard_username"
1577               c:identifier="midgard_config_set_midgard_username">
1578         <return-value transfer-ownership="none">
1579           <type name="none" c:type="void"/>
1580         </return-value>
1581         <parameters>
1582           <parameter name="username" transfer-ownership="none">
1583             <type name="utf8" c:type="gchar*"/>
1584           </parameter>
1585         </parameters>
1586       </method>
1587       <method name="set_midgard_password"
1588               c:identifier="midgard_config_set_midgard_password">
1589         <return-value transfer-ownership="none">
1590           <type name="none" c:type="void"/>
1591         </return-value>
1592         <parameters>
1593           <parameter name="password" transfer-ownership="none">
1594             <type name="utf8" c:type="gchar*"/>
1595           </parameter>
1596         </parameters>
1597       </method>
1598       <method name="set_authtype" c:identifier="midgard_config_set_authtype">
1599         <return-value transfer-ownership="none">
1600           <type name="none" c:type="void"/>
1601         </return-value>
1602         <parameters>
1603           <parameter name="authtype" transfer-ownership="none">
1604             <type name="utf8" c:type="gchar*"/>
1605           </parameter>
1606         </parameters>
1607       </method>
1608       <method name="set_pamfile" c:identifier="midgard_config_set_pamfile">
1609         <return-value transfer-ownership="none">
1610           <type name="none" c:type="void"/>
1611         </return-value>
1612         <parameters>
1613           <parameter name="pamfile" transfer-ownership="none">
1614             <type name="utf8" c:type="gchar*"/>
1615           </parameter>
1616         </parameters>
1617       </method>
1618       <method name="set_schema_dir"
1619               c:identifier="midgard_config_set_schema_dir">
1620         <return-value transfer-ownership="none">
1621           <type name="none" c:type="void"/>
1622         </return-value>
1623         <parameters>
1624           <parameter name="dir" transfer-ownership="none">
1625             <type name="utf8" c:type="gchar*"/>
1626           </parameter>
1627         </parameters>
1628       </method>
1629       <property name="authtype" writable="1" transfer-ownership="none">
1630         <type name="utf8" c:type="gchararray"/>
1631       </property>
1632       <property name="blobdir" writable="1" transfer-ownership="none">
1633         <type name="utf8" c:type="gchararray"/>
1634       </property>
1635       <property name="cachedir" writable="1" transfer-ownership="none">
1636         <type name="utf8" c:type="gchararray"/>
1637       </property>
1638       <property name="database" writable="1" transfer-ownership="none">
1639         <type name="utf8" c:type="gchararray"/>
1640       </property>
1641       <property name="dbdir" writable="1" transfer-ownership="none">
1642         <type name="utf8" c:type="gchararray"/>
1643       </property>
1644       <property name="dbpass" writable="1" transfer-ownership="none">
1645         <type name="utf8" c:type="gchararray"/>
1646       </property>
1647       <property name="dbtype" writable="1" transfer-ownership="none">
1648         <type name="utf8" c:type="gchararray"/>
1649       </property>
1650       <property name="dbuser" writable="1" transfer-ownership="none">
1651         <type name="utf8" c:type="gchararray"/>
1652       </property>
1653       <property name="host" writable="1" transfer-ownership="none">
1654         <type name="utf8" c:type="gchararray"/>
1655       </property>
1656       <property name="logfilename" writable="1" transfer-ownership="none">
1657         <type name="utf8" c:type="gchararray"/>
1658       </property>
1659       <property name="loglevel" writable="1" transfer-ownership="none">
1660         <type name="utf8" c:type="gchararray"/>
1661       </property>
1662       <property name="midgardpassword" writable="1" transfer-ownership="none">
1663         <type name="utf8" c:type="gchararray"/>
1664       </property>
1665       <property name="midgardusername" writable="1" transfer-ownership="none">
1666         <type name="utf8" c:type="gchararray"/>
1667       </property>
1668       <property name="pamfile" writable="1" transfer-ownership="none">
1669         <type name="utf8" c:type="gchararray"/>
1670       </property>
1671       <property name="port" writable="1" transfer-ownership="none">
1672         <type name="uint" c:type="guint"/>
1673       </property>
1674       <property name="sharedir" writable="1" transfer-ownership="none">
1675         <type name="utf8" c:type="gchararray"/>
1676       </property>
1677       <property name="tablecreate" writable="1" transfer-ownership="none">
1678         <type name="boolean" c:type="gboolean"/>
1679       </property>
1680       <property name="tableupdate" writable="1" transfer-ownership="none">
1681         <type name="boolean" c:type="gboolean"/>
1682       </property>
1683       <property name="testunit" writable="1" transfer-ownership="none">
1684         <type name="boolean" c:type="gboolean"/>
1685       </property>
1686       <property name="vardir" writable="1" transfer-ownership="none">
1687         <type name="utf8" c:type="gchararray"/>
1688       </property>
1689       <field name="parent">
1690         <type name="GObject.Object" c:type="GObject"/>
1691       </field>
1692       <field name="dbtype">
1693         <type name="utf8" c:type="gchar*"/>
1694       </field>
1695       <field name="host">
1696         <type name="utf8" c:type="gchar*"/>
1697       </field>
1698       <field name="dbport">
1699         <type name="uint" c:type="guint"/>
1700       </field>
1701       <field name="database">
1702         <type name="utf8" c:type="gchar*"/>
1703       </field>
1704       <field name="dbdir">
1705         <type name="utf8" c:type="gchar*"/>
1706       </field>
1707       <field name="dbuser">
1708         <type name="utf8" c:type="gchar*"/>
1709       </field>
1710       <field name="dbpass">
1711         <type name="utf8" c:type="gchar*"/>
1712       </field>
1713       <field name="logfilename">
1714         <type name="utf8" c:type="gchar*"/>
1715       </field>
1716       <field name="loglevel">
1717         <type name="utf8" c:type="gchar*"/>
1718       </field>
1719       <field name="tablecreate">
1720         <type name="boolean" c:type="gboolean"/>
1721       </field>
1722       <field name="tableupdate">
1723         <type name="boolean" c:type="gboolean"/>
1724       </field>
1725     </class>
1726     <record name="ConfigClass"
1727             c:type="MidgardConfigClass"
1728             glib:is-gtype-struct-for="Config">
1729       <field name="parent">
1730         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
1731       </field>
1732     </record>
1733     <record name="ConfigPrivate" c:type="MidgardConfigPrivate">
1734     </record>
1735     <class name="Connection"
1736            c:type="MidgardConnection"
1737            parent="GObject.Object"
1738            glib:type-name="MidgardConnection"
1739            glib:get-type="midgard_connection_get_type"
1740            glib:type-struct="ConnectionClass">
1741       <constructor name="new" c:identifier="midgard_connection_new">
1742         <doc xml:whitespace="preserve">Initializes new instance of MidgardConnection object type. 
1743 MidgardConnectionClass has no properties registered as class members. 
1744 Every internal data of MidgardConnection object is accessible with API
1745 functions, and is not settable or gettable as property's value.
1746 Particular methods should be implemented for language bindings.
1747 #MidgardConnection objects holds runtime ( or request ) non persistent
1748 data like authentication type, debug level, etc. 
1749 Persistent data like database name, blobs directory are associated with #MidgardConfig object.</doc>
1750         <return-value transfer-ownership="full">
1751           <doc xml:whitespace="preserve">pointer to #MidgardConnection object or %NULL on failure.</doc>
1752           <type name="Connection" c:type="MidgardConnection*"/>
1753         </return-value>
1754       </constructor>
1755       <function name="open_all" c:identifier="midgard_connection_open_all">
1756         <doc xml:whitespace="preserve">Every key is configuration name, and value is #MidgardConnection object.
1757 Use g_hash_table_destroy to free hashtable and all opened connections.</doc>
1758         <return-value transfer-ownership="full">
1759           <doc xml:whitespace="preserve">Newly allocated full #GHashTable.</doc>
1760           <type name="GLib.HashTable" c:type="GHashTable*"/>
1761         </return-value>
1762         <parameters>
1763           <parameter name="userdir" transfer-ownership="none">
1764             <doc xml:whitespace="preserve">switch to read configuration from system or user's directory</doc>
1765             <type name="boolean" c:type="gboolean"/>
1766           </parameter>
1767         </parameters>
1768       </function>
1769       <method name="open" c:identifier="midgard_connection_open" throws="1">
1770         <doc xml:whitespace="preserve">Opens a connection to the database, which is defined in named configuration. 
1771 The configuration file is read from the system configuration directory
1772 directory is taken into account if library is compiled with `/usr' prefix, 
1773 `/usr/local/etc` if compiled with `/usr/local` prefix, etc.
1774 Consider using midgard_connection_open_config(), if you need to open connection to 
1775 database which is configured in user's home directory.
1776 If the named database configuration can not be read or the connection fails,
1777 then %FALSE is returned and an error message is written to the global midgard
1778 error state.
1779 It also initializes #MidgardSchema object (which is encapsulated by implementation )
1780 and register all MgdSchema, #MidgardObjectClass derived classes defined by user.
1781 This happens only when basic Midgard classes are not registered in GType system.
1782 This is recommended way to initialize MgdSchema types.</doc>
1783         <return-value transfer-ownership="none">
1784           <doc xml:whitespace="preserve">%TRUE if the operation succeeded, %FALSE otherwise.</doc>
1785           <type name="boolean" c:type="gboolean"/>
1786         </return-value>
1787         <parameters>
1788           <parameter name="name" transfer-ownership="none">
1789             <doc xml:whitespace="preserve">configuration file name</doc>
1790             <type name="utf8" c:type="gchar*"/>
1791           </parameter>
1792         </parameters>
1793       </method>
1794       <method name="open_config" c:identifier="midgard_connection_open_config">
1795         <doc xml:whitespace="preserve">Opens a #MidgardConnection with the given configuration. 
1796 Take a look at midgard_connection_open() wrt #MidgardSchema.
1797 If #MidgardConnection is already associated with given config, method returns %TRUE.
1798 If associated with another one, %FALSE is returned and MGD_ERR_INTERNAL error is set.</doc>
1799         <return-value transfer-ownership="none">
1800           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
1801           <type name="boolean" c:type="gboolean"/>
1802         </return-value>
1803         <parameters>
1804           <parameter name="config" transfer-ownership="none">
1805             <doc xml:whitespace="preserve">#MidgardConfig object</doc>
1806             <type name="Config" c:type="MidgardConfig*"/>
1807           </parameter>
1808         </parameters>
1809       </method>
1810       <method name="open_from_file"
1811               c:identifier="midgard_connection_open_from_file"
1812               throws="1">
1813         <doc xml:whitespace="preserve">Opens a connection to the database. 
1814 The configuration file is read from given filepath. 
1815 Take a look at midgard_connection_open() wrt #MidgardSchema.</doc>
1816         <return-value transfer-ownership="none">
1817           <doc xml:whitespace="preserve">%TRUE if the operation succeeded, %FALSE otherwise.</doc>
1818           <type name="boolean" c:type="gboolean"/>
1819         </return-value>
1820         <parameters>
1821           <parameter name="filepath" transfer-ownership="none">
1822             <doc xml:whitespace="preserve">configuration file path</doc>
1823             <type name="utf8" c:type="gchar*"/>
1824           </parameter>
1825         </parameters>
1826       </method>
1827       <method name="is_connected"
1828               c:identifier="midgard_connection_is_connected">
1829         <return-value transfer-ownership="none">
1830           <doc xml:whitespace="preserve">%TRUE if database connection is established, %FALSE otherwise</doc>
1831           <type name="boolean" c:type="gboolean"/>
1832         </return-value>
1833       </method>
1834       <method name="set_loglevel"
1835               c:identifier="midgard_connection_set_loglevel">
1836         <doc xml:whitespace="preserve">Sets log level of the given MidgardConnection.
1837 Overwrites internal #MidgardConnection's log level defined in configuration file. 
1838 By default MidgardConnection holds loglevel which is associated with ( and duplicated 
1839 from ) #MidgardConfig. 
1840 #MidgardConfig object's log level isn't changed by this function
1841 This method is a shortcut which sets correctly loghandler,loglevel
1842 is defined. Core's default function is #midgard_error_default_log.
1843 warn is default loglevel, SQL queries are logged with debug level.
1844 With info level, function names ( and classes' names ) are ( at least should be) logged in language bindings</doc>
1845         <return-value transfer-ownership="none">
1846           <doc xml:whitespace="preserve">%TRUE if debug level is set, %FALSE otherwise</doc>
1847           <type name="boolean" c:type="gboolean"/>
1848         </return-value>
1849         <parameters>
1850           <parameter name="level" transfer-ownership="none">
1851             <doc xml:whitespace="preserve">Loglevel string</doc>
1852             <type name="utf8" c:type="gchar*"/>
1853           </parameter>
1854           <parameter name="log_func" transfer-ownership="none" scope="call">
1855             <doc xml:whitespace="preserve">log handler function</doc>
1856             <type name="GLib.LogFunc" c:type="GLogFunc"/>
1857           </parameter>
1858         </parameters>
1859       </method>
1860       <method name="get_loglevel"
1861               c:identifier="midgard_connection_get_loglevel">
1862         <return-value transfer-ownership="none">
1863           <doc xml:whitespace="preserve">unsigned integer flag specified by GLogLevelFlags.</doc>
1864           <type name="uint" c:type="guint"/>
1865         </return-value>
1866       </method>
1867       <method name="set_loghandler"
1868               c:identifier="midgard_connection_set_loghandler">
1869         <doc xml:whitespace="preserve">Sets internal loghandler id associated with G_LOG_DOMAIN and loglevel.
1870 Caller is responsible to remove loghandler using g_log_remove_handler
1871 when new loglevel for G_LOG_DOMAIN is set.</doc>
1872         <return-value transfer-ownership="none">
1873           <type name="none" c:type="void"/>
1874         </return-value>
1875         <parameters>
1876           <parameter name="loghandler" transfer-ownership="none">
1877             <doc xml:whitespace="preserve">loghandler id</doc>
1878             <type name="uint" c:type="guint"/>
1879           </parameter>
1880         </parameters>
1881       </method>
1882       <method name="get_loghandler"
1883               c:identifier="midgard_connection_get_loghandler">
1884         <doc xml:whitespace="preserve">MidgardConnection's loglevel currently set.</doc>
1885         <return-value transfer-ownership="none">
1886           <doc xml:whitespace="preserve">unsigned integer value which is associated with G_LOG_DOMAIN and</doc>
1887           <type name="uint" c:type="guint"/>
1888         </return-value>
1889       </method>
1890       <method name="get_error" c:identifier="midgard_connection_get_error">
1891         <doc xml:whitespace="preserve">Error id may be one of set by #midgard_error.</doc>
1892         <return-value transfer-ownership="none">
1893           <doc xml:whitespace="preserve">Last error id set</doc>
1894           <type name="int" c:type="gint"/>
1895         </return-value>
1896       </method>
1897       <method name="set_error" c:identifier="midgard_connection_set_error">
1898         <doc xml:whitespace="preserve">Valid #errcode is one defined in #MgdErrorGeneric.</doc>
1899         <return-value transfer-ownership="none">
1900           <type name="none" c:type="void"/>
1901         </return-value>
1902         <parameters>
1903           <parameter name="errcode" transfer-ownership="none">
1904             <doc xml:whitespace="preserve">error code</doc>
1905             <type name="int" c:type="gint"/>
1906           </parameter>
1907         </parameters>
1908       </method>
1909       <method name="get_error_string"
1910               c:identifier="midgard_connection_get_error_string">
1911         <doc xml:whitespace="preserve">Error string may be one set by #midgard_error.</doc>
1912         <return-value transfer-ownership="none">
1913           <doc xml:whitespace="preserve">last error string</doc>
1914           <type name="utf8" c:type="gchar*"/>
1915         </return-value>
1916       </method>
1917       <method name="get_user" c:identifier="midgard_connection_get_user">
1918         <doc xml:whitespace="preserve">NULL is explicitly returned if there's no midgard_user logged in 
1919 for the given MidgardConnection.
1920 See also #MidgardUser methods if you need midgard_person associated with user.</doc>
1921         <return-value transfer-ownership="full">
1922           <doc xml:whitespace="preserve">A pointer to MidgardUser instance or %NULL</doc>
1923           <type name="User" c:type="MidgardUser*"/>
1924         </return-value>
1925       </method>
1926       <method name="copy" c:identifier="midgard_connection_copy">
1927         <doc xml:whitespace="preserve">This function duplicates given #MidgardConnection. It doesn't make deep copy. 
1928 All persistant data are kept unchanged, but runtime related members are reset 
1929 to default state. This function is helpful if application is forking and new 
1930 processes might have different environment variables.
1931 Call g_object_unref if returned object is no longer needed.</doc>
1932         <return-value transfer-ownership="full">
1933           <doc xml:whitespace="preserve">Newly allocated and duplicated #MidgardConnection</doc>
1934           <type name="Connection" c:type="MidgardConnection*"/>
1935         </return-value>
1936       </method>
1937       <method name="reopen" c:identifier="midgard_connection_reopen">
1938         <doc xml:whitespace="preserve">This is MySQL optimized workaround for lost connection event.</doc>
1939         <return-value transfer-ownership="none">
1940           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
1941           <type name="boolean" c:type="gboolean"/>
1942         </return-value>
1943       </method>
1944       <method name="list_auth_types"
1945               c:identifier="midgard_connection_list_auth_types">
1946         <doc xml:whitespace="preserve">List available and registered authentication types.
1947 Use g_free() to free returned array.</doc>
1948         <return-value transfer-ownership="full">
1949           <doc xml:whitespace="preserve">NULL terminated array with authentication types.</doc>
1950           <array c:type="gchar**">
1951             <type name="utf8"/>
1952           </array>
1953         </return-value>
1954         <parameters>
1955           <parameter name="n_types"
1956                      direction="out"
1957                      caller-allocates="0"
1958                      transfer-ownership="full">
1959             <doc xml:whitespace="preserve">a pointer to store number of returned types</doc>
1960             <type name="uint" c:type="guint*"/>
1961           </parameter>
1962         </parameters>
1963       </method>
1964       <method name="enable_quota"
1965               c:identifier="midgard_connection_enable_quota"
1966               version="10.05">
1967         <doc xml:whitespace="preserve">Enable or disable quota table usage.
1968 If enabled, every base operation (create, update, delete) will be recorded in quota table, 
1969 limiting particular types usage.</doc>
1970         <return-value transfer-ownership="none">
1971           <type name="none" c:type="void"/>
1972         </return-value>
1973         <parameters>
1974           <parameter name="toggle" transfer-ownership="none">
1975             <doc xml:whitespace="preserve">quota enable, disable toggle</doc>
1976             <type name="boolean" c:type="gboolean"/>
1977           </parameter>
1978         </parameters>
1979       </method>
1980       <method name="enable_replication"
1981               c:identifier="midgard_connection_enable_replication"
1982               version="10.05">
1983         <doc xml:whitespace="preserve">Enable or disable repligard table usage.
1984 If enabled, every base operation (create, update, delete) will be recorded in repligard table.</doc>
1985         <return-value transfer-ownership="none">
1986           <type name="none" c:type="void"/>
1987         </return-value>
1988         <parameters>
1989           <parameter name="toggle" transfer-ownership="none">
1990             <doc xml:whitespace="preserve">replication enable, disable toggle</doc>
1991             <type name="boolean" c:type="gboolean"/>
1992           </parameter>
1993         </parameters>
1994       </method>
1995       <method name="enable_dbus"
1996               c:identifier="midgard_connection_enable_dbus"
1997               version="10.05">
1998         <doc xml:whitespace="preserve">Enable or disable dbus messages send for basic operation</doc>
1999         <return-value transfer-ownership="none">
2000           <type name="none" c:type="void"/>
2001         </return-value>
2002         <parameters>
2003           <parameter name="toggle" transfer-ownership="none">
2004             <doc xml:whitespace="preserve">dbus enable, disable toggle</doc>
2005             <type name="boolean" c:type="gboolean"/>
2006           </parameter>
2007         </parameters>
2008       </method>
2009       <method name="is_enabled_quota"
2010               c:identifier="midgard_connection_is_enabled_quota"
2011               version="10.05">
2012         <return-value transfer-ownership="none">
2013           <doc xml:whitespace="preserve">%TRUE, if quota is enabled, %FALSE otherwise</doc>
2014           <type name="boolean" c:type="gboolean"/>
2015         </return-value>
2016       </method>
2017       <method name="is_enabled_replication"
2018               c:identifier="midgard_connection_is_enabled_replication"
2019               version="10.05">
2020         <return-value transfer-ownership="none">
2021           <doc xml:whitespace="preserve">%TRUE, if replication is enabled, %FALSE otherwise</doc>
2022           <type name="boolean" c:type="gboolean"/>
2023         </return-value>
2024       </method>
2025       <method name="is_enabled_dbus"
2026               c:identifier="midgard_connection_is_enabled_dbus"
2027               version="10.05">
2028         <return-value transfer-ownership="none">
2029           <doc xml:whitespace="preserve">%TRUE, if dbus is enabled, %FALSE otherwise</doc>
2030           <type name="boolean" c:type="gboolean"/>
2031         </return-value>
2032       </method>
2033       <field name="parent">
2034         <type name="GObject.Object" c:type="GObject"/>
2035       </field>
2036       <field name="errnum">
2037         <type name="int" c:type="gint"/>
2038       </field>
2039       <field name="errstr">
2040         <type name="utf8" c:type="gchar*"/>
2041       </field>
2042       <field name="err">
2043         <type name="GLib.Error" c:type="GError*"/>
2044       </field>
2045       <field name="priv">
2046         <type name="ConnectionPrivate" c:type="MidgardConnectionPrivate*"/>
2047       </field>
2048       <glib:signal name="auth-changed">
2049         <return-value transfer-ownership="full">
2050           <type name="none" c:type="void"/>
2051         </return-value>
2052       </glib:signal>
2053       <glib:signal name="connected">
2054         <return-value transfer-ownership="full">
2055           <type name="none" c:type="void"/>
2056         </return-value>
2057       </glib:signal>
2058       <glib:signal name="disconnected">
2059         <return-value transfer-ownership="full">
2060           <type name="none" c:type="void"/>
2061         </return-value>
2062       </glib:signal>
2063       <glib:signal name="error">
2064         <return-value transfer-ownership="full">
2065           <type name="none" c:type="void"/>
2066         </return-value>
2067       </glib:signal>
2068       <glib:signal name="lost-provider">
2069         <return-value transfer-ownership="full">
2070           <type name="none" c:type="void"/>
2071         </return-value>
2072       </glib:signal>
2073     </class>
2074     <record name="ConnectionClass"
2075             c:type="MidgardConnectionClass"
2076             glib:is-gtype-struct-for="Connection">
2077       <field name="parent">
2078         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
2079       </field>
2080       <field name="error">
2081         <callback name="error" c:type="error">
2082           <return-value transfer-ownership="none">
2083             <type name="none" c:type="void"/>
2084           </return-value>
2085           <parameters>
2086             <parameter name="object" transfer-ownership="none">
2087               <type name="GObject.Object" c:type="GObject*"/>
2088             </parameter>
2089           </parameters>
2090         </callback>
2091       </field>
2092       <field name="auth_changed">
2093         <callback name="auth_changed" c:type="auth_changed">
2094           <return-value transfer-ownership="none">
2095             <type name="none" c:type="void"/>
2096           </return-value>
2097           <parameters>
2098             <parameter name="object" transfer-ownership="none">
2099               <type name="GObject.Object" c:type="GObject*"/>
2100             </parameter>
2101           </parameters>
2102         </callback>
2103       </field>
2104       <field name="lost_provider">
2105         <callback name="lost_provider" c:type="lost_provider">
2106           <return-value transfer-ownership="none">
2107             <type name="none" c:type="void"/>
2108           </return-value>
2109           <parameters>
2110             <parameter name="object" transfer-ownership="none">
2111               <type name="GObject.Object" c:type="GObject*"/>
2112             </parameter>
2113           </parameters>
2114         </callback>
2115       </field>
2116       <field name="connected">
2117         <callback name="connected" c:type="connected">
2118           <return-value transfer-ownership="none">
2119             <type name="none" c:type="void"/>
2120           </return-value>
2121           <parameters>
2122             <parameter name="object" transfer-ownership="none">
2123               <type name="GObject.Object" c:type="GObject*"/>
2124             </parameter>
2125           </parameters>
2126         </callback>
2127       </field>
2128       <field name="disconnected">
2129         <callback name="disconnected" c:type="disconnected">
2130           <return-value transfer-ownership="none">
2131             <type name="none" c:type="void"/>
2132           </return-value>
2133           <parameters>
2134             <parameter name="object" transfer-ownership="none">
2135               <type name="GObject.Object" c:type="GObject*"/>
2136             </parameter>
2137           </parameters>
2138         </callback>
2139       </field>
2140       <field name="signal_id_error">
2141         <type name="uint" c:type="guint"/>
2142       </field>
2143       <field name="signal_id_auth_changed">
2144         <type name="uint" c:type="guint"/>
2145       </field>
2146       <field name="signal_id_lost_provider">
2147         <type name="uint" c:type="guint"/>
2148       </field>
2149       <field name="signal_id_connected">
2150         <type name="uint" c:type="guint"/>
2151       </field>
2152       <field name="signal_id_disconnected">
2153         <type name="uint" c:type="guint"/>
2154       </field>
2155     </record>
2156     <record name="ConnectionPrivate" c:type="MidgardConnectionPrivate">
2157     </record>
2158     <class name="DBObject"
2159            c:type="MidgardDBObject"
2160            parent="GObject.Object"
2161            abstract="1"
2162            glib:type-name="MidgardDBObject"
2163            glib:get-type="midgard_dbobject_get_type"
2164            glib:type-struct="DBObjectClass">
2165       <virtual-method name="get_connection">
2166         <return-value transfer-ownership="none">
2167           <type name="Connection" c:type="MidgardConnection*"/>
2168         </return-value>
2169       </virtual-method>
2170       <field name="parent">
2171         <type name="GObject.Object" c:type="GObject"/>
2172       </field>
2173       <field name="dbpriv">
2174         <type name="DBObjectPrivate" c:type="MidgardDBObjectPrivate*"/>
2175       </field>
2176     </class>
2177     <record name="DBObjectClass"
2178             c:type="MidgardDBObjectClass"
2179             glib:is-gtype-struct-for="DBObject">
2180       <field name="parent">
2181         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
2182       </field>
2183       <field name="dbpriv">
2184         <type name="DBObjectPrivate" c:type="MidgardDBObjectPrivate*"/>
2185       </field>
2186       <field name="get_connection">
2187         <callback name="get_connection" c:type="get_connection">
2188           <return-value transfer-ownership="none">
2189             <type name="Connection" c:type="MidgardConnection*"/>
2190           </return-value>
2191           <parameters>
2192             <parameter name="object" transfer-ownership="none">
2193               <type name="DBObject" c:type="MidgardDBObject*"/>
2194             </parameter>
2195           </parameters>
2196         </callback>
2197       </field>
2198     </record>
2199     <record name="DBObjectPrivate" c:type="MidgardDBObjectPrivate">
2200     </record>
2201     <constant name="DBUS_PATH" value="/org/midgardproject">
2202       <type name="utf8"/>
2203     </constant>
2204     <constant name="DBUS_SUPPORT" value="1">
2205       <type name="int"/>
2206     </constant>
2207     <constant name="DEFAULT_AUTH_TYPE" value="Plaintext">
2208       <type name="utf8"/>
2209     </constant>
2210     <constant name="DEFAULT_DATETIME" value="0001-01-01 00:00:00+0000">
2211       <type name="utf8"/>
2212     </constant>
2213     <record name="Dbus" c:type="MidgardDbus">
2214       <field name="parent" writable="1">
2215         <type name="GObject.Object" c:type="GObject"/>
2216       </field>
2217       <field name="priv" writable="1">
2218         <type name="DbusPrivate" c:type="MidgardDbusPrivate*"/>
2219       </field>
2220     </record>
2221     <record name="DbusClass" c:type="MidgardDbusClass">
2222       <field name="parent" writable="1">
2223         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
2224       </field>
2225       <field name="notified">
2226         <type name="any" c:type="pointer"/>
2227       </field>
2228       <field name="signal_notified" writable="1">
2229         <type name="uint" c:type="guint"/>
2230       </field>
2231     </record>
2232     <record name="DbusPrivate" c:type="MidgardDbusPrivate">
2233     </record>
2234     <constant name="GETTEXT_PACKAGE" value="midgard">
2235       <type name="utf8"/>
2236     </constant>
2237     <constant name="GLOBAL_SCHEMA"
2238               value="/usr/share/midgard2/MidgardObjects.xml">
2239       <type name="utf8"/>
2240     </constant>
2241     <callback name="GMarshalFunc_BOOLEAN__STRING_POINTER"
2242               c:type="GMarshalFunc_BOOLEAN__STRING_POINTER">
2243       <return-value transfer-ownership="none">
2244         <type name="boolean" c:type="gboolean"/>
2245       </return-value>
2246       <parameters>
2247         <parameter name="data1" transfer-ownership="none">
2248           <type name="any" c:type="gpointer"/>
2249         </parameter>
2250         <parameter name="arg_1" transfer-ownership="none">
2251           <type name="any" c:type="gpointer"/>
2252         </parameter>
2253         <parameter name="arg_2" transfer-ownership="none">
2254           <type name="any" c:type="gpointer"/>
2255         </parameter>
2256         <parameter name="data2" transfer-ownership="none">
2257           <type name="any" c:type="gpointer"/>
2258         </parameter>
2259       </parameters>
2260     </callback>
2261     <class name="KeyConfig"
2262            c:type="MidgardKeyConfig"
2263            parent="GObject.Object"
2264            abstract="1"
2265            glib:type-name="MidgardKeyConfig"
2266            glib:get-type="midgard_key_config_get_type"
2267            glib:type-struct="KeyConfigClass">
2268       <function name="construct" c:identifier="midgard_key_config_construct">
2269         <return-value transfer-ownership="full">
2270           <type name="KeyConfig" c:type="MidgardKeyConfig*"/>
2271         </return-value>
2272         <parameters>
2273           <parameter name="object_type" transfer-ownership="none">
2274             <type name="GType" c:type="GType"/>
2275           </parameter>
2276           <parameter name="keyctx" transfer-ownership="none">
2277             <type name="KeyConfigContext" c:type="MidgardKeyConfigContext*"/>
2278           </parameter>
2279           <parameter name="path" transfer-ownership="none">
2280             <type name="utf8" c:type="char*"/>
2281           </parameter>
2282         </parameters>
2283       </function>
2284       <virtual-method name="set_value" invoker="set_value">
2285         <return-value transfer-ownership="none">
2286           <type name="none" c:type="void"/>
2287         </return-value>
2288         <parameters>
2289           <parameter name="group" transfer-ownership="none">
2290             <type name="utf8" c:type="char*"/>
2291           </parameter>
2292           <parameter name="key" transfer-ownership="none">
2293             <type name="utf8" c:type="char*"/>
2294           </parameter>
2295           <parameter name="value" transfer-ownership="none">
2296             <type name="utf8" c:type="char*"/>
2297           </parameter>
2298         </parameters>
2299       </virtual-method>
2300       <virtual-method name="get_value" invoker="get_value">
2301         <return-value transfer-ownership="full">
2302           <type name="utf8" c:type="char*"/>
2303         </return-value>
2304         <parameters>
2305           <parameter name="group" transfer-ownership="none">
2306             <type name="utf8" c:type="char*"/>
2307           </parameter>
2308           <parameter name="key" transfer-ownership="none">
2309             <type name="utf8" c:type="char*"/>
2310           </parameter>
2311         </parameters>
2312       </virtual-method>
2313       <virtual-method name="set_comment" invoker="set_comment">
2314         <return-value transfer-ownership="none">
2315           <type name="none" c:type="void"/>
2316         </return-value>
2317         <parameters>
2318           <parameter name="group" transfer-ownership="none">
2319             <type name="utf8" c:type="char*"/>
2320           </parameter>
2321           <parameter name="key" transfer-ownership="none">
2322             <type name="utf8" c:type="char*"/>
2323           </parameter>
2324           <parameter name="comment" transfer-ownership="none">
2325             <type name="utf8" c:type="char*"/>
2326           </parameter>
2327         </parameters>
2328       </virtual-method>
2329       <virtual-method name="get_comment" invoker="get_comment">
2330         <return-value transfer-ownership="full">
2331           <type name="utf8" c:type="char*"/>
2332         </return-value>
2333         <parameters>
2334           <parameter name="group" transfer-ownership="none">
2335             <type name="utf8" c:type="char*"/>
2336           </parameter>
2337           <parameter name="key" transfer-ownership="none">
2338             <type name="utf8" c:type="char*"/>
2339           </parameter>
2340         </parameters>
2341       </virtual-method>
2342       <virtual-method name="list_groups" invoker="list_groups">
2343         <return-value transfer-ownership="full">
2344           <array c:type="char**">
2345             <type name="utf8"/>
2346           </array>
2347         </return-value>
2348         <parameters>
2349           <parameter name="result_length1"
2350                      direction="out"
2351                      caller-allocates="0"
2352                      transfer-ownership="full">
2353             <type name="int" c:type="int*"/>
2354           </parameter>
2355         </parameters>
2356       </virtual-method>
2357       <virtual-method name="group_exists" invoker="group_exists">
2358         <return-value transfer-ownership="none">
2359           <type name="boolean" c:type="gboolean"/>
2360         </return-value>
2361         <parameters>
2362           <parameter name="name" transfer-ownership="none">
2363             <type name="utf8" c:type="char*"/>
2364           </parameter>
2365         </parameters>
2366       </virtual-method>
2367       <virtual-method name="delete_group" invoker="delete_group">
2368         <return-value transfer-ownership="none">
2369           <type name="boolean" c:type="gboolean"/>
2370         </return-value>
2371         <parameters>
2372           <parameter name="name" transfer-ownership="none">
2373             <type name="utf8" c:type="char*"/>
2374           </parameter>
2375         </parameters>
2376       </virtual-method>
2377       <virtual-method name="store" invoker="store">
2378         <return-value transfer-ownership="none">
2379           <type name="boolean" c:type="gboolean"/>
2380         </return-value>
2381       </virtual-method>
2382       <virtual-method name="load_from_data" invoker="load_from_data">
2383         <return-value transfer-ownership="none">
2384           <type name="boolean" c:type="gboolean"/>
2385         </return-value>
2386         <parameters>
2387           <parameter name="data" transfer-ownership="none">
2388             <type name="utf8" c:type="char*"/>
2389           </parameter>
2390         </parameters>
2391       </virtual-method>
2392       <virtual-method name="to_data" invoker="to_data">
2393         <return-value transfer-ownership="full">
2394           <type name="utf8" c:type="char*"/>
2395         </return-value>
2396       </virtual-method>
2397       <method name="set_value" c:identifier="midgard_key_config_set_value">
2398         <return-value transfer-ownership="none">
2399           <type name="none" c:type="void"/>
2400         </return-value>
2401         <parameters>
2402           <parameter name="group" transfer-ownership="none">
2403             <type name="utf8" c:type="char*"/>
2404           </parameter>
2405           <parameter name="key" transfer-ownership="none">
2406             <type name="utf8" c:type="char*"/>
2407           </parameter>
2408           <parameter name="value" transfer-ownership="none">
2409             <type name="utf8" c:type="char*"/>
2410           </parameter>
2411         </parameters>
2412       </method>
2413       <method name="get_value" c:identifier="midgard_key_config_get_value">
2414         <return-value transfer-ownership="full">
2415           <type name="utf8" c:type="char*"/>
2416         </return-value>
2417         <parameters>
2418           <parameter name="group" transfer-ownership="none">
2419             <type name="utf8" c:type="char*"/>
2420           </parameter>
2421           <parameter name="key" transfer-ownership="none">
2422             <type name="utf8" c:type="char*"/>
2423           </parameter>
2424         </parameters>
2425       </method>
2426       <method name="set_comment" c:identifier="midgard_key_config_set_comment">
2427         <return-value transfer-ownership="none">
2428           <type name="none" c:type="void"/>
2429         </return-value>
2430         <parameters>
2431           <parameter name="group" transfer-ownership="none">
2432             <type name="utf8" c:type="char*"/>
2433           </parameter>
2434           <parameter name="key" transfer-ownership="none">
2435             <type name="utf8" c:type="char*"/>
2436           </parameter>
2437           <parameter name="comment" transfer-ownership="none">
2438             <type name="utf8" c:type="char*"/>
2439           </parameter>
2440         </parameters>
2441       </method>
2442       <method name="get_comment" c:identifier="midgard_key_config_get_comment">
2443         <return-value transfer-ownership="full">
2444           <type name="utf8" c:type="char*"/>
2445         </return-value>
2446         <parameters>
2447           <parameter name="group" transfer-ownership="none">
2448             <type name="utf8" c:type="char*"/>
2449           </parameter>
2450           <parameter name="key" transfer-ownership="none">
2451             <type name="utf8" c:type="char*"/>
2452           </parameter>
2453         </parameters>
2454       </method>
2455       <method name="list_groups" c:identifier="midgard_key_config_list_groups">
2456         <return-value transfer-ownership="full">
2457           <array c:type="char**">
2458             <type name="utf8"/>
2459           </array>
2460         </return-value>
2461         <parameters>
2462           <parameter name="result_length1"
2463                      direction="out"
2464                      caller-allocates="0"
2465                      transfer-ownership="full">
2466             <type name="int" c:type="int*"/>
2467           </parameter>
2468         </parameters>
2469       </method>
2470       <method name="group_exists"
2471               c:identifier="midgard_key_config_group_exists">
2472         <return-value transfer-ownership="none">
2473           <type name="boolean" c:type="gboolean"/>
2474         </return-value>
2475         <parameters>
2476           <parameter name="name" transfer-ownership="none">
2477             <type name="utf8" c:type="char*"/>
2478           </parameter>
2479         </parameters>
2480       </method>
2481       <method name="delete_group"
2482               c:identifier="midgard_key_config_delete_group">
2483         <return-value transfer-ownership="none">
2484           <type name="boolean" c:type="gboolean"/>
2485         </return-value>
2486         <parameters>
2487           <parameter name="name" transfer-ownership="none">
2488             <type name="utf8" c:type="char*"/>
2489           </parameter>
2490         </parameters>
2491       </method>
2492       <method name="store" c:identifier="midgard_key_config_store">
2493         <return-value transfer-ownership="none">
2494           <type name="boolean" c:type="gboolean"/>
2495         </return-value>
2496       </method>
2497       <method name="load_from_data"
2498               c:identifier="midgard_key_config_load_from_data">
2499         <return-value transfer-ownership="none">
2500           <type name="boolean" c:type="gboolean"/>
2501         </return-value>
2502         <parameters>
2503           <parameter name="data" transfer-ownership="none">
2504             <type name="utf8" c:type="char*"/>
2505           </parameter>
2506         </parameters>
2507       </method>
2508       <method name="to_data" c:identifier="midgard_key_config_to_data">
2509         <return-value transfer-ownership="full">
2510           <type name="utf8" c:type="char*"/>
2511         </return-value>
2512       </method>
2513       <field name="parent_instance">
2514         <type name="GObject.Object" c:type="GObject"/>
2515       </field>
2516       <field name="priv">
2517         <type name="KeyConfigPrivate" c:type="MidgardKeyConfigPrivate*"/>
2518       </field>
2519       <field name="path">
2520         <type name="utf8" c:type="char*"/>
2521       </field>
2522       <field name="context">
2523         <type name="KeyConfigContext" c:type="MidgardKeyConfigContext*"/>
2524       </field>
2525     </class>
2526     <record name="KeyConfigClass"
2527             c:type="MidgardKeyConfigClass"
2528             glib:is-gtype-struct-for="KeyConfig">
2529       <field name="parent_class">
2530         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
2531       </field>
2532       <field name="set_value">
2533         <callback name="set_value" c:type="set_value">
2534           <return-value transfer-ownership="none">
2535             <type name="none" c:type="void"/>
2536           </return-value>
2537           <parameters>
2538             <parameter name="self" transfer-ownership="none">
2539               <type name="KeyConfig" c:type="MidgardKeyConfig*"/>
2540             </parameter>
2541             <parameter name="group" transfer-ownership="none">
2542               <type name="utf8" c:type="char*"/>
2543             </parameter>
2544             <parameter name="key" transfer-ownership="none">
2545               <type name="utf8" c:type="char*"/>
2546             </parameter>
2547             <parameter name="value" transfer-ownership="none">
2548               <type name="utf8" c:type="char*"/>
2549             </parameter>
2550           </parameters>
2551         </callback>
2552       </field>
2553       <field name="get_value">
2554         <callback name="get_value" c:type="get_value">
2555           <return-value transfer-ownership="full">
2556             <type name="utf8" c:type="char*"/>
2557           </return-value>
2558           <parameters>
2559             <parameter name="self" transfer-ownership="none">
2560               <type name="KeyConfig" c:type="MidgardKeyConfig*"/>
2561             </parameter>
2562             <parameter name="group" transfer-ownership="none">
2563               <type name="utf8" c:type="char*"/>
2564             </parameter>
2565             <parameter name="key" transfer-ownership="none">
2566               <type name="utf8" c:type="char*"/>
2567             </parameter>
2568           </parameters>
2569         </callback>
2570       </field>
2571       <field name="set_comment">
2572         <callback name="set_comment" c:type="set_comment">
2573           <return-value transfer-ownership="none">
2574             <type name="none" c:type="void"/>
2575           </return-value>
2576           <parameters>
2577             <parameter name="self" transfer-ownership="none">
2578               <type name="KeyConfig" c:type="MidgardKeyConfig*"/>
2579             </parameter>
2580             <parameter name="group" transfer-ownership="none">
2581               <type name="utf8" c:type="char*"/>
2582             </parameter>
2583             <parameter name="key" transfer-ownership="none">
2584               <type name="utf8" c:type="char*"/>
2585             </parameter>
2586             <parameter name="comment" transfer-ownership="none">
2587               <type name="utf8" c:type="char*"/>
2588             </parameter>
2589           </parameters>
2590         </callback>
2591       </field>
2592       <field name="get_comment">
2593         <callback name="get_comment" c:type="get_comment">
2594           <return-value transfer-ownership="full">
2595             <type name="utf8" c:type="char*"/>
2596           </return-value>
2597           <parameters>
2598             <parameter name="self" transfer-ownership="none">
2599               <type name="KeyConfig" c:type="MidgardKeyConfig*"/>
2600             </parameter>
2601             <parameter name="group" transfer-ownership="none">
2602               <type name="utf8" c:type="char*"/>
2603             </parameter>
2604             <parameter name="key" transfer-ownership="none">
2605               <type name="utf8" c:type="char*"/>
2606             </parameter>
2607           </parameters>
2608         </callback>
2609       </field>
2610       <field name="list_groups">
2611         <callback name="list_groups" c:type="list_groups">
2612           <return-value transfer-ownership="full">
2613             <array c:type="char**">
2614               <type name="utf8"/>
2615             </array>
2616           </return-value>
2617           <parameters>
2618             <parameter name="self" transfer-ownership="none">
2619               <type name="KeyConfig" c:type="MidgardKeyConfig*"/>
2620             </parameter>
2621             <parameter name="result_length1"
2622                        direction="out"
2623                        caller-allocates="0"
2624                        transfer-ownership="full">
2625               <type name="int" c:type="int*"/>
2626             </parameter>
2627           </parameters>
2628         </callback>
2629       </field>
2630       <field name="group_exists">
2631         <callback name="group_exists" c:type="group_exists">
2632           <return-value transfer-ownership="none">
2633             <type name="boolean" c:type="gboolean"/>
2634           </return-value>
2635           <parameters>
2636             <parameter name="self" transfer-ownership="none">
2637               <type name="KeyConfig" c:type="MidgardKeyConfig*"/>
2638             </parameter>
2639             <parameter name="name" transfer-ownership="none">
2640               <type name="utf8" c:type="char*"/>
2641             </parameter>
2642           </parameters>
2643         </callback>
2644       </field>
2645       <field name="delete_group">
2646         <callback name="delete_group" c:type="delete_group">
2647           <return-value transfer-ownership="none">
2648             <type name="boolean" c:type="gboolean"/>
2649           </return-value>
2650           <parameters>
2651             <parameter name="self" transfer-ownership="none">
2652               <type name="KeyConfig" c:type="MidgardKeyConfig*"/>
2653             </parameter>
2654             <parameter name="name" transfer-ownership="none">
2655               <type name="utf8" c:type="char*"/>
2656             </parameter>
2657           </parameters>
2658         </callback>
2659       </field>
2660       <field name="store">
2661         <callback name="store" c:type="store">
2662           <return-value transfer-ownership="none">
2663             <type name="boolean" c:type="gboolean"/>
2664           </return-value>
2665           <parameters>
2666             <parameter name="self" transfer-ownership="none">
2667               <type name="KeyConfig" c:type="MidgardKeyConfig*"/>
2668             </parameter>
2669           </parameters>
2670         </callback>
2671       </field>
2672       <field name="load_from_data">
2673         <callback name="load_from_data" c:type="load_from_data">
2674           <return-value transfer-ownership="none">
2675             <type name="boolean" c:type="gboolean"/>
2676           </return-value>
2677           <parameters>
2678             <parameter name="self" transfer-ownership="none">
2679               <type name="KeyConfig" c:type="MidgardKeyConfig*"/>
2680             </parameter>
2681             <parameter name="data" transfer-ownership="none">
2682               <type name="utf8" c:type="char*"/>
2683             </parameter>
2684           </parameters>
2685         </callback>
2686       </field>
2687       <field name="to_data">
2688         <callback name="to_data" c:type="to_data">
2689           <return-value transfer-ownership="full">
2690             <type name="utf8" c:type="char*"/>
2691           </return-value>
2692           <parameters>
2693             <parameter name="self" transfer-ownership="none">
2694               <type name="KeyConfig" c:type="MidgardKeyConfig*"/>
2695             </parameter>
2696           </parameters>
2697         </callback>
2698       </field>
2699     </record>
2700     <class name="KeyConfigContext"
2701            c:type="MidgardKeyConfigContext"
2702            parent="GObject.Object"
2703            abstract="1"
2704            glib:type-name="MidgardKeyConfigContext"
2705            glib:get-type="midgard_key_config_context_get_type"
2706            glib:type-struct="KeyConfigContextClass">
2707       <function name="construct"
2708                 c:identifier="midgard_key_config_context_construct">
2709         <return-value transfer-ownership="full">
2710           <type name="KeyConfigContext" c:type="MidgardKeyConfigContext*"/>
2711         </return-value>
2712         <parameters>
2713           <parameter name="object_type" transfer-ownership="none">
2714             <type name="GType" c:type="GType"/>
2715           </parameter>
2716           <parameter name="context_path" transfer-ownership="none">
2717             <type name="utf8" c:type="char*"/>
2718           </parameter>
2719         </parameters>
2720       </function>
2721       <virtual-method name="list_key_config" invoker="list_key_config">
2722         <return-value transfer-ownership="full">
2723           <array c:type="char**">
2724             <type name="utf8"/>
2725           </array>
2726         </return-value>
2727         <parameters>
2728           <parameter name="result_length1"
2729                      direction="out"
2730                      caller-allocates="0"
2731                      transfer-ownership="full">
2732             <type name="int" c:type="int*"/>
2733           </parameter>
2734         </parameters>
2735       </virtual-method>
2736       <method name="list_key_config"
2737               c:identifier="midgard_key_config_context_list_key_config">
2738         <return-value transfer-ownership="full">
2739           <array c:type="char**">
2740             <type name="utf8"/>
2741           </array>
2742         </return-value>
2743         <parameters>
2744           <parameter name="result_length1"
2745                      direction="out"
2746                      caller-allocates="0"
2747                      transfer-ownership="full">
2748             <type name="int" c:type="int*"/>
2749           </parameter>
2750         </parameters>
2751       </method>
2752       <method name="get_context_path"
2753               c:identifier="midgard_key_config_context_get_context_path">
2754         <return-value transfer-ownership="none">
2755           <type name="utf8" c:type="char*"/>
2756         </return-value>
2757       </method>
2758       <property name="context-path" transfer-ownership="none">
2759         <type name="utf8" c:type="gchararray"/>
2760       </property>
2761       <field name="parent_instance">
2762         <type name="GObject.Object" c:type="GObject"/>
2763       </field>
2764       <field name="priv">
2765         <type name="KeyConfigContextPrivate"
2766               c:type="MidgardKeyConfigContextPrivate*"/>
2767       </field>
2768     </class>
2769     <record name="KeyConfigContextClass"
2770             c:type="MidgardKeyConfigContextClass"
2771             glib:is-gtype-struct-for="KeyConfigContext">
2772       <field name="parent_class">
2773         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
2774       </field>
2775       <field name="list_key_config">
2776         <callback name="list_key_config" c:type="list_key_config">
2777           <return-value transfer-ownership="full">
2778             <array c:type="char**">
2779               <type name="utf8"/>
2780             </array>
2781           </return-value>
2782           <parameters>
2783             <parameter name="self" transfer-ownership="none">
2784               <type name="KeyConfigContext" c:type="MidgardKeyConfigContext*"/>
2785             </parameter>
2786             <parameter name="result_length1"
2787                        direction="out"
2788                        caller-allocates="0"
2789                        transfer-ownership="full">
2790               <type name="int" c:type="int*"/>
2791             </parameter>
2792           </parameters>
2793         </callback>
2794       </field>
2795     </record>
2796     <enumeration name="KeyConfigContextError"
2797                  c:type="KeyConfigContextError"
2798                  glib:error-quark="key_config_context_error_quark">
2799       <member name="key_config_context_error_path_is_not_absolute"
2800               value="0"
2801               c:identifier="KEY_CONFIG_CONTEXT_ERROR_PATH_IS_NOT_ABSOLUTE"/>
2802     </enumeration>
2803     <record name="KeyConfigContextPrivate"
2804             c:type="MidgardKeyConfigContextPrivate">
2805     </record>
2806     <class name="KeyConfigFile"
2807            c:type="MidgardKeyConfigFile"
2808            parent="KeyConfig"
2809            glib:type-name="MidgardKeyConfigFile"
2810            glib:get-type="midgard_key_config_file_get_type"
2811            glib:type-struct="KeyConfigFileClass">
2812       <constructor name="new"
2813                    c:identifier="midgard_key_config_file_new"
2814                    throws="1">
2815         <return-value transfer-ownership="full">
2816           <type name="KeyConfigFile" c:type="MidgardKeyConfigFile*"/>
2817         </return-value>
2818         <parameters>
2819           <parameter name="keyctx" transfer-ownership="none">
2820             <type name="KeyConfigFileContext"
2821                   c:type="MidgardKeyConfigFileContext*"/>
2822           </parameter>
2823           <parameter name="path" transfer-ownership="none">
2824             <type name="utf8" c:type="char*"/>
2825           </parameter>
2826         </parameters>
2827       </constructor>
2828       <function name="construct"
2829                 c:identifier="midgard_key_config_file_construct"
2830                 throws="1">
2831         <return-value transfer-ownership="full">
2832           <type name="KeyConfigFile" c:type="MidgardKeyConfigFile*"/>
2833         </return-value>
2834         <parameters>
2835           <parameter name="object_type" transfer-ownership="none">
2836             <type name="GType" c:type="GType"/>
2837           </parameter>
2838           <parameter name="keyctx" transfer-ownership="none">
2839             <type name="KeyConfigFileContext"
2840                   c:type="MidgardKeyConfigFileContext*"/>
2841           </parameter>
2842           <parameter name="path" transfer-ownership="none">
2843             <type name="utf8" c:type="char*"/>
2844           </parameter>
2845         </parameters>
2846       </function>
2847       <field name="parent_instance">
2848         <type name="KeyConfig" c:type="MidgardKeyConfig"/>
2849       </field>
2850       <field name="priv">
2851         <type name="KeyConfigFilePrivate"
2852               c:type="MidgardKeyConfigFilePrivate*"/>
2853       </field>
2854     </class>
2855     <record name="KeyConfigFileClass"
2856             c:type="MidgardKeyConfigFileClass"
2857             glib:is-gtype-struct-for="KeyConfigFile">
2858       <field name="parent_class">
2859         <type name="KeyConfigClass" c:type="MidgardKeyConfigClass"/>
2860       </field>
2861     </record>
2862     <class name="KeyConfigFileContext"
2863            c:type="MidgardKeyConfigFileContext"
2864            parent="KeyConfigContext"
2865            glib:type-name="MidgardKeyConfigFileContext"
2866            glib:get-type="midgard_key_config_file_context_get_type"
2867            glib:type-struct="KeyConfigFileContextClass">
2868       <constructor name="new"
2869                    c:identifier="midgard_key_config_file_context_new"
2870                    throws="1">
2871         <return-value transfer-ownership="full">
2872           <type name="KeyConfigFileContext"
2873                 c:type="MidgardKeyConfigFileContext*"/>
2874         </return-value>
2875         <parameters>
2876           <parameter name="context_path" transfer-ownership="none">
2877             <type name="utf8" c:type="char*"/>
2878           </parameter>
2879         </parameters>
2880       </constructor>
2881       <function name="construct"
2882                 c:identifier="midgard_key_config_file_context_construct"
2883                 throws="1">
2884         <return-value transfer-ownership="full">
2885           <type name="KeyConfigFileContext"
2886                 c:type="MidgardKeyConfigFileContext*"/>
2887         </return-value>
2888         <parameters>
2889           <parameter name="object_type" transfer-ownership="none">
2890             <type name="GType" c:type="GType"/>
2891           </parameter>
2892           <parameter name="context_path" transfer-ownership="none">
2893             <type name="utf8" c:type="char*"/>
2894           </parameter>
2895         </parameters>
2896       </function>
2897       <field name="parent_instance">
2898         <type name="KeyConfigContext" c:type="MidgardKeyConfigContext"/>
2899       </field>
2900       <field name="priv">
2901         <type name="KeyConfigFileContextPrivate"
2902               c:type="MidgardKeyConfigFileContextPrivate*"/>
2903       </field>
2904     </class>
2905     <record name="KeyConfigFileContextClass"
2906             c:type="MidgardKeyConfigFileContextClass"
2907             glib:is-gtype-struct-for="KeyConfigFileContext">
2908       <field name="parent_class">
2909         <type name="KeyConfigContextClass"
2910               c:type="MidgardKeyConfigContextClass"/>
2911       </field>
2912     </record>
2913     <record name="KeyConfigFileContextPrivate"
2914             c:type="MidgardKeyConfigFileContextPrivate">
2915     </record>
2916     <record name="KeyConfigFilePrivate" c:type="MidgardKeyConfigFilePrivate">
2917     </record>
2918     <record name="KeyConfigPrivate" c:type="MidgardKeyConfigPrivate">
2919     </record>
2920     <constant name="LIB_PREFIX" value="/usr">
2921       <type name="utf8"/>
2922     </constant>
2923     <constant name="LIB_VERSION" value="10.05.0">
2924       <type name="utf8"/>
2925     </constant>
2926     <constant name="LIB_VERSION_STRING" value="">
2927       <type name="utf8"/>
2928     </constant>
2929     <constant name="LSCHEMA_DIR" value="/usr/share/midgard2/schema">
2930       <type name="utf8"/>
2931     </constant>
2932     <record name="MD5_CTX" c:type="MIDGARD_MD5_CTX">
2933       <field name="state" writable="1">
2934         <array zero-terminated="0" c:type="unsigned" fixed-size="4">
2935           <type name="uint"/>
2936         </array>
2937       </field>
2938       <field name="count" writable="1">
2939         <array zero-terminated="0" c:type="unsigned" fixed-size="2">
2940           <type name="uint"/>
2941         </array>
2942       </field>
2943       <field name="buffer" writable="1">
2944         <array zero-terminated="0" c:type="unsigned" fixed-size="64">
2945           <type name="uint"/>
2946         </array>
2947       </field>
2948     </record>
2949     <function name="MD5_Final" c:identifier="MIDGARD_MD5_Final">
2950       <return-value transfer-ownership="none">
2951         <type name="none" c:type="void"/>
2952       </return-value>
2953       <parameters>
2954         <parameter transfer-ownership="none">
2955           <type name="uint8" c:type="unsigned char"/>
2956         </parameter>
2957         <parameter transfer-ownership="none">
2958           <type name="MD5_CTX" c:type="MIDGARD_MD5_CTX*"/>
2959         </parameter>
2960       </parameters>
2961     </function>
2962     <function name="MD5_Init" c:identifier="MIDGARD_MD5_Init">
2963       <return-value transfer-ownership="none">
2964         <type name="none" c:type="void"/>
2965       </return-value>
2966       <parameters>
2967         <parameter transfer-ownership="none">
2968           <type name="MD5_CTX" c:type="MIDGARD_MD5_CTX*"/>
2969         </parameter>
2970       </parameters>
2971     </function>
2972     <function name="MD5_Update" c:identifier="MIDGARD_MD5_Update">
2973       <return-value transfer-ownership="none">
2974         <type name="none" c:type="void"/>
2975       </return-value>
2976       <parameters>
2977         <parameter transfer-ownership="none">
2978           <type name="MD5_CTX" c:type="MIDGARD_MD5_CTX*"/>
2979         </parameter>
2980         <parameter transfer-ownership="none">
2981           <array c:type="unsigned char*">
2982             <type name="uint8"/>
2983           </array>
2984         </parameter>
2985         <parameter transfer-ownership="none">
2986           <type name="uint" c:type="unsigned int"/>
2987         </parameter>
2988       </parameters>
2989     </function>
2990     <constant name="MGD_MYSQL_PASSWORD" value="midgard">
2991       <type name="utf8"/>
2992     </constant>
2993     <class name="Metadata"
2994            c:type="MidgardMetadata"
2995            parent="DBObject"
2996            glib:type-name="MidgardMetadata"
2997            glib:get-type="midgard_metadata_get_type"
2998            glib:type-struct="MetadataClass">
2999       <constructor name="new" c:identifier="midgard_metadata_new">
3000         <doc xml:whitespace="preserve">Creates new midgard_metadata instance for the given #MidgardObject instance.
3001 Do not use g_object_new() as metadata constructor. #MidgardObject pointer is internally 
3002 assigned as a pointer to midgard object for which particular metadata object 
3003 instance was created.
3004 #MidgardMetadata object has two "kinds" of properties.
3005 The first one is settable ( and overwritten ) only by metadata implementation.
3006 The second one is freely settable by application. In this case midgard core
3007 keep value of such property "as is".  
3008 Do not free #MidgardMetadata object's memory as it is automatically
3009 freed when particular #MidgardObject object's instance memory is freed.</doc>
3010         <return-value transfer-ownership="full">
3011           <doc xml:whitespace="preserve">newly allocated midgard_metadata instance</doc>
3012           <type name="Metadata" c:type="MidgardMetadata*"/>
3013         </return-value>
3014         <parameters>
3015           <parameter name="object" transfer-ownership="none">
3016             <doc xml:whitespace="preserve">#MidgardObject for which metadata is created</doc>
3017             <type name="DBObject" c:type="MidgardDBObject*"/>
3018           </parameter>
3019         </parameters>
3020       </constructor>
3021       <property name="approved" transfer-ownership="none">
3022         <type name="Timestamp" c:type="MidgardTimestamp"/>
3023       </property>
3024       <property name="approver" transfer-ownership="none">
3025         <type name="utf8" c:type="gchararray"/>
3026       </property>
3027       <property name="authors" writable="1" transfer-ownership="none">
3028         <type name="utf8" c:type="gchararray"/>
3029       </property>
3030       <property name="created" transfer-ownership="none">
3031         <type name="Timestamp" c:type="MidgardTimestamp"/>
3032       </property>
3033       <property name="creator" transfer-ownership="none">
3034         <type name="utf8" c:type="gchararray"/>
3035       </property>
3036       <property name="deleted" transfer-ownership="none">
3037         <type name="boolean" c:type="gboolean"/>
3038       </property>
3039       <property name="exported" transfer-ownership="none">
3040         <type name="Timestamp" c:type="MidgardTimestamp"/>
3041       </property>
3042       <property name="hidden" writable="1" transfer-ownership="none">
3043         <type name="boolean" c:type="gboolean"/>
3044       </property>
3045       <property name="imported" transfer-ownership="none">
3046         <type name="Timestamp" c:type="MidgardTimestamp"/>
3047       </property>
3048       <property name="isapproved" transfer-ownership="none">
3049         <type name="boolean" c:type="gboolean"/>
3050       </property>
3051       <property name="islocked" transfer-ownership="none">
3052         <type name="boolean" c:type="gboolean"/>
3053       </property>
3054       <property name="locked" transfer-ownership="none">
3055         <type name="Timestamp" c:type="MidgardTimestamp"/>
3056       </property>
3057       <property name="locker" transfer-ownership="none">
3058         <type name="utf8" c:type="gchararray"/>
3059       </property>
3060       <property name="navnoentry" writable="1" transfer-ownership="none">
3061         <type name="boolean" c:type="gboolean"/>
3062       </property>
3063       <property name="owner" writable="1" transfer-ownership="none">
3064         <type name="utf8" c:type="gchararray"/>
3065       </property>
3066       <property name="published" writable="1" transfer-ownership="none">
3067         <type name="Timestamp" c:type="MidgardTimestamp"/>
3068       </property>
3069       <property name="revised" transfer-ownership="none">
3070         <type name="Timestamp" c:type="MidgardTimestamp"/>
3071       </property>
3072       <property name="revision" transfer-ownership="none">
3073         <type name="uint" c:type="guint"/>
3074       </property>
3075       <property name="revisor" transfer-ownership="none">
3076         <type name="utf8" c:type="gchararray"/>
3077       </property>
3078       <property name="scheduleend" writable="1" transfer-ownership="none">
3079         <type name="Timestamp" c:type="MidgardTimestamp"/>
3080       </property>
3081       <property name="schedulestart" writable="1" transfer-ownership="none">
3082         <type name="Timestamp" c:type="MidgardTimestamp"/>
3083       </property>
3084       <property name="score" writable="1" transfer-ownership="none">
3085         <type name="int" c:type="gint"/>
3086       </property>
3087       <property name="size" transfer-ownership="none">
3088         <type name="uint" c:type="guint"/>
3089       </property>
3090       <field name="parent">
3091         <type name="DBObject" c:type="MidgardDBObject"/>
3092       </field>
3093       <field name="priv">
3094         <type name="MetadataPrivate" c:type="MidgardMetadataPrivate*"/>
3095       </field>
3096     </class>
3097     <record name="MetadataClass"
3098             c:type="MidgardMetadataClass"
3099             glib:is-gtype-struct-for="Metadata">
3100       <field name="parent">
3101         <type name="DBObjectClass" c:type="MidgardDBObjectClass"/>
3102       </field>
3103     </record>
3104     <record name="MetadataPrivate" c:type="MidgardMetadataPrivate">
3105     </record>
3106     <enumeration name="MgdErrorGeneric" c:type="MgdErrorGeneric">
3107       <member name="ok" value="0" c:identifier="MGD_ERR_OK"/>
3108       <member name="error" value="-1" c:identifier="MGD_ERR_ERROR"/>
3109       <member name="access_denied"
3110               value="-2"
3111               c:identifier="MGD_ERR_ACCESS_DENIED"/>
3112       <member name="no_metadata"
3113               value="-3"
3114               c:identifier="MGD_ERR_NO_METADATA"/>
3115       <member name="not_object" value="-4" c:identifier="MGD_ERR_NOT_OBJECT"/>
3116       <member name="not_exists" value="-5" c:identifier="MGD_ERR_NOT_EXISTS"/>
3117       <member name="invalid_name"
3118               value="-6"
3119               c:identifier="MGD_ERR_INVALID_NAME"/>
3120       <member name="duplicate" value="-7" c:identifier="MGD_ERR_DUPLICATE"/>
3121       <member name="has_dependants"
3122               value="-8"
3123               c:identifier="MGD_ERR_HAS_DEPENDANTS"/>
3124       <member name="range" value="-9" c:identifier="MGD_ERR_RANGE"/>
3125       <member name="not_connected"
3126               value="-10"
3127               c:identifier="MGD_ERR_NOT_CONNECTED"/>
3128       <member name="sg_notfound"
3129               value="-11"
3130               c:identifier="MGD_ERR_SG_NOTFOUND"/>
3131       <member name="invalid_object"
3132               value="-12"
3133               c:identifier="MGD_ERR_INVALID_OBJECT"/>
3134       <member name="quota" value="-13" c:identifier="MGD_ERR_QUOTA"/>
3135       <member name="internal" value="-14" c:identifier="MGD_ERR_INTERNAL"/>
3136       <member name="object_name_exists"
3137               value="-15"
3138               c:identifier="MGD_ERR_OBJECT_NAME_EXISTS"/>
3139       <member name="object_no_storage"
3140               value="-16"
3141               c:identifier="MGD_ERR_OBJECT_NO_STORAGE"/>
3142       <member name="object_no_parent"
3143               value="-17"
3144               c:identifier="MGD_ERR_OBJECT_NO_PARENT"/>
3145       <member name="invalid_property_value"
3146               value="-18"
3147               c:identifier="MGD_ERR_INVALID_PROPERTY_VALUE"/>
3148       <member name="invalid_property"
3149               value="-19"
3150               c:identifier="MGD_ERR_INVALID_PROPERTY"/>
3151       <member name="user_data" value="-20" c:identifier="MGD_ERR_USER_DATA"/>
3152       <member name="object_deleted"
3153               value="-21"
3154               c:identifier="MGD_ERR_OBJECT_DELETED"/>
3155       <member name="object_purged"
3156               value="-22"
3157               c:identifier="MGD_ERR_OBJECT_PURGED"/>
3158       <member name="object_exported"
3159               value="-23"
3160               c:identifier="MGD_ERR_OBJECT_EXPORTED"/>
3161       <member name="object_imported"
3162               value="-24"
3163               c:identifier="MGD_ERR_OBJECT_IMPORTED"/>
3164       <member name="missed_dependence"
3165               value="-25"
3166               c:identifier="MGD_ERR_MISSED_DEPENDENCE"/>
3167       <member name="tree_is_circular"
3168               value="-26"
3169               c:identifier="MGD_ERR_TREE_IS_CIRCULAR"/>
3170       <member name="object_is_locked"
3171               value="-27"
3172               c:identifier="MGD_ERR_OBJECT_IS_LOCKED"/>
3173     </enumeration>
3174     <class name="Object"
3175            c:type="MidgardObject"
3176            parent="DBObject"
3177            abstract="1"
3178            glib:type-name="MidgardObject"
3179            glib:get-type="midgard_object_get_type"
3180            glib:type-struct="ObjectClass">
3181       <constructor name="new" c:identifier="midgard_object_new">
3182         <doc xml:whitespace="preserve">Creates new MidgardObject object instance.
3183 This function is mandatory one for new midgard object initialization.
3184 Unlike g_object_new ( which is typical function to create new GObject 
3185 instance ), midgard_object_new initializes data which are accessible
3186 internally by object instance itself or by object's class:
3187 - midgard connection handler is associated with object
3188 Sitegroup value is returned from midgard connection handler and may 
3189 be overwritten only by SG0 Midgard Administrator only when object
3190 is created. Setting this property is forbidden when object is already
3191 fetched from database. 
3192 Object's contructor tries to determine third optional parameter value.
3193 If it's of #G_TYPE_STRING type , then midgard_is_guid() is called to check 
3194 weather passed string is a guid , in any other case id property is used 
3195 with #G_TYPE_UINT type. New "empty" instance is created (without fetching 
3196 data from database) if @value parameter is explicitly set to NULL.
3197 Any object instance created with this function should be freed using typical
3198 #g_object_unref function.
3199 Cases to return %NULL:
3200 &lt;itemizedlist&gt;
3201 &lt;listitem&gt;&lt;para&gt;
3202 &lt;/para&gt;&lt;/listitem&gt;
3203 &lt;listitem&gt;&lt;para&gt;
3204 &lt;/para&gt;&lt;/listitem&gt;
3205 &lt;listitem&gt;&lt;para&gt;
3206 unspecified internal error ( MGD_ERR_INTERNAL ) 
3207 &lt;/para&gt;&lt;/listitem&gt;
3208 &lt;/itemizedlist&gt;</doc>
3209         <return-value transfer-ownership="full">
3210           <doc xml:whitespace="preserve">New #MidgardObject object or %NULL on failure</doc>
3211           <type name="Object" c:type="MidgardObject*"/>
3212         </return-value>
3213         <parameters>
3214           <parameter name="mgd" transfer-ownership="none">
3215             <doc xml:whitespace="preserve">#MidgardConnection handler</doc>
3216             <type name="Connection" c:type="MidgardConnection*"/>
3217           </parameter>
3218           <parameter name="name" transfer-ownership="none">
3219             <doc xml:whitespace="preserve">name of the class</doc>
3220             <type name="utf8" c:type="gchar*"/>
3221           </parameter>
3222           <parameter name="value" transfer-ownership="none">
3223             <doc xml:whitespace="preserve">optional value which holds id or guid of an object</doc>
3224             <type name="GObject.Value" c:type="GValue*"/>
3225           </parameter>
3226         </parameters>
3227       </constructor>
3228       <method name="get_by_id" c:identifier="midgard_object_get_by_id">
3229         <doc xml:whitespace="preserve">Fetch object's record(s) from database using 'id' property.
3230 This is common practice to use 'id' property with integer type when table's
3231 id column stores unique, primary key value which identifies object and its record(s).
3232 However primary property with integer type is freely defined by user.
3233 MidgardObject object instance must be created with midgard_object_new function.
3234 When midgard connection handler is not associated with object instance, 
3235 application is terminated with 'assertion fails' error message being logged. 
3236 Object instance created with this function should be freed using #g_object_unref.
3237 Cases to return %FALSE:
3238 &lt;itemizedlist&gt;
3239 &lt;listitem&gt;&lt;para&gt;
3240 There's no 'id' primary property registered for object's class ( MGD_ERR_INTERNAL )
3241 &lt;/para&gt;&lt;/listitem&gt;
3242 &lt;listitem&gt;&lt;para&gt;
3243 Object's record can not be fetched from database ( MGD_ERR_NOT_EXISTS ) 
3244 &lt;/para&gt;&lt;/listitem&gt;
3245 &lt;listitem&gt;&lt;para&gt;
3246 unspecified internal error ( MGD_ERR_INTERNAL )   
3247 &lt;/para&gt;&lt;/listitem&gt;
3248 &lt;/itemizedlist&gt;</doc>
3249         <return-value transfer-ownership="none">
3250           <doc xml:whitespace="preserve">%TRUE if object is successfully fetched from database, %FALSE otherwise.</doc>
3251           <type name="boolean" c:type="gboolean"/>
3252         </return-value>
3253         <parameters>
3254           <parameter name="id" transfer-ownership="none">
3255             <doc xml:whitespace="preserve">object's integer identifier</doc>
3256             <type name="uint" c:type="guint"/>
3257           </parameter>
3258         </parameters>
3259       </method>
3260       <method name="get_by_guid" c:identifier="midgard_object_get_by_guid">
3261         <doc xml:whitespace="preserve">Fetch object's record(s) from database using 'guid' property constraint.
3262 MidgardObject object instance must be created with midgard_object_new function.
3263 When midgard connection handler is not associated with object instance, 
3264 application is terminated with 'assertion fails' error message being logged. 
3265 Object instance created with this function should be freed using g_object_unref.
3266 Cases to return %FALSE:
3267 &lt;itemizedlist&gt;
3268 &lt;listitem&gt;&lt;para&gt;
3269 Object's record can not be fetched from database ( MGD_ERR_NOT_EXISTS ) 
3270 &lt;/para&gt;&lt;/listitem&gt;
3271 &lt;listitem&gt;&lt;para&gt;
3272 unspecified internal error ( MGD_ERR_INTERNAL ) 
3273 &lt;/para&gt;&lt;/listitem&gt;
3274 &lt;/itemizedlist&gt;</doc>
3275         <return-value transfer-ownership="none">
3276           <doc xml:whitespace="preserve">%TRUE if object is successfully fetched from database, %FALSE otherwise.</doc>
3277           <type name="boolean" c:type="gboolean"/>
3278         </return-value>
3279         <parameters>
3280           <parameter name="guid" transfer-ownership="none">
3281             <doc xml:whitespace="preserve">string value which should identify object</doc>
3282             <type name="utf8" c:type="gchar*"/>
3283           </parameter>
3284         </parameters>
3285       </method>
3286       <method name="get_by_path" c:identifier="midgard_object_get_by_path">
3287         <return-value transfer-ownership="none">
3288           <type name="boolean" c:type="gboolean"/>
3289         </return-value>
3290         <parameters>
3291           <parameter name="path" transfer-ownership="none">
3292             <type name="utf8" c:type="gchar*"/>
3293           </parameter>
3294         </parameters>
3295       </method>
3296       <method name="update" c:identifier="midgard_object_update">
3297         <doc xml:whitespace="preserve">Update object's record(s).
3298 Internally such metadata properties are set (overwritten):
3299 &lt;itemizedlist&gt;
3300 &lt;listitem&gt;&lt;para&gt;
3301 revisor 
3302 &lt;/para&gt;&lt;/listitem&gt;
3303 &lt;listitem&gt;&lt;para&gt;
3304 revision ( increased by one ) 
3305 &lt;/para&gt;&lt;/listitem&gt;
3306 &lt;listitem&gt;&lt;para&gt;
3307 revised 
3308 &lt;/para&gt;&lt;/listitem&gt;
3309 &lt;/itemizedlist&gt;
3310 Cases to return %FALSE:
3311 &lt;itemizedlist&gt;
3312 &lt;listitem&gt;&lt;para&gt;
3313 Property registered with #MGD_TYPE_GUID doesn't hold valid guid ( MGD_ERR_INVALID_PROPERTY_VALUE ) 
3314 &lt;/para&gt;&lt;/listitem&gt;
3315 &lt;listitem&gt;&lt;para&gt;
3316 Object's class is registered with tree facilities and there is already such object in midgard tree ( MGD_ERR_DUPLICATE ) 
3317 &lt;/para&gt;&lt;/listitem&gt;
3318 &lt;listitem&gt;&lt;para&gt;
3319 Quota is activated and its limit is reached ( MGD_ERR_QUOTA ) 
3320 &lt;/para&gt;&lt;/listitem&gt;
3321 &lt;listitem&gt;&lt;para&gt;
3322 Unspecified internal error ( MGD_ERR_INTERNAL ) 
3323 &lt;/para&gt;&lt;/listitem&gt;
3324 &lt;/itemizedlist&gt;</doc>
3325         <return-value transfer-ownership="none">
3326           <doc xml:whitespace="preserve">%TRUE if object's record(s) is successfully updated, %FALSE otherwise.</doc>
3327           <type name="boolean" c:type="gboolean"/>
3328         </return-value>
3329       </method>
3330       <method name="create" c:identifier="midgard_object_create">
3331         <doc xml:whitespace="preserve">Creates new database record(s) for object.
3332 Internally such properties are set (overwritten):
3333 &lt;itemizedlist&gt;
3334 &lt;listitem&gt;&lt;para&gt;
3335 guid (if not set by root)
3336 &lt;/para&gt;&lt;/listitem&gt;
3337 &lt;listitem&gt;&lt;para&gt;
3338 id (if set as primary property)
3339 &lt;/para&gt;&lt;/listitem&gt;
3340 &lt;/itemizedlist&gt; 
3341 Metadata overwritten properties:
3342 &lt;itemizedlist&gt;
3343 &lt;listitem&gt;&lt;para&gt;
3344 creator
3345 &lt;/para&gt;&lt;/listitem&gt;
3346 &lt;listitem&gt;&lt;para&gt;
3347 created
3348 &lt;/para&gt;&lt;/listitem&gt;
3349 &lt;listitem&gt;&lt;para&gt;
3350 revisor
3351 &lt;/para&gt;&lt;/listitem&gt;
3352 &lt;listitem&gt;&lt;para&gt;
3353 revised
3354 &lt;/para&gt;&lt;/listitem&gt;
3355 &lt;listitem&gt;&lt;para&gt;
3356 revision
3357 &lt;/para&gt;&lt;/listitem&gt;
3358 &lt;listitem&gt;&lt;para&gt;
3359 published ( set only, if not defined by user ) 
3360 &lt;/para&gt;&lt;/listitem&gt;
3361 &lt;/itemizedlist&gt; 
3362 Cases to return %FALSE:
3363 &lt;itemizedlist&gt;
3364 &lt;listitem&gt;&lt;para&gt;
3365 Property registered with #MGD_TYPE_GUID doesn't hold valid guid ( MGD_ERR_INVALID_PROPERTY_VALUE ) 
3366 &lt;/para&gt;&lt;/listitem&gt;
3367 &lt;listitem&gt;&lt;para&gt;
3368 Object's class is registered with tree facilities and there is already object with the same name in midgard tree. ( MGD_ERR_DUPLICATE ) 
3369 &lt;/para&gt;&lt;/listitem&gt;
3370 &lt;listitem&gt;&lt;para&gt;
3371 Object has guid property set already. ( MGD_ERR_DUPLICATE ) 
3372 &lt;/para&gt;&lt;/listitem&gt;
3373 &lt;listitem&gt;&lt;para&gt;
3374 Quota is activated and its limit is reached ( MGD_ERR_QUOTA ) 
3375 &lt;/para&gt;&lt;/listitem&gt;
3376 &lt;listitem&gt;&lt;para&gt;
3377 Unspecified internal error ( MGD_ERR_INTERNAL ) 
3378 &lt;/para&gt;&lt;/listitem&gt;
3379 &lt;/itemizedlist&gt;</doc>
3380         <return-value transfer-ownership="none">
3381           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
3382           <type name="boolean" c:type="gboolean"/>
3383         </return-value>
3384       </method>
3385       <method name="delete" c:identifier="midgard_object_delete">
3386         <doc xml:whitespace="preserve">Delete object's record(s) from database, but object's record is not fully deleted 
3387 from database. Instead, it is marked as deleted , thus it is possible to undelete 
3388 object later with midgard_schema_object_factory_object_undelete().
3389 If @check_dependents toggle is %TRUE, parameters and attachments storage will be queried,
3390 if any of such exist and depend on deleted object.
3391 If given object's class has no metadata defined, object will be purged.
3392 Use midgard_object_purge() if you need to purge object's data from database.
3393 Cases to return %FALSE:
3394 &lt;itemizedlist&gt;
3395 &lt;listitem&gt;&lt;para&gt;
3396 Object's has no storage defined ( MGD_ERR_OBJECT_NO_STORAGE )
3397 &lt;/para&gt;&lt;/listitem&gt;
3398 &lt;listitem&gt;&lt;para&gt;
3399 Object's property guid is empty ( MGD_ERR_INVALID_PROPERTY_VALUE )
3400 &lt;/para&gt;&lt;/listitem&gt;
3401 &lt;listitem&gt;&lt;para&gt;
3402 There are still dependent objects in database ( MGD_ERR_HAS_DEPENDENTS )
3403 &lt;/para&gt;&lt;/listitem&gt;
3404 &lt;listitem&gt;&lt;para&gt;
3405 Unspecified internal error ( MGD_ERR_INTERNAL ) 
3406 &lt;/para&gt;&lt;/listitem&gt;
3407 &lt;/itemizedlist&gt;</doc>
3408         <return-value transfer-ownership="none">
3409           <doc xml:whitespace="preserve">%TRUE if object is successfully marked as deleted, %FALSE otherwise.</doc>
3410           <type name="boolean" c:type="gboolean"/>
3411         </return-value>
3412         <parameters>
3413           <parameter name="check_dependents" transfer-ownership="none">
3414             <doc xml:whitespace="preserve">dependents' check toggle</doc>
3415             <type name="boolean" c:type="gboolean"/>
3416           </parameter>
3417         </parameters>
3418       </method>
3419       <method name="purge" c:identifier="midgard_object_purge">
3420         <doc xml:whitespace="preserve">Purge object's record(s) from database.
3421 If @check_dependents toggle is %TRUE, parameters and attachments storage will be queried,
3422 if any of such exist and depend on deleted object.
3423 Object's record(s) are purged from database without any possibility to recover.
3424 After successfull call, only repligard table holds information about object's state.
3425 Use midgard_object_delete(), if undelete facility is needed.
3426 Cases to return %FALSE:
3427 &lt;itemizedlist&gt;
3428 &lt;listitem&gt;&lt;para&gt;
3429 Object has no storage defined ( MGD_ERR_OBJECT_NO_STORAGE )
3430 &lt;/para&gt;&lt;/listitem&gt;
3431 &lt;listitem&gt;&lt;para&gt;
3432 Object's property guid value is empty ( MGD_ERR_INVALID_PROPERTY_VALUE ) 
3433 &lt;/para&gt;&lt;/listitem&gt;
3434 &lt;listitem&gt;&lt;para&gt;
3435 There are still dependent objects in database ( MGD_ERR_HAS_DEPENDANTS )
3436 &lt;/para&gt;&lt;/listitem&gt;
3437 &lt;listitem&gt;&lt;para&gt;
3438 No record has been deleted from database ( MGD_ERR_NOT_EXISTS )
3439 &lt;/para&gt;&lt;/listitem&gt;
3440 &lt;listitem&gt;&lt;para&gt;
3441 Unspecified internal error ( MGD_ERR_INTERNAL ) 
3442 &lt;/para&gt;&lt;/listitem&gt;
3443 &lt;/itemizedlist&gt;</doc>
3444         <return-value transfer-ownership="none">
3445           <doc xml:whitespace="preserve">%TRUE if object has been succesfully purged from database, %FALSE otherwise.</doc>
3446           <type name="boolean" c:type="gboolean"/>
3447         </return-value>
3448         <parameters>
3449           <parameter name="check_dependents" transfer-ownership="none">
3450             <doc xml:whitespace="preserve">dependents' check toggle</doc>
3451             <type name="boolean" c:type="gboolean"/>
3452           </parameter>
3453         </parameters>
3454       </method>
3455       <method name="build_path" c:identifier="midgard_object_build_path">
3456         <return-value transfer-ownership="full">
3457           <type name="utf8" c:type="gchar*"/>
3458         </return-value>
3459       </method>
3460       <method name="has_dependents"
3461               c:identifier="midgard_object_has_dependents">
3462         <doc xml:whitespace="preserve">Checks whether object has dependent objects. 
3463 Check is done with such particular order:
3464 &lt;itemizedlist&gt;
3465 &lt;listitem&gt;&lt;para&gt;
3466 Objects of the same type 
3467 &lt;/para&gt;&lt;/listitem&gt;
3468 &lt;listitem&gt;&lt;para&gt;
3469 Children objects
3470 &lt;/para&gt;&lt;/listitem&gt;
3471 &lt;listitem&gt;&lt;para&gt;
3472 Parameters
3473 &lt;/para&gt;&lt;/listitem&gt;
3474 &lt;listitem&gt;&lt;para&gt;
3475 Attachments
3476 &lt;/para&gt;&lt;/listitem&gt;
3477 &lt;/itemizedlist&gt;</doc>
3478         <return-value transfer-ownership="none">
3479           <type name="boolean" c:type="gboolean"/>
3480         </return-value>
3481       </method>
3482       <method name="set_guid" c:identifier="midgard_object_set_guid">
3483         <doc xml:whitespace="preserve">Sets object's guid
3484 Cases to return %FALSE:
3485 &lt;itemizedlist&gt;
3486 &lt;listitem&gt;&lt;para&gt;
3487 given guid already exists in database ( MGD_ERR_DUPLICATE ) 
3488 &lt;/para&gt;&lt;/listitem&gt;
3489 &lt;listitem&gt;&lt;para&gt;
3490 given guid is invalid ( MGD_ERR_INVALID_PROPERTY_VALUE )
3491 &lt;/para&gt;&lt;/listitem&gt;
3492 &lt;listitem&gt;&lt;para&gt;
3493 object has already set guid property ( MGD_ERR_INVALID_PROPERTY_VALUE ) 
3494 &lt;/para&gt;&lt;/listitem&gt;
3495 &lt;/itemizedlist&gt;</doc>
3496         <return-value transfer-ownership="none">
3497           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
3498           <type name="boolean" c:type="gboolean"/>
3499         </return-value>
3500         <parameters>
3501           <parameter name="guid" transfer-ownership="none">
3502             <doc xml:whitespace="preserve">guid to set</doc>
3503             <type name="utf8" c:type="gchar*"/>
3504           </parameter>
3505         </parameters>
3506       </method>
3507       <method name="set_connection"
3508               c:identifier="midgard_object_set_connection">
3509         <return-value transfer-ownership="none">
3510           <type name="none" c:type="void"/>
3511         </return-value>
3512         <parameters>
3513           <parameter name="mgd" transfer-ownership="none">
3514             <type name="Connection" c:type="MidgardConnection*"/>
3515           </parameter>
3516         </parameters>
3517       </method>
3518       <method name="get_connection"
3519               c:identifier="midgard_object_get_connection">
3520         <doc xml:whitespace="preserve">Returned #MidgardConnection is owned by core, and should not be freed.</doc>
3521         <return-value transfer-ownership="none">
3522           <doc xml:whitespace="preserve">pointer to #MidgardConnection associated with given object.</doc>
3523           <type name="Connection" c:type="MidgardConnection*"/>
3524         </return-value>
3525       </method>
3526       <method name="approve" c:identifier="midgard_object_approve">
3527         <doc xml:whitespace="preserve">Approve object.
3528 Approval functionality is not used by midgard core itself. 
3529 Instead, it supports higher level's applications. It means, 
3530 that there are no core methods ( like update or delete ) which 
3531 do real check if object is approved. You should create own approval
3532 midgard_object_unapprove() and this one.
3533 revisor, revised, revision, approver and approved.
3534 Cases to return %FALSE:
3535 &lt;itemizedlist&gt;
3536 &lt;listitem&gt;&lt;para&gt;
3537 No user logged in ( MGD_ERR_ACCESS_DENIED ) 
3538 &lt;/para&gt;&lt;/listitem&gt;
3539 &lt;listitem&gt;&lt;para&gt;
3540 No active person ( MGD_ERR_INTERNAL ) 
3541 &lt;/para&gt;&lt;/listitem&gt;
3542 &lt;listitem&gt;&lt;para&gt;
3543 Object is already approved
3544 &lt;/para&gt;&lt;/listitem&gt;
3545 &lt;/itemizedlist&gt;</doc>
3546         <return-value transfer-ownership="none">
3547           <doc xml:whitespace="preserve">%TRUE if object has been approved, FALSE otherwise</doc>
3548           <type name="boolean" c:type="gboolean"/>
3549         </return-value>
3550       </method>
3551       <method name="is_approved" c:identifier="midgard_object_is_approved">
3552         <doc xml:whitespace="preserve">Check whether object is approved.</doc>
3553         <return-value transfer-ownership="none">
3554           <doc xml:whitespace="preserve">%TRUE if object is approved, %FALSE otherwise</doc>
3555           <type name="boolean" c:type="gboolean"/>
3556         </return-value>
3557       </method>
3558       <method name="unapprove" c:identifier="midgard_object_unapprove">
3559         <doc xml:whitespace="preserve">Simply unapprove object. It doesn't affect any core functionality, 
3560 like midgard_object_approve().
3561 This method updates metadata properties:
3562 revisor, revised, revision, approver and approved
3563 Cases to return %FALSE:
3564 &lt;itemizedlist&gt;
3565 &lt;listitem&gt;&lt;para&gt;
3566 No user logged in ( MGD_ERR_ACCESS_DENIED ) 
3567 &lt;/para&gt;&lt;/listitem&gt;
3568 &lt;listitem&gt;&lt;para&gt;
3569 Object is not approved
3570 &lt;/para&gt;&lt;/listitem&gt;
3571 &lt;/itemizedlist&gt;</doc>
3572         <return-value transfer-ownership="none">
3573           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
3574           <type name="boolean" c:type="gboolean"/>
3575         </return-value>
3576       </method>
3577       <method name="lock" c:identifier="midgard_object_lock">
3578         <doc xml:whitespace="preserve">Lock object.
3579 This method doesn't affect any core's functionality like midgard_object_approve.
3580 You should create own locking workflow and logic with methods:
3581 midgard_object_is_locked(), midgard_object_unlock() and this one.
3582 Updates metadata properties:
3583 locker, locked, revisor, revised and revision
3584 Cases to return %FALSE:
3585 &lt;itemizedlist&gt;
3586 &lt;listitem&gt;&lt;para&gt;
3587 No user logged in ( MGD_ERR_ACCESS_DENIED ) 
3588 &lt;/para&gt;&lt;/listitem&gt;
3589 &lt;listitem&gt;&lt;para&gt;
3590 Metadata class not defined for given object's class ( MGD_ERR_NO_METADATA ) 
3591 &lt;/para&gt;&lt;/listitem&gt;
3592 &lt;listitem&gt;&lt;para&gt;
3593 Object is already locked ( MGD_ERR_OBJECT_IS_LOCKED )
3594 &lt;/para&gt;&lt;/listitem&gt;
3595 &lt;/itemizedlist&gt;</doc>
3596         <return-value transfer-ownership="none">
3597           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
3598           <type name="boolean" c:type="gboolean"/>
3599         </return-value>
3600       </method>
3601       <method name="is_locked" c:identifier="midgard_object_is_locked">
3602         <doc xml:whitespace="preserve">Check whether object is locked
3603 Cases to return %FALSE:
3604 &lt;itemizedlist&gt;
3605 &lt;listitem&gt;&lt;para&gt;
3606 Metadata class not defined for given object's class ( MGD_ERR_NO_METADATA ) 
3607 &lt;/para&gt;&lt;/listitem&gt;
3608 &lt;/itemizedlist&gt;</doc>
3609         <return-value transfer-ownership="none">
3610           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
3611           <type name="boolean" c:type="gboolean"/>
3612         </return-value>
3613       </method>
3614       <method name="unlock" c:identifier="midgard_object_unlock">
3615         <doc xml:whitespace="preserve">Unlock object.
3616 Cases to return %FALSE:
3617 &lt;itemizedlist&gt;
3618 &lt;listitem&gt;&lt;para&gt;
3619 No user logged in ( MGD_ERR_ACCESS_DENIED ) 
3620 &lt;/para&gt;&lt;/listitem&gt;
3621 &lt;listitem&gt;&lt;para&gt;
3622 Object is not locked ( FIXME )
3623 &lt;/para&gt;&lt;/listitem&gt;
3624 &lt;listitem&gt;&lt;para&gt;
3625 Metadata class not defined for given object's class ( MGD_ERR_NO_METADATA ) 
3626 &lt;/para&gt;&lt;/listitem&gt;
3627 &lt;/itemizedlist&gt;</doc>
3628         <return-value transfer-ownership="none">
3629           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
3630           <type name="boolean" c:type="gboolean"/>
3631         </return-value>
3632       </method>
3633       <method name="get_schema_property"
3634               c:identifier="midgard_object_get_schema_property">
3635         <return-value transfer-ownership="full">
3636           <type name="GObject.Value" c:type="GValue*"/>
3637         </return-value>
3638         <parameters>
3639           <parameter name="property" transfer-ownership="none">
3640             <type name="utf8" c:type="gchar*"/>
3641           </parameter>
3642         </parameters>
3643       </method>
3644       <method name="set_schema_property"
3645               c:identifier="midgard_object_set_schema_property">
3646         <return-value transfer-ownership="none">
3647           <type name="none" c:type="void"/>
3648         </return-value>
3649         <parameters>
3650           <parameter name="property" transfer-ownership="none">
3651             <type name="utf8" c:type="gchar*"/>
3652           </parameter>
3653           <parameter name="value" transfer-ownership="none">
3654             <type name="GObject.Value" c:type="GValue*"/>
3655           </parameter>
3656         </parameters>
3657       </method>
3658       <method name="get_parameter" c:identifier="midgard_object_get_parameter">
3659         <return-value transfer-ownership="none">
3660           <type name="GObject.Value" c:type="GValue*"/>
3661         </return-value>
3662         <parameters>
3663           <parameter name="domain" transfer-ownership="none">
3664             <type name="utf8" c:type="gchar*"/>
3665           </parameter>
3666           <parameter name="name" transfer-ownership="none">
3667             <type name="utf8" c:type="gchar*"/>
3668           </parameter>
3669         </parameters>
3670       </method>
3671       <method name="set_parameter" c:identifier="midgard_object_set_parameter">
3672         <doc xml:whitespace="preserve">Creates object's parameter object if it doesn't exists, updates otherwise.</doc>
3673         <return-value transfer-ownership="none">
3674           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
3675           <type name="boolean" c:type="gboolean"/>
3676         </return-value>
3677         <parameters>
3678           <parameter name="domain" transfer-ownership="none">
3679             <doc xml:whitespace="preserve">parameter's domain string</doc>
3680             <type name="utf8" c:type="gchar*"/>
3681           </parameter>
3682           <parameter name="name" transfer-ownership="none">
3683             <doc xml:whitespace="preserve">parameter's name string</doc>
3684             <type name="utf8" c:type="gchar*"/>
3685           </parameter>
3686           <parameter name="value" transfer-ownership="none">
3687             <doc xml:whitespace="preserve">a GValue value which should be set for domain&amp;name pair</doc>
3688             <type name="GObject.Value" c:type="GValue*"/>
3689           </parameter>
3690         </parameters>
3691       </method>
3692       <method name="list_parameters"
3693               c:identifier="midgard_object_list_parameters">
3694         <doc xml:whitespace="preserve">Returned objects are midgard_parameter class. Parameter objects are 
3695 fetched from database unconditionally if domain i sexplicitly set to NULL. 
3696 That is, only those which parent guid property matches object's guid. 
3697 Returned array should be freed when no longer needed.</doc>
3698         <return-value transfer-ownership="full">
3699           <doc xml:whitespace="preserve">Newly allocated and NULL terminated array of midgard_parameter objects.</doc>
3700           <type name="Object" c:type="MidgardObject**"/>
3701         </return-value>
3702         <parameters>
3703           <parameter name="domain" transfer-ownership="none">
3704             <doc xml:whitespace="preserve">optional paramaters' domain</doc>
3705             <type name="utf8" c:type="gchar*"/>
3706           </parameter>
3707         </parameters>
3708       </method>
3709       <method name="delete_parameters"
3710               c:identifier="midgard_object_delete_parameters">
3711         <doc xml:whitespace="preserve">Delete object's parameter(s) which match given properties' values.
3712 Properties list in @parameters is optional. All object's parameters are 
3713 deleted ( if exist ) if @parameters is explicitly set to %NULL.</doc>
3714         <return-value transfer-ownership="none">
3715           <doc xml:whitespace="preserve">%TRUE on success, %FALSE if at least one of the parameters could not be deleted</doc>
3716           <type name="boolean" c:type="gboolean"/>
3717         </return-value>
3718         <parameters>
3719           <parameter name="n_params" transfer-ownership="none">
3720             <doc xml:whitespace="preserve">number of properties</doc>
3721             <type name="uint" c:type="guint"/>
3722           </parameter>
3723           <parameter name="parameters" transfer-ownership="none">
3724             <doc xml:whitespace="preserve">properties list</doc>
3725             <type name="GObject.Parameter" c:type="GParameter*"/>
3726           </parameter>
3727         </parameters>
3728       </method>
3729       <method name="purge_parameters"
3730               c:identifier="midgard_object_purge_parameters">
3731         <doc xml:whitespace="preserve">Purge object's parameter(s) which match given properties' values.
3732 Properties list in @parameters is optional. All object's parameters are 
3733 purged ( if exist ) if @parameters is explicitly set to %NULL.</doc>
3734         <return-value transfer-ownership="none">
3735           <doc xml:whitespace="preserve">%TRUE on success, %FALSE if at least one of the parameters could not be purged</doc>
3736           <type name="boolean" c:type="gboolean"/>
3737         </return-value>
3738         <parameters>
3739           <parameter name="n_params" transfer-ownership="none">
3740             <doc xml:whitespace="preserve">number of properties</doc>
3741             <type name="uint" c:type="guint"/>
3742           </parameter>
3743           <parameter name="parameters" transfer-ownership="none">
3744             <doc xml:whitespace="preserve">properties list</doc>
3745             <type name="GObject.Parameter" c:type="GParameter*"/>
3746           </parameter>
3747         </parameters>
3748       </method>
3749       <method name="find_parameters"
3750               c:identifier="midgard_object_find_parameters">
3751         <doc xml:whitespace="preserve">Find object's parameter(s) with matching given properties.
3752 returned ( if exist ) if @parameters is explicitly set to %NULL.</doc>
3753         <return-value transfer-ownership="full">
3754           <doc xml:whitespace="preserve">newly created, NULL terminated array of #MidgardObject ( midgard_parameter class ) or %NULL on failure</doc>
3755           <type name="Object" c:type="MidgardObject**"/>
3756         </return-value>
3757         <parameters>
3758           <parameter name="n_params" transfer-ownership="none">
3759             <doc xml:whitespace="preserve">number of properties</doc>
3760             <type name="uint" c:type="guint"/>
3761           </parameter>
3762           <parameter name="parameters" transfer-ownership="none">
3763             <doc xml:whitespace="preserve">properties list</doc>
3764             <type name="GObject.Parameter" c:type="GParameter*"/>
3765           </parameter>
3766         </parameters>
3767       </method>
3768       <method name="has_parameters"
3769               c:identifier="midgard_object_has_parameters">
3770         <return-value transfer-ownership="none">
3771           <doc xml:whitespace="preserve">%TRUE if object has paramateres, %FALSE otherwise.</doc>
3772           <type name="boolean" c:type="gboolean"/>
3773         </return-value>
3774       </method>
3775       <method name="list_attachments"
3776               c:identifier="midgard_object_list_attachments">
3777         <doc xml:whitespace="preserve">Returned objects are midgard_attachment class. Attachments objects are 
3778 fetched from database unconditionally. 
3779 That is, only those which parent guid property matches object's guid. 
3780 Returned array should be freed when no longer needed.</doc>
3781         <return-value transfer-ownership="full">
3782           <doc xml:whitespace="preserve">Newly allocated and NULL terminated array of midgard_attachment objects.</doc>
3783           <type name="Object" c:type="MidgardObject**"/>
3784         </return-value>
3785       </method>
3786       <method name="create_attachment"
3787               c:identifier="midgard_object_create_attachment">
3788         <doc xml:whitespace="preserve">Creates object's attachment using given properties.
3789 Any property may be explicitly set to NULL.</doc>
3790         <return-value transfer-ownership="full">
3791           <doc xml:whitespace="preserve">newly created #MidgardObject of midgard_attachment class or %NULL on failure</doc>
3792           <type name="Object" c:type="MidgardObject*"/>
3793         </return-value>
3794         <parameters>
3795           <parameter name="name" transfer-ownership="none">
3796             <doc xml:whitespace="preserve">name for attachment</doc>
3797             <type name="utf8" c:type="gchar*"/>
3798           </parameter>
3799           <parameter name="title" transfer-ownership="none">
3800             <doc xml:whitespace="preserve">its title</doc>
3801             <type name="utf8" c:type="gchar*"/>
3802           </parameter>
3803           <parameter name="mimetype" transfer-ownership="none">
3804             <doc xml:whitespace="preserve">and mimetype</doc>
3805             <type name="utf8" c:type="gchar*"/>
3806           </parameter>
3807         </parameters>
3808       </method>
3809       <method name="delete_attachments"
3810               c:identifier="midgard_object_delete_attachments">
3811         <doc xml:whitespace="preserve">Delete object's attachments(s) which match given properties' values.
3812 Properties list in @parameters is optional. All object's attachments are 
3813 deleted ( if exist ) if @parameters is explicitly set to %NULL.</doc>
3814         <return-value transfer-ownership="none">
3815           <doc xml:whitespace="preserve">%TRUE on success, %FALSE if at least one of the attachment could not be deleted</doc>
3816           <type name="boolean" c:type="gboolean"/>
3817         </return-value>
3818         <parameters>
3819           <parameter name="n_params" transfer-ownership="none">
3820             <doc xml:whitespace="preserve">number of properties</doc>
3821             <type name="uint" c:type="guint"/>
3822           </parameter>
3823           <parameter name="parameters" transfer-ownership="none">
3824             <doc xml:whitespace="preserve">properties list</doc>
3825             <type name="GObject.Parameter" c:type="GParameter*"/>
3826           </parameter>
3827         </parameters>
3828       </method>
3829       <method name="purge_attachments"
3830               c:identifier="midgard_object_purge_attachments">
3831         <doc xml:whitespace="preserve">Purge object's attachments(s) which match given properties' values.
3832 Properties list in @parameters is optional. All object's attachments are 
3833 purged ( if exist ) if @parameters is explicitly set to %NULL.
3834 to blob located on filesystem ( it should be set to %TRUE by default ).
3835 However, if midgard_attachment is created for blobs sharing and file should not 
3836 be deleted, @delete_blob should be set to %FALSE.
3837 There's no way to determine if midgard_attachment is sharing blob, so aplication 
3838 itelf is responsible to create such own logic.</doc>
3839         <return-value transfer-ownership="none">
3840           <doc xml:whitespace="preserve">%TRUE on success, %FALSE if at least one of the attachment could not be purged</doc>
3841           <type name="boolean" c:type="gboolean"/>
3842         </return-value>
3843         <parameters>
3844           <parameter name="delete_blob" transfer-ownership="none">
3845             <doc xml:whitespace="preserve">whether blob should be deleted as well</doc>
3846             <type name="boolean" c:type="gboolean"/>
3847           </parameter>
3848           <parameter name="n_params" transfer-ownership="none">
3849             <doc xml:whitespace="preserve">number of properties</doc>
3850             <type name="uint" c:type="guint"/>
3851           </parameter>
3852           <parameter name="parameters" transfer-ownership="none">
3853             <doc xml:whitespace="preserve">properties list</doc>
3854             <type name="GObject.Parameter" c:type="GParameter*"/>
3855           </parameter>
3856         </parameters>
3857       </method>
3858       <method name="find_attachments"
3859               c:identifier="midgard_object_find_attachments">
3860         <doc xml:whitespace="preserve">Find object's attachment(s) with matching given properties.
3861 returned ( if exist ) if @parameters is explicitly set to %NULL.</doc>
3862         <return-value transfer-ownership="full">
3863           <doc xml:whitespace="preserve">newly created, NULL terminated array of #MidgardObject ( midgard_attachment class ) or %NULL on failure</doc>
3864           <type name="Object" c:type="MidgardObject**"/>
3865         </return-value>
3866         <parameters>
3867           <parameter name="n_params" transfer-ownership="none">
3868             <doc xml:whitespace="preserve">number of properties</doc>
3869             <type name="uint" c:type="guint"/>
3870           </parameter>
3871           <parameter name="parameters" transfer-ownership="none">
3872             <doc xml:whitespace="preserve">properties list</doc>
3873             <type name="GObject.Parameter" c:type="GParameter*"/>
3874           </parameter>
3875         </parameters>
3876       </method>
3877       <method name="has_attachments"
3878               c:identifier="midgard_object_has_attachments">
3879         <return-value transfer-ownership="none">
3880           <doc xml:whitespace="preserve">%TRUE if object has attachments, %FALSE otherwise.</doc>
3881           <type name="boolean" c:type="gboolean"/>
3882         </return-value>
3883       </method>
3884       <property name="action" writable="1" transfer-ownership="none">
3885         <type name="utf8" c:type="gchararray"/>
3886       </property>
3887       <property name="guid" transfer-ownership="none">
3888         <type name="utf8" c:type="gchararray"/>
3889       </property>
3890       <property name="metadata" writable="1" transfer-ownership="none">
3891         <type name="Metadata" c:type="MidgardMetadata"/>
3892       </property>
3893       <field name="parent">
3894         <type name="DBObject" c:type="MidgardDBObject"/>
3895       </field>
3896       <field name="priv">
3897         <type name="ObjectPrivate" c:type="MidgardObjectPrivate*"/>
3898       </field>
3899       <glib:signal name="action-approve">
3900         <return-value transfer-ownership="full">
3901           <type name="none" c:type="void"/>
3902         </return-value>
3903       </glib:signal>
3904       <glib:signal name="action-approve-hook">
3905         <return-value transfer-ownership="full">
3906           <type name="none" c:type="void"/>
3907         </return-value>
3908       </glib:signal>
3909       <glib:signal name="action-approved">
3910         <return-value transfer-ownership="full">
3911           <type name="none" c:type="void"/>
3912         </return-value>
3913       </glib:signal>
3914       <glib:signal name="action-create">
3915         <return-value transfer-ownership="full">
3916           <type name="none" c:type="void"/>
3917         </return-value>
3918       </glib:signal>
3919       <glib:signal name="action-create-hook">
3920         <return-value transfer-ownership="full">
3921           <type name="none" c:type="void"/>
3922         </return-value>
3923       </glib:signal>
3924       <glib:signal name="action-created">
3925         <return-value transfer-ownership="full">
3926           <type name="none" c:type="void"/>
3927         </return-value>
3928       </glib:signal>
3929       <glib:signal name="action-delete">
3930         <return-value transfer-ownership="full">
3931           <type name="none" c:type="void"/>
3932         </return-value>
3933       </glib:signal>
3934       <glib:signal name="action-delete-hook">
3935         <return-value transfer-ownership="full">
3936           <type name="none" c:type="void"/>
3937         </return-value>
3938       </glib:signal>
3939       <glib:signal name="action-deleted">
3940         <return-value transfer-ownership="full">
3941           <type name="none" c:type="void"/>
3942         </return-value>
3943       </glib:signal>
3944       <glib:signal name="action-export">
3945         <return-value transfer-ownership="full">
3946           <type name="none" c:type="void"/>
3947         </return-value>
3948       </glib:signal>
3949       <glib:signal name="action-export-hook">
3950         <return-value transfer-ownership="full">
3951           <type name="none" c:type="void"/>
3952         </return-value>
3953       </glib:signal>
3954       <glib:signal name="action-exported">
3955         <return-value transfer-ownership="full">
3956           <type name="none" c:type="void"/>
3957         </return-value>
3958       </glib:signal>
3959       <glib:signal name="action-import">
3960         <return-value transfer-ownership="full">
3961           <type name="none" c:type="void"/>
3962         </return-value>
3963       </glib:signal>
3964       <glib:signal name="action-import-hook">
3965         <return-value transfer-ownership="full">
3966           <type name="none" c:type="void"/>
3967         </return-value>
3968       </glib:signal>
3969       <glib:signal name="action-imported">
3970         <return-value transfer-ownership="full">
3971           <type name="none" c:type="void"/>
3972         </return-value>
3973       </glib:signal>
3974       <glib:signal name="action-loaded">
3975         <return-value transfer-ownership="full">
3976           <type name="none" c:type="void"/>
3977         </return-value>
3978       </glib:signal>
3979       <glib:signal name="action-loaded-hook">
3980         <return-value transfer-ownership="full">
3981           <type name="none" c:type="void"/>
3982         </return-value>
3983       </glib:signal>
3984       <glib:signal name="action-lock">
3985         <return-value transfer-ownership="full">
3986           <type name="none" c:type="void"/>
3987         </return-value>
3988       </glib:signal>
3989       <glib:signal name="action-lock-hook">
3990         <return-value transfer-ownership="full">
3991           <type name="none" c:type="void"/>
3992         </return-value>
3993       </glib:signal>
3994       <glib:signal name="action-locked">
3995         <return-value transfer-ownership="full">
3996           <type name="none" c:type="void"/>
3997         </return-value>
3998       </glib:signal>
3999       <glib:signal name="action-purge">
4000         <return-value transfer-ownership="full">
4001           <type name="none" c:type="void"/>
4002         </return-value>
4003       </glib:signal>
4004       <glib:signal name="action-purge-hook">
4005         <return-value transfer-ownership="full">
4006           <type name="none" c:type="void"/>
4007         </return-value>
4008       </glib:signal>
4009       <glib:signal name="action-purged">
4010         <return-value transfer-ownership="full">
4011           <type name="none" c:type="void"/>
4012         </return-value>
4013       </glib:signal>
4014       <glib:signal name="action-unapprove">
4015         <return-value transfer-ownership="full">
4016           <type name="none" c:type="void"/>
4017         </return-value>
4018       </glib:signal>
4019       <glib:signal name="action-unapprove-hook">
4020         <return-value transfer-ownership="full">
4021           <type name="none" c:type="void"/>
4022         </return-value>
4023       </glib:signal>
4024       <glib:signal name="action-unapproved">
4025         <return-value transfer-ownership="full">
4026           <type name="none" c:type="void"/>
4027         </return-value>
4028       </glib:signal>
4029       <glib:signal name="action-unlock">
4030         <return-value transfer-ownership="full">
4031           <type name="none" c:type="void"/>
4032         </return-value>
4033       </glib:signal>
4034       <glib:signal name="action-unlock-hook">
4035         <return-value transfer-ownership="full">
4036           <type name="none" c:type="void"/>
4037         </return-value>
4038       </glib:signal>
4039       <glib:signal name="action-unlocked">
4040         <return-value transfer-ownership="full">
4041           <type name="none" c:type="void"/>
4042         </return-value>
4043       </glib:signal>
4044       <glib:signal name="action-update">
4045         <return-value transfer-ownership="full">
4046           <type name="none" c:type="void"/>
4047         </return-value>
4048       </glib:signal>
4049       <glib:signal name="action-update-hook">
4050         <return-value transfer-ownership="full">
4051           <type name="none" c:type="void"/>
4052         </return-value>
4053       </glib:signal>
4054       <glib:signal name="action-updated">
4055         <return-value transfer-ownership="full">
4056           <type name="none" c:type="void"/>
4057         </return-value>
4058       </glib:signal>
4059     </class>
4060     <record name="ObjectClass"
4061             c:type="MidgardObjectClass"
4062             glib:is-gtype-struct-for="Object">
4063       <field name="parent">
4064         <type name="DBObjectClass" c:type="MidgardDBObjectClass"/>
4065       </field>
4066       <field name="priv">
4067         <type name="ObjectClassPrivate" c:type="MidgardObjectClassPrivate*"/>
4068       </field>
4069       <field name="get_connection">
4070         <callback name="get_connection" c:type="get_connection">
4071           <return-value transfer-ownership="none">
4072             <type name="Connection" c:type="MidgardConnection*"/>
4073           </return-value>
4074           <parameters>
4075             <parameter transfer-ownership="none">
4076               <type name="DBObject" c:type="MidgardDBObject*"/>
4077             </parameter>
4078           </parameters>
4079         </callback>
4080       </field>
4081       <field name="action_create">
4082         <callback name="action_create" c:type="action_create">
4083           <return-value transfer-ownership="none">
4084             <type name="none" c:type="void"/>
4085           </return-value>
4086           <parameters>
4087             <parameter name="object" transfer-ownership="none">
4088               <type name="Object" c:type="MidgardObject*"/>
4089             </parameter>
4090           </parameters>
4091         </callback>
4092       </field>
4093       <field name="action_create_hook">
4094         <callback name="action_create_hook" c:type="action_create_hook">
4095           <return-value transfer-ownership="none">
4096             <type name="none" c:type="void"/>
4097           </return-value>
4098           <parameters>
4099             <parameter name="object" transfer-ownership="none">
4100               <type name="Object" c:type="MidgardObject*"/>
4101             </parameter>
4102           </parameters>
4103         </callback>
4104       </field>
4105       <field name="action_created">
4106         <callback name="action_created" c:type="action_created">
4107           <return-value transfer-ownership="none">
4108             <type name="none" c:type="void"/>
4109           </return-value>
4110           <parameters>
4111             <parameter name="object" transfer-ownership="none">
4112               <type name="Object" c:type="MidgardObject*"/>
4113             </parameter>
4114           </parameters>
4115         </callback>
4116       </field>
4117       <field name="action_update">
4118         <callback name="action_update" c:type="action_update">
4119           <return-value transfer-ownership="none">
4120             <type name="none" c:type="void"/>
4121           </return-value>
4122           <parameters>
4123             <parameter name="object" transfer-ownership="none">
4124               <type name="Object" c:type="MidgardObject*"/>
4125             </parameter>
4126           </parameters>
4127         </callback>
4128       </field>
4129       <field name="action_update_hook">
4130         <callback name="action_update_hook" c:type="action_update_hook">
4131           <return-value transfer-ownership="none">
4132             <type name="none" c:type="void"/>
4133           </return-value>
4134           <parameters>
4135             <parameter name="object" transfer-ownership="none">
4136               <type name="Object" c:type="MidgardObject*"/>
4137             </parameter>
4138           </parameters>
4139         </callback>
4140       </field>
4141       <field name="action_updated">
4142         <callback name="action_updated" c:type="action_updated">
4143           <return-value transfer-ownership="none">
4144             <type name="none" c:type="void"/>
4145           </return-value>
4146           <parameters>
4147             <parameter name="object" transfer-ownership="none">
4148               <type name="Object" c:type="MidgardObject*"/>
4149             </parameter>
4150           </parameters>
4151         </callback>
4152       </field>
4153       <field name="action_delete">
4154         <callback name="action_delete" c:type="action_delete">
4155           <return-value transfer-ownership="none">
4156             <type name="none" c:type="void"/>
4157           </return-value>
4158           <parameters>
4159             <parameter name="object" transfer-ownership="none">
4160               <type name="Object" c:type="MidgardObject*"/>
4161             </parameter>
4162           </parameters>
4163         </callback>
4164       </field>
4165       <field name="action_delete_hook">
4166         <callback name="action_delete_hook" c:type="action_delete_hook">
4167           <return-value transfer-ownership="none">
4168             <type name="none" c:type="void"/>
4169           </return-value>
4170           <parameters>
4171             <parameter name="object" transfer-ownership="none">
4172               <type name="Object" c:type="MidgardObject*"/>
4173             </parameter>
4174           </parameters>
4175         </callback>
4176       </field>
4177       <field name="action_deleted">
4178         <callback name="action_deleted" c:type="action_deleted">
4179           <return-value transfer-ownership="none">
4180             <type name="none" c:type="void"/>
4181           </return-value>
4182           <parameters>
4183             <parameter name="object" transfer-ownership="none">
4184               <type name="Object" c:type="MidgardObject*"/>
4185             </parameter>
4186           </parameters>
4187         </callback>
4188       </field>
4189       <field name="action_purge">
4190         <callback name="action_purge" c:type="action_purge">
4191           <return-value transfer-ownership="none">
4192             <type name="none" c:type="void"/>
4193           </return-value>
4194           <parameters>
4195             <parameter name="object" transfer-ownership="none">
4196               <type name="Object" c:type="MidgardObject*"/>
4197             </parameter>
4198           </parameters>
4199         </callback>
4200       </field>
4201       <field name="action_purge_hook">
4202         <callback name="action_purge_hook" c:type="action_purge_hook">
4203           <return-value transfer-ownership="none">
4204             <type name="none" c:type="void"/>
4205           </return-value>
4206           <parameters>
4207             <parameter name="object" transfer-ownership="none">
4208               <type name="Object" c:type="MidgardObject*"/>
4209             </parameter>
4210           </parameters>
4211         </callback>
4212       </field>
4213       <field name="action_purged">
4214         <callback name="action_purged" c:type="action_purged">
4215           <return-value transfer-ownership="none">
4216             <type name="none" c:type="void"/>
4217           </return-value>
4218           <parameters>
4219             <parameter name="object" transfer-ownership="none">
4220               <type name="Object" c:type="MidgardObject*"/>
4221             </parameter>
4222           </parameters>
4223         </callback>
4224       </field>
4225       <field name="action_import">
4226         <callback name="action_import" c:type="action_import">
4227           <return-value transfer-ownership="none">
4228             <type name="none" c:type="void"/>
4229           </return-value>
4230           <parameters>
4231             <parameter name="object" transfer-ownership="none">
4232               <type name="Object" c:type="MidgardObject*"/>
4233             </parameter>
4234           </parameters>
4235         </callback>
4236       </field>
4237       <field name="action_import_hook">
4238         <callback name="action_import_hook" c:type="action_import_hook">
4239           <return-value transfer-ownership="none">
4240             <type name="none" c:type="void"/>
4241           </return-value>
4242           <parameters>
4243             <parameter name="object" transfer-ownership="none">
4244               <type name="Object" c:type="MidgardObject*"/>
4245             </parameter>
4246           </parameters>
4247         </callback>
4248       </field>
4249       <field name="action_imported">
4250         <callback name="action_imported" c:type="action_imported">
4251           <return-value transfer-ownership="none">
4252             <type name="none" c:type="void"/>
4253           </return-value>
4254           <parameters>
4255             <parameter name="object" transfer-ownership="none">
4256               <type name="Object" c:type="MidgardObject*"/>
4257             </parameter>
4258           </parameters>
4259         </callback>
4260       </field>
4261       <field name="action_export">
4262         <callback name="action_export" c:type="action_export">
4263           <return-value transfer-ownership="none">
4264             <type name="none" c:type="void"/>
4265           </return-value>
4266           <parameters>
4267             <parameter name="object" transfer-ownership="none">
4268               <type name="Object" c:type="MidgardObject*"/>
4269             </parameter>
4270           </parameters>
4271         </callback>
4272       </field>
4273       <field name="action_export_hook">
4274         <callback name="action_export_hook" c:type="action_export_hook">
4275           <return-value transfer-ownership="none">
4276             <type name="none" c:type="void"/>
4277           </return-value>
4278           <parameters>
4279             <parameter name="object" transfer-ownership="none">
4280               <type name="Object" c:type="MidgardObject*"/>
4281             </parameter>
4282           </parameters>
4283         </callback>
4284       </field>
4285       <field name="action_exported">
4286         <callback name="action_exported" c:type="action_exported">
4287           <return-value transfer-ownership="none">
4288             <type name="none" c:type="void"/>
4289           </return-value>
4290           <parameters>
4291             <parameter name="object" transfer-ownership="none">
4292               <type name="Object" c:type="MidgardObject*"/>
4293             </parameter>
4294           </parameters>
4295         </callback>
4296       </field>
4297       <field name="action_loaded">
4298         <callback name="action_loaded" c:type="action_loaded">
4299           <return-value transfer-ownership="none">
4300             <type name="none" c:type="void"/>
4301           </return-value>
4302           <parameters>
4303             <parameter name="object" transfer-ownership="none">
4304               <type name="Object" c:type="MidgardObject*"/>
4305             </parameter>
4306           </parameters>
4307         </callback>
4308       </field>
4309       <field name="action_loaded_hook">
4310         <callback name="action_loaded_hook" c:type="action_loaded_hook">
4311           <return-value transfer-ownership="none">
4312             <type name="none" c:type="void"/>
4313           </return-value>
4314           <parameters>
4315             <parameter name="object" transfer-ownership="none">
4316               <type name="Object" c:type="MidgardObject*"/>
4317             </parameter>
4318           </parameters>
4319         </callback>
4320       </field>
4321       <field name="action_approve">
4322         <callback name="action_approve" c:type="action_approve">
4323           <return-value transfer-ownership="none">
4324             <type name="none" c:type="void"/>
4325           </return-value>
4326           <parameters>
4327             <parameter name="object" transfer-ownership="none">
4328               <type name="Object" c:type="MidgardObject*"/>
4329             </parameter>
4330           </parameters>
4331         </callback>
4332       </field>
4333       <field name="action_approve_hook">
4334         <callback name="action_approve_hook" c:type="action_approve_hook">
4335           <return-value transfer-ownership="none">
4336             <type name="none" c:type="void"/>
4337           </return-value>
4338           <parameters>
4339             <parameter name="object" transfer-ownership="none">
4340               <type name="Object" c:type="MidgardObject*"/>
4341             </parameter>
4342           </parameters>
4343         </callback>
4344       </field>
4345       <field name="action_approved">
4346         <callback name="action_approved" c:type="action_approved">
4347           <return-value transfer-ownership="none">
4348             <type name="none" c:type="void"/>
4349           </return-value>
4350           <parameters>
4351             <parameter name="object" transfer-ownership="none">
4352               <type name="Object" c:type="MidgardObject*"/>
4353             </parameter>
4354           </parameters>
4355         </callback>
4356       </field>
4357       <field name="action_unapprove">
4358         <callback name="action_unapprove" c:type="action_unapprove">
4359           <return-value transfer-ownership="none">
4360             <type name="none" c:type="void"/>
4361           </return-value>
4362           <parameters>
4363             <parameter name="object" transfer-ownership="none">
4364               <type name="Object" c:type="MidgardObject*"/>
4365             </parameter>
4366           </parameters>
4367         </callback>
4368       </field>
4369       <field name="action_unapprove_hook">
4370         <callback name="action_unapprove_hook" c:type="action_unapprove_hook">
4371           <return-value transfer-ownership="none">
4372             <type name="none" c:type="void"/>
4373           </return-value>
4374           <parameters>
4375             <parameter name="object" transfer-ownership="none">
4376               <type name="Object" c:type="MidgardObject*"/>
4377             </parameter>
4378           </parameters>
4379         </callback>
4380       </field>
4381       <field name="action_unapproved">
4382         <callback name="action_unapproved" c:type="action_unapproved">
4383           <return-value transfer-ownership="none">
4384             <type name="none" c:type="void"/>
4385           </return-value>
4386           <parameters>
4387             <parameter name="object" transfer-ownership="none">
4388               <type name="Object" c:type="MidgardObject*"/>
4389             </parameter>
4390           </parameters>
4391         </callback>
4392       </field>
4393       <field name="action_lock">
4394         <callback name="action_lock" c:type="action_lock">
4395           <return-value transfer-ownership="none">
4396             <type name="none" c:type="void"/>
4397           </return-value>
4398           <parameters>
4399             <parameter name="object" transfer-ownership="none">
4400               <type name="Object" c:type="MidgardObject*"/>
4401             </parameter>
4402           </parameters>
4403         </callback>
4404       </field>
4405       <field name="action_lock_hook">
4406         <callback name="action_lock_hook" c:type="action_lock_hook">
4407           <return-value transfer-ownership="none">
4408             <type name="none" c:type="void"/>
4409           </return-value>
4410           <parameters>
4411             <parameter name="object" transfer-ownership="none">
4412               <type name="Object" c:type="MidgardObject*"/>
4413             </parameter>
4414           </parameters>
4415         </callback>
4416       </field>
4417       <field name="action_locked">
4418         <callback name="action_locked" c:type="action_locked">
4419           <return-value transfer-ownership="none">
4420             <type name="none" c:type="void"/>
4421           </return-value>
4422           <parameters>
4423             <parameter name="object" transfer-ownership="none">
4424               <type name="Object" c:type="MidgardObject*"/>
4425             </parameter>
4426           </parameters>
4427         </callback>
4428       </field>
4429       <field name="action_unlock">
4430         <callback name="action_unlock" c:type="action_unlock">
4431           <return-value transfer-ownership="none">
4432             <type name="none" c:type="void"/>
4433           </return-value>
4434           <parameters>
4435             <parameter name="object" transfer-ownership="none">
4436               <type name="Object" c:type="MidgardObject*"/>
4437             </parameter>
4438           </parameters>
4439         </callback>
4440       </field>
4441       <field name="action_unlock_hook">
4442         <callback name="action_unlock_hook" c:type="action_unlock_hook">
4443           <return-value transfer-ownership="none">
4444             <type name="none" c:type="void"/>
4445           </return-value>
4446           <parameters>
4447             <parameter name="object" transfer-ownership="none">
4448               <type name="Object" c:type="MidgardObject*"/>
4449             </parameter>
4450           </parameters>
4451         </callback>
4452       </field>
4453       <field name="action_unlocked">
4454         <callback name="action_unlocked" c:type="action_unlocked">
4455           <return-value transfer-ownership="none">
4456             <type name="none" c:type="void"/>
4457           </return-value>
4458           <parameters>
4459             <parameter name="object" transfer-ownership="none">
4460               <type name="Object" c:type="MidgardObject*"/>
4461             </parameter>
4462           </parameters>
4463         </callback>
4464       </field>
4465       <field name="signal_action_loaded">
4466         <type name="uint" c:type="guint"/>
4467       </field>
4468       <field name="signal_action_loaded_hook">
4469         <type name="uint" c:type="guint"/>
4470       </field>
4471       <field name="signal_action_update">
4472         <type name="uint" c:type="guint"/>
4473       </field>
4474       <field name="signal_action_update_hook">
4475         <type name="uint" c:type="guint"/>
4476       </field>
4477       <field name="signal_action_updated">
4478         <type name="uint" c:type="guint"/>
4479       </field>
4480       <field name="signal_action_create">
4481         <type name="uint" c:type="guint"/>
4482       </field>
4483       <field name="signal_action_create_hook">
4484         <type name="uint" c:type="guint"/>
4485       </field>
4486       <field name="signal_action_created">
4487         <type name="uint" c:type="guint"/>
4488       </field>
4489       <field name="signal_action_delete">
4490         <type name="uint" c:type="guint"/>
4491       </field>
4492       <field name="signal_action_delete_hook">
4493         <type name="uint" c:type="guint"/>
4494       </field>
4495       <field name="signal_action_deleted">
4496         <type name="uint" c:type="guint"/>
4497       </field>
4498       <field name="signal_action_purge">
4499         <type name="uint" c:type="guint"/>
4500       </field>
4501       <field name="signal_action_purge_hook">
4502         <type name="uint" c:type="guint"/>
4503       </field>
4504       <field name="signal_action_purged">
4505         <type name="uint" c:type="guint"/>
4506       </field>
4507       <field name="signal_action_import">
4508         <type name="uint" c:type="guint"/>
4509       </field>
4510       <field name="signal_action_import_hook">
4511         <type name="uint" c:type="guint"/>
4512       </field>
4513       <field name="signal_action_imported">
4514         <type name="uint" c:type="guint"/>
4515       </field>
4516       <field name="signal_action_export">
4517         <type name="uint" c:type="guint"/>
4518       </field>
4519       <field name="signal_action_export_hook">
4520         <type name="uint" c:type="guint"/>
4521       </field>
4522       <field name="signal_action_exported">
4523         <type name="uint" c:type="guint"/>
4524       </field>
4525       <field name="signal_action_approve">
4526         <type name="uint" c:type="guint"/>
4527       </field>
4528       <field name="signal_action_approve_hook">
4529         <type name="uint" c:type="guint"/>
4530       </field>
4531       <field name="signal_action_approved">
4532         <type name="uint" c:type="guint"/>
4533       </field>
4534       <field name="signal_action_unapprove">
4535         <type name="uint" c:type="guint"/>
4536       </field>
4537       <field name="signal_action_unapprove_hook">
4538         <type name="uint" c:type="guint"/>
4539       </field>
4540       <field name="signal_action_unapproved">
4541         <type name="uint" c:type="guint"/>
4542       </field>
4543       <field name="signal_action_lock">
4544         <type name="uint" c:type="guint"/>
4545       </field>
4546       <field name="signal_action_lock_hook">
4547         <type name="uint" c:type="guint"/>
4548       </field>
4549       <field name="signal_action_locked">
4550         <type name="uint" c:type="guint"/>
4551       </field>
4552       <field name="signal_action_unlock">
4553         <type name="uint" c:type="guint"/>
4554       </field>
4555       <field name="signal_action_unlock_hook">
4556         <type name="uint" c:type="guint"/>
4557       </field>
4558       <field name="signal_action_unlocked">
4559         <type name="uint" c:type="guint"/>
4560       </field>
4561     </record>
4562     <record name="ObjectClassPrivate" c:type="MidgardObjectClassPrivate">
4563     </record>
4564     <record name="ObjectPrivate" c:type="MidgardObjectPrivate">
4565     </record>
4566     <constant name="PACKAGE_NAME" value="midgard2">
4567       <type name="utf8"/>
4568     </constant>
4569     <class name="ParamLongtext"
4570            c:type="MidgardParamLongtext"
4571            parent="GObject.Object"
4572            glib:type-name="MidgardParamLongtext"
4573            glib:get-type="midgard_param_longtext_get_type"
4574            glib:fundamental="1">
4575     </class>
4576     <record name="ParamSpecLongtext" c:type="MidgardParamSpecLongtext">
4577     </record>
4578     <class name="QueryBuilder"
4579            c:type="MidgardQueryBuilder"
4580            parent="GObject.Object"
4581            glib:type-name="MidgardQueryBuilder"
4582            glib:get-type="midgard_query_builder_get_type"
4583            glib:type-struct="QueryBuilderClass">
4584       <constructor name="new" c:identifier="midgard_query_builder_new">
4585         <return-value transfer-ownership="full">
4586           <type name="QueryBuilder" c:type="MidgardQueryBuilder*"/>
4587         </return-value>
4588         <parameters>
4589           <parameter name="mgd" transfer-ownership="none">
4590             <type name="Connection" c:type="MidgardConnection*"/>
4591           </parameter>
4592           <parameter name="classname" transfer-ownership="none">
4593             <type name="utf8" c:type="gchar*"/>
4594           </parameter>
4595         </parameters>
4596       </constructor>
4597       <virtual-method name="add_constraint" invoker="add_constraint">
4598         <return-value transfer-ownership="none">
4599           <type name="boolean" c:type="gboolean"/>
4600         </return-value>
4601         <parameters>
4602           <parameter name="name" transfer-ownership="none">
4603             <type name="utf8" c:type="gchar*"/>
4604           </parameter>
4605           <parameter name="op" transfer-ownership="none">
4606             <type name="utf8" c:type="gchar*"/>
4607           </parameter>
4608           <parameter name="value" transfer-ownership="none">
4609             <type name="GObject.Value" c:type="GValue*"/>
4610           </parameter>
4611         </parameters>
4612       </virtual-method>
4613       <virtual-method name="add_constraint_with_property"
4614                       invoker="add_constraint_with_property">
4615         <doc xml:whitespace="preserve">Adds named property constraint to the given query builder.
4616 Unlike add_constraint method, this one accepts property name
4617 instead of scalar value. The difference is that with add_constraint
4618 method you can compare property with particular value, while using 
4619 add_constraint_with_property method you can compare two different 
4620 properties without any need to know their values. 
4621 For example, you should use this method if you want to select only 
4622 those objects which has been revised after publication time, and particular 
4623 date doesn't matter.
4624 &lt;example&gt;
4625 &lt;programlisting&gt;
4626 midgard_query_builder_add_constraint_with_property(builder, "metadata.revised", "&gt;", "metadata.published");
4627 &lt;/programlisting&gt;
4628 &lt;/example&gt;</doc>
4629         <return-value transfer-ownership="none">
4630           <doc xml:whitespace="preserve">%TRUE if properties' names are valid, %FALSE otherwise</doc>
4631           <type name="boolean" c:type="gboolean"/>
4632         </return-value>
4633         <parameters>
4634           <parameter name="property_a" transfer-ownership="none">
4635             <doc xml:whitespace="preserve">property name</doc>
4636             <type name="utf8" c:type="gchar*"/>
4637           </parameter>
4638           <parameter name="op" transfer-ownership="none">
4639             <doc xml:whitespace="preserve">comparison operator</doc>
4640             <type name="utf8" c:type="gchar*"/>
4641           </parameter>
4642           <parameter name="property_b" transfer-ownership="none">
4643             <doc xml:whitespace="preserve">property name</doc>
4644             <type name="utf8" c:type="gchar*"/>
4645           </parameter>
4646         </parameters>
4647       </virtual-method>
4648       <virtual-method name="begin_group" invoker="begin_group">
4649         <doc xml:whitespace="preserve">Starts a constraint group of the given type. A conjunctive constraint
4650 group @type (AND) requires that all component constraints match the
4651 queried objects, while a disjunctive group @type (OR) requires just
4652 one of the component constraints to match.</doc>
4653         <return-value transfer-ownership="none">
4654           <doc xml:whitespace="preserve">%TRUE if the @type is valid, %FALSE otherwise</doc>
4655           <type name="boolean" c:type="gboolean"/>
4656         </return-value>
4657         <parameters>
4658           <parameter name="type" transfer-ownership="none">
4659             <doc xml:whitespace="preserve">group type</doc>
4660             <type name="utf8" c:type="gchar*"/>
4661           </parameter>
4662         </parameters>
4663       </virtual-method>
4664       <virtual-method name="end_group" invoker="end_group">
4665         <doc xml:whitespace="preserve">Closes the most recently opened constraint group. The client should
4666 ensure proper nesting by closing all constraint groups before the
4667 containing query is executed.
4668 open constraint groups were found</doc>
4669         <return-value transfer-ownership="none">
4670           <doc xml:whitespace="preserve">%TRUE if a constraint group was closed, or %FALSE if no</doc>
4671           <type name="boolean" c:type="gboolean"/>
4672         </return-value>
4673       </virtual-method>
4674       <virtual-method name="add_order" invoker="add_order">
4675         <doc xml:whitespace="preserve">Adds an ordering constraint to the query. An ordering constraint consists
4676 of a property name and a sort direction. The objects returned by this
4677 query will be sorted by the given property in the given direction
4678 (ascending or descending). Multiple ordering constraints are applied in
4679 the order they were added.
4680 Property name pattern is described in midgard_query_builder_add_constraint()</doc>
4681         <return-value transfer-ownership="none">
4682           <doc xml:whitespace="preserve">%TRUE if the ordering constraint is valid, %FALSE otherwise</doc>
4683           <type name="boolean" c:type="gboolean"/>
4684         </return-value>
4685         <parameters>
4686           <parameter name="name" transfer-ownership="none">
4687             <doc xml:whitespace="preserve">property name</doc>
4688             <type name="utf8" c:type="gchar*"/>
4689           </parameter>
4690           <parameter name="dir" transfer-ownership="none">
4691             <doc xml:whitespace="preserve">sort direction</doc>
4692             <type name="utf8" c:type="gchar*"/>
4693           </parameter>
4694         </parameters>
4695       </virtual-method>
4696       <virtual-method name="set_offset" invoker="set_offset">
4697         <doc xml:whitespace="preserve">Sets the start @offset of the objects to return when the query is executed.
4698 The start @offset is applied after all the matching objects have been
4699 identified and sorted according to the given ordering constraints. The
4700 first @offset objects are skipped and only the remaining (if any) objects
4701 are returned to the client.
4702 Setting a start offset is normally only reasonable when one or more
4703 ordering constraints are applied to the query. A start offset is usually
4704 accompanied by a limit setting.</doc>
4705         <return-value transfer-ownership="none">
4706           <type name="none" c:type="void"/>
4707         </return-value>
4708         <parameters>
4709           <parameter name="offset" transfer-ownership="none">
4710             <doc xml:whitespace="preserve">query offset</doc>
4711             <type name="uint" c:type="guint"/>
4712           </parameter>
4713         </parameters>
4714       </virtual-method>
4715       <virtual-method name="set_limit" invoker="set_limit">
4716         <doc xml:whitespace="preserve">Sets the maximum number of objects to return when the query is executed.
4717 A query will by default return all matching objects, but the @limit setting
4718 can be used to restrict the potentially large number of returned objects.
4719 The @limit is applied only after the matching objects have been identified
4720 and sorted and after the optional start offset has been applied.
4721 Setting a @limit on the number of returned objects is normally only
4722 reasonable when one or more ordering constraints and optionally an offset
4723 setting are applied to the query.</doc>
4724         <return-value transfer-ownership="none">
4725           <type name="none" c:type="void"/>
4726         </return-value>
4727         <parameters>
4728           <parameter name="limit" transfer-ownership="none">
4729             <doc xml:whitespace="preserve">query limit</doc>
4730             <type name="uint" c:type="guint"/>
4731           </parameter>
4732         </parameters>
4733       </virtual-method>
4734       <virtual-method name="include_deleted" invoker="include_deleted">
4735         <doc xml:whitespace="preserve">Query all objects, deleted and undeleted.</doc>
4736         <return-value transfer-ownership="none">
4737           <type name="none" c:type="void"/>
4738         </return-value>
4739       </virtual-method>
4740       <virtual-method name="execute" invoker="execute">
4741         <doc xml:whitespace="preserve">Executes the built query.
4742 Objects in returned array are #MidgardDBObject derived ones,
4743 and typecasted to base GObject. You can safely typecast them to 
4744 the type, which #MidgardQueryBuilder has been initialized for.
4745 In case of any error, #MidgardConnection error is set.</doc>
4746         <return-value transfer-ownership="full">
4747           <doc xml:whitespace="preserve">NULL terminated array of objects, or NULL if none found</doc>
4748           <type name="GObject.Object" c:type="GObject**"/>
4749         </return-value>
4750         <parameters>
4751           <parameter name="n_objects"
4752                      direction="out"
4753                      caller-allocates="0"
4754                      transfer-ownership="full">
4755             <doc xml:whitespace="preserve">a pointer to store number of returned objects</doc>
4756             <type name="uint" c:type="guint*"/>
4757           </parameter>
4758         </parameters>
4759       </virtual-method>
4760       <virtual-method name="count" invoker="count">
4761         <return-value transfer-ownership="none">
4762           <type name="uint" c:type="guint"/>
4763         </return-value>
4764       </virtual-method>
4765       <method name="add_constraint"
4766               c:identifier="midgard_query_builder_add_constraint">
4767         <return-value transfer-ownership="none">
4768           <type name="boolean" c:type="gboolean"/>
4769         </return-value>
4770         <parameters>
4771           <parameter name="name" transfer-ownership="none">
4772             <type name="utf8" c:type="gchar*"/>
4773           </parameter>
4774           <parameter name="op" transfer-ownership="none">
4775             <type name="utf8" c:type="gchar*"/>
4776           </parameter>
4777           <parameter name="value" transfer-ownership="none">
4778             <type name="GObject.Value" c:type="GValue*"/>
4779           </parameter>
4780         </parameters>
4781       </method>
4782       <method name="add_constraint_with_property"
4783               c:identifier="midgard_query_builder_add_constraint_with_property">
4784         <doc xml:whitespace="preserve">Adds named property constraint to the given query builder.
4785 Unlike add_constraint method, this one accepts property name
4786 instead of scalar value. The difference is that with add_constraint
4787 method you can compare property with particular value, while using 
4788 add_constraint_with_property method you can compare two different 
4789 properties without any need to know their values. 
4790 For example, you should use this method if you want to select only 
4791 those objects which has been revised after publication time, and particular 
4792 date doesn't matter.
4793 &lt;example&gt;
4794 &lt;programlisting&gt;
4795 midgard_query_builder_add_constraint_with_property(builder, "metadata.revised", "&gt;", "metadata.published");
4796 &lt;/programlisting&gt;
4797 &lt;/example&gt;</doc>
4798         <return-value transfer-ownership="none">
4799           <doc xml:whitespace="preserve">%TRUE if properties' names are valid, %FALSE otherwise</doc>
4800           <type name="boolean" c:type="gboolean"/>
4801         </return-value>
4802         <parameters>
4803           <parameter name="property_a" transfer-ownership="none">
4804             <doc xml:whitespace="preserve">property name</doc>
4805             <type name="utf8" c:type="gchar*"/>
4806           </parameter>
4807           <parameter name="op" transfer-ownership="none">
4808             <doc xml:whitespace="preserve">comparison operator</doc>
4809             <type name="utf8" c:type="gchar*"/>
4810           </parameter>
4811           <parameter name="property_b" transfer-ownership="none">
4812             <doc xml:whitespace="preserve">property name</doc>
4813             <type name="utf8" c:type="gchar*"/>
4814           </parameter>
4815         </parameters>
4816       </method>
4817       <method name="begin_group"
4818               c:identifier="midgard_query_builder_begin_group">
4819         <doc xml:whitespace="preserve">Starts a constraint group of the given type. A conjunctive constraint
4820 group @type (AND) requires that all component constraints match the
4821 queried objects, while a disjunctive group @type (OR) requires just
4822 one of the component constraints to match.</doc>
4823         <return-value transfer-ownership="none">
4824           <doc xml:whitespace="preserve">%TRUE if the @type is valid, %FALSE otherwise</doc>
4825           <type name="boolean" c:type="gboolean"/>
4826         </return-value>
4827         <parameters>
4828           <parameter name="type" transfer-ownership="none">
4829             <doc xml:whitespace="preserve">group type</doc>
4830             <type name="utf8" c:type="gchar*"/>
4831           </parameter>
4832         </parameters>
4833       </method>
4834       <method name="end_group" c:identifier="midgard_query_builder_end_group">
4835         <doc xml:whitespace="preserve">Closes the most recently opened constraint group. The client should
4836 ensure proper nesting by closing all constraint groups before the
4837 containing query is executed.
4838 open constraint groups were found</doc>
4839         <return-value transfer-ownership="none">
4840           <doc xml:whitespace="preserve">%TRUE if a constraint group was closed, or %FALSE if no</doc>
4841           <type name="boolean" c:type="gboolean"/>
4842         </return-value>
4843       </method>
4844       <method name="add_order" c:identifier="midgard_query_builder_add_order">
4845         <doc xml:whitespace="preserve">Adds an ordering constraint to the query. An ordering constraint consists
4846 of a property name and a sort direction. The objects returned by this
4847 query will be sorted by the given property in the given direction
4848 (ascending or descending). Multiple ordering constraints are applied in
4849 the order they were added.
4850 Property name pattern is described in midgard_query_builder_add_constraint()</doc>
4851         <return-value transfer-ownership="none">
4852           <doc xml:whitespace="preserve">%TRUE if the ordering constraint is valid, %FALSE otherwise</doc>
4853           <type name="boolean" c:type="gboolean"/>
4854         </return-value>
4855         <parameters>
4856           <parameter name="name" transfer-ownership="none">
4857             <doc xml:whitespace="preserve">property name</doc>
4858             <type name="utf8" c:type="gchar*"/>
4859           </parameter>
4860           <parameter name="dir" transfer-ownership="none">
4861             <doc xml:whitespace="preserve">sort direction</doc>
4862             <type name="utf8" c:type="gchar*"/>
4863           </parameter>
4864         </parameters>
4865       </method>
4866       <method name="set_offset"
4867               c:identifier="midgard_query_builder_set_offset">
4868         <doc xml:whitespace="preserve">Sets the start @offset of the objects to return when the query is executed.
4869 The start @offset is applied after all the matching objects have been
4870 identified and sorted according to the given ordering constraints. The
4871 first @offset objects are skipped and only the remaining (if any) objects
4872 are returned to the client.
4873 Setting a start offset is normally only reasonable when one or more
4874 ordering constraints are applied to the query. A start offset is usually
4875 accompanied by a limit setting.</doc>
4876         <return-value transfer-ownership="none">
4877           <type name="none" c:type="void"/>
4878         </return-value>
4879         <parameters>
4880           <parameter name="offset" transfer-ownership="none">
4881             <doc xml:whitespace="preserve">query offset</doc>
4882             <type name="uint" c:type="guint"/>
4883           </parameter>
4884         </parameters>
4885       </method>
4886       <method name="set_limit" c:identifier="midgard_query_builder_set_limit">
4887         <doc xml:whitespace="preserve">Sets the maximum number of objects to return when the query is executed.
4888 A query will by default return all matching objects, but the @limit setting
4889 can be used to restrict the potentially large number of returned objects.
4890 The @limit is applied only after the matching objects have been identified
4891 and sorted and after the optional start offset has been applied.
4892 Setting a @limit on the number of returned objects is normally only
4893 reasonable when one or more ordering constraints and optionally an offset
4894 setting are applied to the query.</doc>
4895         <return-value transfer-ownership="none">
4896           <type name="none" c:type="void"/>
4897         </return-value>
4898         <parameters>
4899           <parameter name="limit" transfer-ownership="none">
4900             <doc xml:whitespace="preserve">query limit</doc>
4901             <type name="uint" c:type="guint"/>
4902           </parameter>
4903         </parameters>
4904       </method>
4905       <method name="execute" c:identifier="midgard_query_builder_execute">
4906         <doc xml:whitespace="preserve">Executes the built query.
4907 Objects in returned array are #MidgardDBObject derived ones,
4908 and typecasted to base GObject. You can safely typecast them to 
4909 the type, which #MidgardQueryBuilder has been initialized for.
4910 In case of any error, #MidgardConnection error is set.</doc>
4911         <return-value transfer-ownership="full">
4912           <doc xml:whitespace="preserve">NULL terminated array of objects, or NULL if none found</doc>
4913           <type name="GObject.Object" c:type="GObject**"/>
4914         </return-value>
4915         <parameters>
4916           <parameter name="n_objects"
4917                      direction="out"
4918                      caller-allocates="0"
4919                      transfer-ownership="full">
4920             <doc xml:whitespace="preserve">a pointer to store number of returned objects</doc>
4921             <type name="uint" c:type="guint*"/>
4922           </parameter>
4923         </parameters>
4924       </method>
4925       <method name="count" c:identifier="midgard_query_builder_count">
4926         <return-value transfer-ownership="none">
4927           <type name="uint" c:type="guint"/>
4928         </return-value>
4929       </method>
4930       <method name="get_type_name"
4931               c:identifier="midgard_query_builder_get_type_name">
4932         <doc xml:whitespace="preserve">Returns type name of the type which is currently used by Query Builder.
4933 This function should be used on language binding level , when internal
4934 Query Builder's instance is already created and language binding object 
4935 should be instanciated.
4936 Returned type name is a pointer and is owned by GLib system.
4937 Caller shouldn't free it.</doc>
4938         <return-value transfer-ownership="none">
4939           <doc xml:whitespace="preserve">name of the class, which query builder is initialized for.</doc>
4940           <type name="utf8" c:type="gchar*"/>
4941         </return-value>
4942       </method>
4943       <method name="include_deleted"
4944               c:identifier="midgard_query_builder_include_deleted">
4945         <doc xml:whitespace="preserve">Query all objects, deleted and undeleted.</doc>
4946         <return-value transfer-ownership="none">
4947           <type name="none" c:type="void"/>
4948         </return-value>
4949       </method>
4950       <field name="parent">
4951         <type name="GObject.Object" c:type="GObject"/>
4952       </field>
4953       <field name="priv">
4954         <type name="QueryBuilderPrivate" c:type="MidgardQueryBuilderPrivate*"/>
4955       </field>
4956       <glib:signal name="execution-end">
4957         <return-value transfer-ownership="full">
4958           <type name="none" c:type="void"/>
4959         </return-value>
4960       </glib:signal>
4961       <glib:signal name="execution-start">
4962         <return-value transfer-ownership="full">
4963           <type name="none" c:type="void"/>
4964         </return-value>
4965       </glib:signal>
4966     </class>
4967     <record name="QueryBuilderClass"
4968             c:type="MidgardQueryBuilderClass"
4969             glib:is-gtype-struct-for="QueryBuilder">
4970       <field name="parent">
4971         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
4972       </field>
4973       <field name="add_constraint">
4974         <callback name="add_constraint" c:type="add_constraint">
4975           <return-value transfer-ownership="none">
4976             <type name="boolean" c:type="gboolean"/>
4977           </return-value>
4978           <parameters>
4979             <parameter name="builder" transfer-ownership="none">
4980               <type name="QueryBuilder" c:type="MidgardQueryBuilder*"/>
4981             </parameter>
4982             <parameter name="name" transfer-ownership="none">
4983               <type name="utf8" c:type="gchar*"/>
4984             </parameter>
4985             <parameter name="op" transfer-ownership="none">
4986               <type name="utf8" c:type="gchar*"/>
4987             </parameter>
4988             <parameter name="value" transfer-ownership="none">
4989               <type name="GObject.Value" c:type="GValue*"/>
4990             </parameter>
4991           </parameters>
4992         </callback>
4993       </field>
4994       <field name="add_constraint_with_property">
4995         <callback name="add_constraint_with_property"
4996                   c:type="add_constraint_with_property">
4997           <return-value transfer-ownership="none">
4998             <doc xml:whitespace="preserve">%TRUE if properties' names are valid, %FALSE otherwise</doc>
4999             <type name="boolean" c:type="gboolean"/>
5000           </return-value>
5001           <parameters>
5002             <parameter name="builder" transfer-ownership="none">
5003               <type name="QueryBuilder" c:type="MidgardQueryBuilder*"/>
5004             </parameter>
5005             <parameter name="property_a" transfer-ownership="none">
5006               <doc xml:whitespace="preserve">property name</doc>
5007               <type name="utf8" c:type="gchar*"/>
5008             </parameter>
5009             <parameter name="op" transfer-ownership="none">
5010               <doc xml:whitespace="preserve">comparison operator</doc>
5011               <type name="utf8" c:type="gchar*"/>
5012             </parameter>
5013             <parameter name="property_b" transfer-ownership="none">
5014               <doc xml:whitespace="preserve">property name</doc>
5015               <type name="utf8" c:type="gchar*"/>
5016             </parameter>
5017           </parameters>
5018         </callback>
5019       </field>
5020       <field name="begin_group">
5021         <callback name="begin_group" c:type="begin_group">
5022           <return-value transfer-ownership="none">
5023             <doc xml:whitespace="preserve">%TRUE if the @type is valid, %FALSE otherwise</doc>
5024             <type name="boolean" c:type="gboolean"/>
5025           </return-value>
5026           <parameters>
5027             <parameter name="builder" transfer-ownership="none">
5028               <type name="QueryBuilder" c:type="MidgardQueryBuilder*"/>
5029             </parameter>
5030             <parameter name="type" transfer-ownership="none">
5031               <doc xml:whitespace="preserve">group type</doc>
5032               <type name="utf8" c:type="gchar*"/>
5033             </parameter>
5034           </parameters>
5035         </callback>
5036       </field>
5037       <field name="end_group">
5038         <callback name="end_group" c:type="end_group">
5039           <return-value transfer-ownership="none">
5040             <doc xml:whitespace="preserve">%TRUE if a constraint group was closed, or %FALSE if no</doc>
5041             <type name="boolean" c:type="gboolean"/>
5042           </return-value>
5043           <parameters>
5044             <parameter name="builder" transfer-ownership="none">
5045               <type name="QueryBuilder" c:type="MidgardQueryBuilder*"/>
5046             </parameter>
5047           </parameters>
5048         </callback>
5049       </field>
5050       <field name="add_order">
5051         <callback name="add_order" c:type="add_order">
5052           <return-value transfer-ownership="none">
5053             <doc xml:whitespace="preserve">%TRUE if the ordering constraint is valid, %FALSE otherwise</doc>
5054             <type name="boolean" c:type="gboolean"/>
5055           </return-value>
5056           <parameters>
5057             <parameter name="builder" transfer-ownership="none">
5058               <type name="QueryBuilder" c:type="MidgardQueryBuilder*"/>
5059             </parameter>
5060             <parameter name="name" transfer-ownership="none">
5061               <doc xml:whitespace="preserve">property name</doc>
5062               <type name="utf8" c:type="gchar*"/>
5063             </parameter>
5064             <parameter name="dir" transfer-ownership="none">
5065               <doc xml:whitespace="preserve">sort direction</doc>
5066               <type name="utf8" c:type="gchar*"/>
5067             </parameter>
5068           </parameters>
5069         </callback>
5070       </field>
5071       <field name="set_offset">
5072         <callback name="set_offset" c:type="set_offset">
5073           <return-value transfer-ownership="none">
5074             <type name="none" c:type="void"/>
5075           </return-value>
5076           <parameters>
5077             <parameter name="builder" transfer-ownership="none">
5078               <type name="QueryBuilder" c:type="MidgardQueryBuilder*"/>
5079             </parameter>
5080             <parameter name="offset" transfer-ownership="none">
5081               <doc xml:whitespace="preserve">query offset</doc>
5082               <type name="uint" c:type="guint"/>
5083             </parameter>
5084           </parameters>
5085         </callback>
5086       </field>
5087       <field name="set_limit">
5088         <callback name="set_limit" c:type="set_limit">
5089           <return-value transfer-ownership="none">
5090             <type name="none" c:type="void"/>
5091           </return-value>
5092           <parameters>
5093             <parameter name="builder" transfer-ownership="none">
5094               <type name="QueryBuilder" c:type="MidgardQueryBuilder*"/>
5095             </parameter>
5096             <parameter name="limit" transfer-ownership="none">
5097               <doc xml:whitespace="preserve">query limit</doc>
5098               <type name="uint" c:type="guint"/>
5099             </parameter>
5100           </parameters>
5101         </callback>
5102       </field>
5103       <field name="include_deleted">
5104         <callback name="include_deleted" c:type="include_deleted">
5105           <return-value transfer-ownership="none">
5106             <type name="none" c:type="void"/>
5107           </return-value>
5108           <parameters>
5109             <parameter name="builder" transfer-ownership="none">
5110               <type name="QueryBuilder" c:type="MidgardQueryBuilder*"/>
5111             </parameter>
5112           </parameters>
5113         </callback>
5114       </field>
5115       <field name="execute">
5116         <callback name="execute" c:type="execute">
5117           <return-value transfer-ownership="full">
5118             <doc xml:whitespace="preserve">NULL terminated array of objects, or NULL if none found</doc>
5119             <type name="GObject.Object" c:type="GObject**"/>
5120           </return-value>
5121           <parameters>
5122             <parameter name="builder" transfer-ownership="none">
5123               <type name="QueryBuilder" c:type="MidgardQueryBuilder*"/>
5124             </parameter>
5125             <parameter name="n_objects"
5126                        direction="out"
5127                        caller-allocates="0"
5128                        transfer-ownership="full">
5129               <doc xml:whitespace="preserve">a pointer to store number of returned objects</doc>
5130               <type name="uint" c:type="guint*"/>
5131             </parameter>
5132           </parameters>
5133         </callback>
5134       </field>
5135       <field name="count">
5136         <callback name="count" c:type="count">
5137           <return-value transfer-ownership="none">
5138             <type name="uint" c:type="guint"/>
5139           </return-value>
5140           <parameters>
5141             <parameter name="builder" transfer-ownership="none">
5142               <type name="QueryBuilder" c:type="MidgardQueryBuilder*"/>
5143             </parameter>
5144           </parameters>
5145         </callback>
5146       </field>
5147       <field name="execution_start">
5148         <callback name="execution_start" c:type="execution_start">
5149           <return-value transfer-ownership="none">
5150             <type name="none" c:type="void"/>
5151           </return-value>
5152           <parameters>
5153             <parameter name="object" transfer-ownership="none">
5154               <type name="GObject.Object" c:type="GObject*"/>
5155             </parameter>
5156           </parameters>
5157         </callback>
5158       </field>
5159       <field name="execution_end">
5160         <callback name="execution_end" c:type="execution_end">
5161           <return-value transfer-ownership="none">
5162             <type name="none" c:type="void"/>
5163           </return-value>
5164           <parameters>
5165             <parameter name="object" transfer-ownership="none">
5166               <type name="GObject.Object" c:type="GObject*"/>
5167             </parameter>
5168           </parameters>
5169         </callback>
5170       </field>
5171       <field name="signal_id_execution_start">
5172         <type name="uint" c:type="guint"/>
5173       </field>
5174       <field name="signal_id_execution_end">
5175         <type name="uint" c:type="guint"/>
5176       </field>
5177     </record>
5178     <record name="QueryBuilderPrivate" c:type="MidgardQueryBuilderPrivate">
5179     </record>
5180     <class name="QueryConstraint"
5181            c:type="MidgardQueryConstraint"
5182            parent="GObject.Object"
5183            glib:type-name="MidgardQueryConstraint"
5184            glib:get-type="midgard_query_constraint_get_type"
5185            glib:type-struct="QueryConstraintClass">
5186       <implements name="QueryConstraintSimple"/>
5187       <constructor name="new"
5188                    c:identifier="midgard_query_constraint_new"
5189                    version="10.05">
5190         <return-value transfer-ownership="full">
5191           <doc xml:whitespace="preserve">new #MidgardQueryConstraint instance, or %NULL on failure</doc>
5192           <type name="QueryConstraint" c:type="MidgardQueryConstraint*"/>
5193         </return-value>
5194         <parameters>
5195           <parameter name="property" transfer-ownership="none">
5196             <doc xml:whitespace="preserve">#MidgardQueryProperty instance</doc>
5197             <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5198           </parameter>
5199           <parameter name="op" transfer-ownership="none">
5200             <doc xml:whitespace="preserve">constraint operator</doc>
5201             <type name="utf8" c:type="gchar*"/>
5202           </parameter>
5203           <parameter name="holder" transfer-ownership="none">
5204             <doc xml:whitespace="preserve">#MidgardQueryHolder instance</doc>
5205             <type name="QueryHolder" c:type="MidgardQueryHolder*"/>
5206           </parameter>
5207           <parameter name="storage" transfer-ownership="none">
5208             <doc xml:whitespace="preserve">optional #MidgardQueryStorage to use with constraint</doc>
5209             <type name="QueryStorage" c:type="MidgardQueryStorage*"/>
5210           </parameter>
5211         </parameters>
5212       </constructor>
5213       <virtual-method name="list_constraints">
5214         <return-value transfer-ownership="full">
5215           <type name="QueryConstraintSimple"
5216                 c:type="MidgardQueryConstraintSimple**"/>
5217         </return-value>
5218         <parameters>
5219           <parameter name="n_objects"
5220                      direction="out"
5221                      caller-allocates="0"
5222                      transfer-ownership="full">
5223             <type name="uint" c:type="guint*"/>
5224           </parameter>
5225         </parameters>
5226       </virtual-method>
5227       <method name="get_value"
5228               c:identifier="midgard_query_constraint_get_value">
5229         <return-value transfer-ownership="none">
5230           <type name="none" c:type="void"/>
5231         </return-value>
5232         <parameters>
5233           <parameter name="value" transfer-ownership="none">
5234             <type name="GObject.Value" c:type="GValue*"/>
5235           </parameter>
5236         </parameters>
5237       </method>
5238       <method name="set_value"
5239               c:identifier="midgard_query_constraint_set_value">
5240         <return-value transfer-ownership="none">
5241           <type name="boolean" c:type="gboolean"/>
5242         </return-value>
5243         <parameters>
5244           <parameter name="value" transfer-ownership="none">
5245             <type name="GObject.Value" c:type="GValue*"/>
5246           </parameter>
5247         </parameters>
5248       </method>
5249       <method name="get_storage"
5250               c:identifier="midgard_query_constraint_get_storage"
5251               version="10.05">
5252         <return-value transfer-ownership="full">
5253           <doc xml:whitespace="preserve">#MidgardQueryStorage associated with constraint or %NULL</doc>
5254           <type name="QueryStorage" c:type="MidgardQueryStorage*"/>
5255         </return-value>
5256       </method>
5257       <method name="set_storage"
5258               c:identifier="midgard_query_constraint_set_storage"
5259               version="10.05">
5260         <return-value transfer-ownership="none">
5261           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5262           <type name="boolean" c:type="gboolean"/>
5263         </return-value>
5264         <parameters>
5265           <parameter name="storage" transfer-ownership="none">
5266             <doc xml:whitespace="preserve">#MidgardQueryStorage to associate with @self constraint</doc>
5267             <type name="QueryStorage" c:type="MidgardQueryStorage*"/>
5268           </parameter>
5269         </parameters>
5270       </method>
5271       <method name="get_property"
5272               c:identifier="midgard_query_constraint_get_property"
5273               version="10.05">
5274         <return-value transfer-ownership="full">
5275           <doc xml:whitespace="preserve">#MidgardQueryProperty associated with @self constraint, or %NULL</doc>
5276           <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5277         </return-value>
5278       </method>
5279       <method name="set_property"
5280               c:identifier="midgard_query_constraint_set_property"
5281               version="10.05">
5282         <return-value transfer-ownership="none">
5283           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5284           <type name="boolean" c:type="gboolean"/>
5285         </return-value>
5286         <parameters>
5287           <parameter name="property" transfer-ownership="none">
5288             <doc xml:whitespace="preserve">#MidgardQueryProperty to associate with @self constraint</doc>
5289             <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5290           </parameter>
5291         </parameters>
5292       </method>
5293       <method name="get_operator"
5294               c:identifier="midgard_query_constraint_get_operator"
5295               version="10.05">
5296         <return-value transfer-ownership="none">
5297           <doc xml:whitespace="preserve">operator type associated with @self constraint, or %NULL</doc>
5298           <type name="utf8" c:type="gchar*"/>
5299         </return-value>
5300       </method>
5301       <method name="set_operator"
5302               c:identifier="midgard_query_constraint_set_operator"
5303               version="10.05">
5304         <doc xml:whitespace="preserve">Check midgard_query_constraint_new() for valid operator types.</doc>
5305         <return-value transfer-ownership="none">
5306           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5307           <type name="boolean" c:type="gboolean"/>
5308         </return-value>
5309         <parameters>
5310           <parameter name="op" transfer-ownership="none">
5311             <doc xml:whitespace="preserve">operator to associate with constraint</doc>
5312             <type name="utf8" c:type="gchar*"/>
5313           </parameter>
5314         </parameters>
5315       </method>
5316       <field name="parent">
5317         <type name="GObject.Object" c:type="GObject"/>
5318       </field>
5319       <field name="priv">
5320         <type name="QueryConstraintPrivate"
5321               c:type="MidgardQueryConstraintPrivate*"/>
5322       </field>
5323     </class>
5324     <record name="QueryConstraintClass"
5325             c:type="MidgardQueryConstraintClass"
5326             glib:is-gtype-struct-for="QueryConstraint">
5327       <field name="parent">
5328         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
5329       </field>
5330       <field name="list_constraints">
5331         <callback name="list_constraints" c:type="list_constraints">
5332           <return-value transfer-ownership="full">
5333             <type name="QueryConstraintSimple"
5334                   c:type="MidgardQueryConstraintSimple**"/>
5335           </return-value>
5336           <parameters>
5337             <parameter name="self" transfer-ownership="none">
5338               <type name="QueryConstraint" c:type="MidgardQueryConstraint*"/>
5339             </parameter>
5340             <parameter name="n_objects"
5341                        direction="out"
5342                        caller-allocates="0"
5343                        transfer-ownership="full">
5344               <type name="uint" c:type="guint*"/>
5345             </parameter>
5346           </parameters>
5347         </callback>
5348       </field>
5349     </record>
5350     <class name="QueryConstraintGroup"
5351            c:type="MidgardQueryConstraintGroup"
5352            parent="GObject.Object"
5353            glib:type-name="MidgardQueryConstraintGroup"
5354            glib:get-type="midgard_query_constraint_group_get_type"
5355            glib:type-struct="QueryConstraintGroupClass">
5356       <implements name="QueryConstraintSimple"/>
5357       <constructor name="new"
5358                    c:identifier="midgard_query_constraint_group_new"
5359                    version="10.05.1">
5360         <doc xml:whitespace="preserve">Create new #MidgardQueryConstraintGroup instance with default "AND" group type.</doc>
5361         <return-value transfer-ownership="full">
5362           <doc xml:whitespace="preserve">#MidgardQueryConstraintGroup instance or %NULL</doc>
5363           <type name="QueryConstraintGroup"
5364                 c:type="MidgardQueryConstraintGroup*"/>
5365         </return-value>
5366       </constructor>
5367       <constructor name="new_valist"
5368                    c:identifier="midgard_query_constraint_group_new_valist"
5369                    version="10.05.1"
5370                    introspectable="0">
5371         <doc xml:whitespace="preserve">This is C convinient function. It's not designed for language bindings.</doc>
5372         <return-value transfer-ownership="full">
5373           <doc xml:whitespace="preserve">#MidgardQueryConstraintGroup instance or %NULL</doc>
5374           <type name="QueryConstraintGroup"
5375                 c:type="MidgardQueryConstraintGroup*"/>
5376         </return-value>
5377         <parameters>
5378           <parameter name="type" transfer-ownership="none">
5379             <doc xml:whitespace="preserve">constraints group type ('OR' or 'AND')</doc>
5380             <type name="utf8" c:type="gchar*"/>
5381           </parameter>
5382           <parameter name="constraint" transfer-ownership="none">
5383             <doc xml:whitespace="preserve">list of constraints to add to group or NULL</doc>
5384             <type name="QueryConstraintSimple"
5385                   c:type="MidgardQueryConstraintSimple*"/>
5386           </parameter>
5387           <parameter transfer-ownership="none">
5388             <varargs>
5389             </varargs>
5390           </parameter>
5391         </parameters>
5392       </constructor>
5393       <constructor name="new_with_constraints"
5394                    c:identifier="midgard_query_constraint_group_new_with_constraints"
5395                    version="10.05.1">
5396         <return-value transfer-ownership="full">
5397           <doc xml:whitespace="preserve">#MidgardQueryConstraintGroup instance or %NULL</doc>
5398           <type name="QueryConstraintGroup"
5399                 c:type="MidgardQueryConstraintGroup*"/>
5400         </return-value>
5401         <parameters>
5402           <parameter name="type" transfer-ownership="none">
5403             <doc xml:whitespace="preserve">constraints group type</doc>
5404             <type name="utf8" c:type="gchar*"/>
5405           </parameter>
5406           <parameter name="constraints" transfer-ownership="none">
5407             <doc xml:whitespace="preserve">an array of #MidgardQueryConstraintSimple constraints</doc>
5408             <type name="QueryConstraintSimple"
5409                   c:type="MidgardQueryConstraintSimple**"/>
5410           </parameter>
5411           <parameter name="n_constraints" transfer-ownership="none">
5412             <doc xml:whitespace="preserve">the length of given constraints array</doc>
5413             <type name="uint" c:type="guint"/>
5414           </parameter>
5415         </parameters>
5416       </constructor>
5417       <method name="get_group_type"
5418               c:identifier="midgard_query_constraint_group_get_group_type"
5419               version="10.05">
5420         <return-value transfer-ownership="none">
5421           <doc xml:whitespace="preserve">group type ('OR' or 'AND')</doc>
5422           <type name="utf8" c:type="gchar*"/>
5423         </return-value>
5424       </method>
5425       <method name="set_group_type"
5426               c:identifier="midgard_query_constraint_group_set_group_type"
5427               version="10.05">
5428         <return-value transfer-ownership="none">
5429           <doc xml:whitespace="preserve">%TRUE if type is set, %FALSE otherwise</doc>
5430           <type name="boolean" c:type="gboolean"/>
5431         </return-value>
5432         <parameters>
5433           <parameter name="type" transfer-ownership="none">
5434             <doc xml:whitespace="preserve">group type to set ('OR' or 'AND')</doc>
5435             <type name="utf8" c:type="gchar*"/>
5436           </parameter>
5437         </parameters>
5438       </method>
5439       <method name="add_constraint"
5440               c:identifier="midgard_query_constraint_group_add_constraint"
5441               version="10.05"
5442               introspectable="0">
5443         <return-value transfer-ownership="none">
5444           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5445           <type name="boolean" c:type="gboolean"/>
5446         </return-value>
5447         <parameters>
5448           <parameter name="constraint" transfer-ownership="none">
5449             <doc xml:whitespace="preserve">list of #MidgardQueryConstraintSimple constraint(s) to add to constraint group</doc>
5450             <type name="QueryConstraintSimple"
5451                   c:type="MidgardQueryConstraintSimple*"/>
5452           </parameter>
5453           <parameter transfer-ownership="none">
5454             <varargs>
5455             </varargs>
5456           </parameter>
5457         </parameters>
5458       </method>
5459       <field name="parent">
5460         <type name="GObject.Object" c:type="GObject"/>
5461       </field>
5462       <field name="priv">
5463         <type name="QueryConstraintGroupPrivate"
5464               c:type="MidgardQueryConstraintGroupPrivate*"/>
5465       </field>
5466     </class>
5467     <record name="QueryConstraintGroupClass"
5468             c:type="MidgardQueryConstraintGroupClass"
5469             glib:is-gtype-struct-for="QueryConstraintGroup">
5470       <field name="parent">
5471         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
5472       </field>
5473     </record>
5474     <record name="QueryConstraintGroupPrivate"
5475             c:type="MidgardQueryConstraintGroupPrivate">
5476     </record>
5477     <record name="QueryConstraintPrivate"
5478             c:type="MidgardQueryConstraintPrivate">
5479     </record>
5480     <interface name="QueryConstraintSimple"
5481                c:type="MidgardQueryConstraintSimple"
5482                glib:type-name="MidgardQueryConstraintSimple"
5483                glib:get-type="midgard_query_constraint_simple_get_type">
5484       <method name="list_constraints"
5485               c:identifier="midgard_query_constraint_simple_list_constraints"
5486               version="10.05">
5487         <return-value transfer-ownership="full">
5488           <doc xml:whitespace="preserve">array of #MidgardQueryConstraintSimple instances</doc>
5489           <type name="QueryConstraintSimple"
5490                 c:type="MidgardQueryConstraintSimple**"/>
5491         </return-value>
5492         <parameters>
5493           <parameter name="n_objects"
5494                      direction="out"
5495                      caller-allocates="0"
5496                      transfer-ownership="full">
5497             <doc xml:whitespace="preserve">pointer to store numer of returned objects</doc>
5498             <type name="uint" c:type="guint*"/>
5499           </parameter>
5500         </parameters>
5501       </method>
5502     </interface>
5503     <record name="QueryConstraintSimpleIFace"
5504             c:type="MidgardQueryConstraintSimpleIFace">
5505       <field name="parent" writable="1">
5506         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
5507       </field>
5508       <field name="list_constraints">
5509         <type name="any" c:type="pointer"/>
5510       </field>
5511       <field name="priv" writable="1">
5512         <type name="QueryConstraintSimplePrivate"
5513               c:type="MidgardQueryConstraintSimplePrivate*"/>
5514       </field>
5515     </record>
5516     <record name="QueryConstraintSimplePrivate"
5517             c:type="MidgardQueryConstraintSimplePrivate">
5518     </record>
5519     <class name="QueryExecutor"
5520            c:type="MidgardQueryExecutor"
5521            parent="GObject.Object"
5522            abstract="1"
5523            glib:type-name="MidgardQueryExecutor"
5524            glib:get-type="midgard_query_executor_get_type"
5525            glib:type-struct="QueryExecutorClass">
5526       <constructor name="new" c:identifier="midgard_query_executor_new">
5527         <return-value transfer-ownership="full">
5528           <type name="QueryExecutor" c:type="MidgardQueryExecutor*"/>
5529         </return-value>
5530         <parameters>
5531           <parameter name="mgd" transfer-ownership="none">
5532             <type name="Connection" c:type="MidgardConnection*"/>
5533           </parameter>
5534           <parameter name="storage" transfer-ownership="none">
5535             <type name="QueryStorage" c:type="MidgardQueryStorage*"/>
5536           </parameter>
5537         </parameters>
5538       </constructor>
5539       <virtual-method name="set_constraint"
5540                       invoker="set_constraint"
5541                       version="10.05">
5542         <doc xml:whitespace="preserve">Set constraint object which will be used for query execution</doc>
5543         <return-value transfer-ownership="none">
5544           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5545           <type name="boolean" c:type="gboolean"/>
5546         </return-value>
5547         <parameters>
5548           <parameter name="constraint" transfer-ownership="none">
5549             <doc xml:whitespace="preserve">#MidgardConstraintSimple instance</doc>
5550             <type name="QueryConstraintSimple"
5551                   c:type="MidgardQueryConstraintSimple*"/>
5552           </parameter>
5553         </parameters>
5554       </virtual-method>
5555       <virtual-method name="set_limit" invoker="set_limit" version="10.05">
5556         <return-value transfer-ownership="none">
5557           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5558           <type name="boolean" c:type="gboolean"/>
5559         </return-value>
5560         <parameters>
5561           <parameter name="limit" transfer-ownership="none">
5562             <doc xml:whitespace="preserve">execution limit</doc>
5563             <type name="uint" c:type="guint"/>
5564           </parameter>
5565         </parameters>
5566       </virtual-method>
5567       <virtual-method name="set_offset" invoker="set_offset" version="10.05">
5568         <return-value transfer-ownership="none">
5569           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5570           <type name="boolean" c:type="gboolean"/>
5571         </return-value>
5572         <parameters>
5573           <parameter name="offset" transfer-ownership="none">
5574             <doc xml:whitespace="preserve">execution offset</doc>
5575             <type name="uint" c:type="guint"/>
5576           </parameter>
5577         </parameters>
5578       </virtual-method>
5579       <virtual-method name="add_order" invoker="add_order" version="10.05">
5580         <return-value transfer-ownership="none">
5581           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5582           <type name="boolean" c:type="gboolean"/>
5583         </return-value>
5584         <parameters>
5585           <parameter name="property" transfer-ownership="none">
5586             <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5587           </parameter>
5588           <parameter name="type" transfer-ownership="none">
5589             <doc xml:whitespace="preserve">execution order</doc>
5590             <type name="utf8" c:type="gchar*"/>
5591           </parameter>
5592         </parameters>
5593       </virtual-method>
5594       <virtual-method name="add_join" invoker="add_join">
5595         <return-value transfer-ownership="none">
5596           <type name="boolean" c:type="gboolean"/>
5597         </return-value>
5598         <parameters>
5599           <parameter name="join_type" transfer-ownership="none">
5600             <type name="utf8" c:type="gchar*"/>
5601           </parameter>
5602           <parameter name="left_property" transfer-ownership="none">
5603             <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5604           </parameter>
5605           <parameter name="right_property" transfer-ownership="none">
5606             <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5607           </parameter>
5608         </parameters>
5609       </virtual-method>
5610       <virtual-method name="execute" invoker="execute" version="10.05">
5611         <return-value transfer-ownership="none">
5612           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5613           <type name="boolean" c:type="gboolean"/>
5614         </return-value>
5615       </virtual-method>
5616       <virtual-method name="get_results_count"
5617                       invoker="get_results_count"
5618                       version="10.05">
5619         <return-value transfer-ownership="none">
5620           <doc xml:whitespace="preserve">number of objects or records returned from execution</doc>
5621           <type name="uint" c:type="guint"/>
5622         </return-value>
5623       </virtual-method>
5624       <method name="set_constraint"
5625               c:identifier="midgard_query_executor_set_constraint"
5626               version="10.05">
5627         <doc xml:whitespace="preserve">Set constraint object which will be used for query execution</doc>
5628         <return-value transfer-ownership="none">
5629           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5630           <type name="boolean" c:type="gboolean"/>
5631         </return-value>
5632         <parameters>
5633           <parameter name="constraint" transfer-ownership="none">
5634             <doc xml:whitespace="preserve">#MidgardConstraintSimple instance</doc>
5635             <type name="QueryConstraintSimple"
5636                   c:type="MidgardQueryConstraintSimple*"/>
5637           </parameter>
5638         </parameters>
5639       </method>
5640       <method name="set_limit"
5641               c:identifier="midgard_query_executor_set_limit"
5642               version="10.05">
5643         <return-value transfer-ownership="none">
5644           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5645           <type name="boolean" c:type="gboolean"/>
5646         </return-value>
5647         <parameters>
5648           <parameter name="limit" transfer-ownership="none">
5649             <doc xml:whitespace="preserve">execution limit</doc>
5650             <type name="uint" c:type="guint"/>
5651           </parameter>
5652         </parameters>
5653       </method>
5654       <method name="set_offset"
5655               c:identifier="midgard_query_executor_set_offset"
5656               version="10.05">
5657         <return-value transfer-ownership="none">
5658           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5659           <type name="boolean" c:type="gboolean"/>
5660         </return-value>
5661         <parameters>
5662           <parameter name="offset" transfer-ownership="none">
5663             <doc xml:whitespace="preserve">execution offset</doc>
5664             <type name="uint" c:type="guint"/>
5665           </parameter>
5666         </parameters>
5667       </method>
5668       <method name="add_order"
5669               c:identifier="midgard_query_executor_add_order"
5670               version="10.05">
5671         <return-value transfer-ownership="none">
5672           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5673           <type name="boolean" c:type="gboolean"/>
5674         </return-value>
5675         <parameters>
5676           <parameter name="property" transfer-ownership="none">
5677             <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5678           </parameter>
5679           <parameter name="type" transfer-ownership="none">
5680             <doc xml:whitespace="preserve">execution order</doc>
5681             <type name="utf8" c:type="gchar*"/>
5682           </parameter>
5683         </parameters>
5684       </method>
5685       <method name="add_join" c:identifier="midgard_query_executor_add_join">
5686         <return-value transfer-ownership="none">
5687           <type name="boolean" c:type="gboolean"/>
5688         </return-value>
5689         <parameters>
5690           <parameter name="join_type" transfer-ownership="none">
5691             <type name="utf8" c:type="gchar*"/>
5692           </parameter>
5693           <parameter name="left_property" transfer-ownership="none">
5694             <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5695           </parameter>
5696           <parameter name="right_property" transfer-ownership="none">
5697             <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5698           </parameter>
5699         </parameters>
5700       </method>
5701       <method name="execute"
5702               c:identifier="midgard_query_executor_execute"
5703               version="10.05">
5704         <return-value transfer-ownership="none">
5705           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5706           <type name="boolean" c:type="gboolean"/>
5707         </return-value>
5708       </method>
5709       <method name="get_results_count"
5710               c:identifier="midgard_query_executor_get_results_count"
5711               version="10.05">
5712         <return-value transfer-ownership="none">
5713           <doc xml:whitespace="preserve">number of objects or records returned from execution</doc>
5714           <type name="uint" c:type="guint"/>
5715         </return-value>
5716       </method>
5717       <property name="resultscount" transfer-ownership="none">
5718         <type name="uint" c:type="guint"/>
5719       </property>
5720       <field name="parent">
5721         <type name="GObject.Object" c:type="GObject"/>
5722       </field>
5723       <field name="priv">
5724         <type name="QueryExecutorPrivate"
5725               c:type="MidgardQueryExecutorPrivate*"/>
5726       </field>
5727     </class>
5728     <record name="QueryExecutorClass"
5729             c:type="MidgardQueryExecutorClass"
5730             glib:is-gtype-struct-for="QueryExecutor">
5731       <field name="parent">
5732         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
5733       </field>
5734       <field name="set_constraint">
5735         <callback name="set_constraint" c:type="set_constraint">
5736           <return-value transfer-ownership="none">
5737             <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5738             <type name="boolean" c:type="gboolean"/>
5739           </return-value>
5740           <parameters>
5741             <parameter name="self" transfer-ownership="none">
5742               <type name="QueryExecutor" c:type="MidgardQueryExecutor*"/>
5743             </parameter>
5744             <parameter name="constraint" transfer-ownership="none">
5745               <doc xml:whitespace="preserve">#MidgardConstraintSimple instance</doc>
5746               <type name="QueryConstraintSimple"
5747                     c:type="MidgardQueryConstraintSimple*"/>
5748             </parameter>
5749           </parameters>
5750         </callback>
5751       </field>
5752       <field name="set_limit">
5753         <callback name="set_limit" c:type="set_limit">
5754           <return-value transfer-ownership="none">
5755             <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5756             <type name="boolean" c:type="gboolean"/>
5757           </return-value>
5758           <parameters>
5759             <parameter name="self" transfer-ownership="none">
5760               <type name="QueryExecutor" c:type="MidgardQueryExecutor*"/>
5761             </parameter>
5762             <parameter name="limit" transfer-ownership="none">
5763               <doc xml:whitespace="preserve">execution limit</doc>
5764               <type name="uint" c:type="guint"/>
5765             </parameter>
5766           </parameters>
5767         </callback>
5768       </field>
5769       <field name="set_offset">
5770         <callback name="set_offset" c:type="set_offset">
5771           <return-value transfer-ownership="none">
5772             <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5773             <type name="boolean" c:type="gboolean"/>
5774           </return-value>
5775           <parameters>
5776             <parameter name="self" transfer-ownership="none">
5777               <type name="QueryExecutor" c:type="MidgardQueryExecutor*"/>
5778             </parameter>
5779             <parameter name="offset" transfer-ownership="none">
5780               <doc xml:whitespace="preserve">execution offset</doc>
5781               <type name="uint" c:type="guint"/>
5782             </parameter>
5783           </parameters>
5784         </callback>
5785       </field>
5786       <field name="add_order">
5787         <callback name="add_order" c:type="add_order">
5788           <return-value transfer-ownership="none">
5789             <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5790             <type name="boolean" c:type="gboolean"/>
5791           </return-value>
5792           <parameters>
5793             <parameter name="self" transfer-ownership="none">
5794               <type name="QueryExecutor" c:type="MidgardQueryExecutor*"/>
5795             </parameter>
5796             <parameter name="property" transfer-ownership="none">
5797               <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5798             </parameter>
5799             <parameter name="type" transfer-ownership="none">
5800               <doc xml:whitespace="preserve">execution order</doc>
5801               <type name="utf8" c:type="gchar*"/>
5802             </parameter>
5803           </parameters>
5804         </callback>
5805       </field>
5806       <field name="add_join">
5807         <callback name="add_join" c:type="add_join">
5808           <return-value transfer-ownership="none">
5809             <type name="boolean" c:type="gboolean"/>
5810           </return-value>
5811           <parameters>
5812             <parameter name="self" transfer-ownership="none">
5813               <type name="QueryExecutor" c:type="MidgardQueryExecutor*"/>
5814             </parameter>
5815             <parameter name="join_type" transfer-ownership="none">
5816               <type name="utf8" c:type="gchar*"/>
5817             </parameter>
5818             <parameter name="left_property" transfer-ownership="none">
5819               <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5820             </parameter>
5821             <parameter name="right_property" transfer-ownership="none">
5822               <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5823             </parameter>
5824           </parameters>
5825         </callback>
5826       </field>
5827       <field name="execute">
5828         <callback name="execute" c:type="execute">
5829           <return-value transfer-ownership="none">
5830             <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5831             <type name="boolean" c:type="gboolean"/>
5832           </return-value>
5833           <parameters>
5834             <parameter name="self" transfer-ownership="none">
5835               <type name="QueryExecutor" c:type="MidgardQueryExecutor*"/>
5836             </parameter>
5837           </parameters>
5838         </callback>
5839       </field>
5840       <field name="get_results_count">
5841         <callback name="get_results_count" c:type="get_results_count">
5842           <return-value transfer-ownership="none">
5843             <doc xml:whitespace="preserve">number of objects or records returned from execution</doc>
5844             <type name="uint" c:type="guint"/>
5845           </return-value>
5846           <parameters>
5847             <parameter name="self" transfer-ownership="none">
5848               <type name="QueryExecutor" c:type="MidgardQueryExecutor*"/>
5849             </parameter>
5850           </parameters>
5851         </callback>
5852       </field>
5853     </record>
5854     <record name="QueryExecutorPrivate" c:type="MidgardQueryExecutorPrivate">
5855     </record>
5856     <interface name="QueryHolder"
5857                c:type="MidgardQueryHolder"
5858                glib:type-name="MidgardQueryHolder"
5859                glib:get-type="midgard_query_holder_get_type">
5860       <method name="get_value"
5861               c:identifier="midgard_query_holder_get_value"
5862               version="10.05">
5863         <return-value transfer-ownership="none">
5864           <type name="none" c:type="void"/>
5865         </return-value>
5866         <parameters>
5867           <parameter name="value" transfer-ownership="none">
5868             <doc xml:whitespace="preserve">pointer to store returned value</doc>
5869             <type name="GObject.Value" c:type="GValue*"/>
5870           </parameter>
5871         </parameters>
5872       </method>
5873       <method name="set_value"
5874               c:identifier="midgard_query_holder_set_value"
5875               version="10.05">
5876         <return-value transfer-ownership="none">
5877           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
5878           <type name="boolean" c:type="gboolean"/>
5879         </return-value>
5880         <parameters>
5881           <parameter name="value" transfer-ownership="none">
5882             <doc xml:whitespace="preserve">value to set</doc>
5883             <type name="GObject.Value" c:type="GValue*"/>
5884           </parameter>
5885         </parameters>
5886       </method>
5887     </interface>
5888     <record name="QueryHolderIFace" c:type="MidgardQueryHolderIFace">
5889       <field name="parent" writable="1">
5890         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
5891       </field>
5892       <field name="get_value">
5893         <type name="any" c:type="pointer"/>
5894       </field>
5895       <field name="set_value">
5896         <type name="any" c:type="pointer"/>
5897       </field>
5898     </record>
5899     <class name="QueryProperty"
5900            c:type="MidgardQueryProperty"
5901            parent="GObject.Object"
5902            glib:type-name="MidgardQueryProperty"
5903            glib:get-type="midgard_query_property_get_type"
5904            glib:type-struct="QueryPropertyClass">
5905       <implements name="QueryHolder"/>
5906       <constructor name="new"
5907                    c:identifier="midgard_query_property_new"
5908                    version="10.05">
5909         <return-value transfer-ownership="full">
5910           <doc xml:whitespace="preserve">new #MidgardQueryProperty instance or NULL on failure</doc>
5911           <type name="QueryProperty" c:type="MidgardQueryProperty*"/>
5912         </return-value>
5913         <parameters>
5914           <parameter name="property" transfer-ownership="none">
5915             <doc xml:whitespace="preserve">name of the property</doc>
5916             <type name="utf8" c:type="gchar*"/>
5917           </parameter>
5918           <parameter name="storage" transfer-ownership="none">
5919             <doc xml:whitespace="preserve">optional storage for given property</doc>
5920             <type name="QueryStorage" c:type="MidgardQueryStorage*"/>
5921           </parameter>
5922         </parameters>
5923       </constructor>
5924       <field name="parent">
5925         <type name="GObject.Object" c:type="GObject"/>
5926       </field>
5927       <field name="priv">
5928         <type name="QueryPropertyPrivate"
5929               c:type="MidgardQueryPropertyPrivate*"/>
5930       </field>
5931     </class>
5932     <record name="QueryPropertyClass"
5933             c:type="MidgardQueryPropertyClass"
5934             glib:is-gtype-struct-for="QueryProperty">
5935       <field name="parent">
5936         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
5937       </field>
5938     </record>
5939     <record name="QueryPropertyPrivate" c:type="MidgardQueryPropertyPrivate">
5940     </record>
5941     <class name="QuerySelect"
5942            c:type="MidgardQuerySelect"
5943            parent="QueryExecutor"
5944            glib:type-name="MidgardQuerySelect"
5945            glib:get-type="midgard_query_select_get_type"
5946            glib:type-struct="QuerySelectClass">
5947       <constructor name="new"
5948                    c:identifier="midgard_query_select_new"
5949                    version="10.05">
5950         <doc xml:whitespace="preserve">#MidgardStorage @storage represents storage which is queried during execution</doc>
5951         <return-value transfer-ownership="full">
5952           <doc xml:whitespace="preserve">new #MidgardQuerySelect instance or %NULL on failure</doc>
5953           <type name="QuerySelect" c:type="MidgardQuerySelect*"/>
5954         </return-value>
5955         <parameters>
5956           <parameter name="mgd" transfer-ownership="none">
5957             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
5958             <type name="Connection" c:type="MidgardConnection*"/>
5959           </parameter>
5960           <parameter name="storage" transfer-ownership="none">
5961             <doc xml:whitespace="preserve">#MidgardStorage instance</doc>
5962             <type name="QueryStorage" c:type="MidgardQueryStorage*"/>
5963           </parameter>
5964         </parameters>
5965       </constructor>
5966       <virtual-method name="list_objects"
5967                       invoker="list_objects"
5968                       version="10.05">
5969         <doc xml:whitespace="preserve">List all objects for which data has been returned during execution.</doc>
5970         <return-value transfer-ownership="full">
5971           <doc xml:whitespace="preserve">newly allocated array of #MidgardDBObject</doc>
5972           <type name="DBObject" c:type="MidgardDBObject**"/>
5973         </return-value>
5974         <parameters>
5975           <parameter name="n_objects"
5976                      direction="out"
5977                      caller-allocates="0"
5978                      transfer-ownership="full">
5979             <doc xml:whitespace="preserve">pointer to store number of returned objects</doc>
5980             <type name="uint" c:type="guint*"/>
5981           </parameter>
5982         </parameters>
5983       </virtual-method>
5984       <virtual-method name="toggle_read_only"
5985                       invoker="toggle_read_only"
5986                       version="10.05">
5987         <doc xml:whitespace="preserve">This method switch #MidgardQuerySelect to read only mode.
5988 It should be enabled when returned objects will be used only to read properties.
5989 It improves performance, but it's impossible to write returned object's properties.</doc>
5990         <return-value transfer-ownership="none">
5991           <type name="none" c:type="void"/>
5992         </return-value>
5993         <parameters>
5994           <parameter name="toggle" transfer-ownership="none">
5995             <doc xml:whitespace="preserve">enables or disables read only mode</doc>
5996             <type name="boolean" c:type="gboolean"/>
5997           </parameter>
5998         </parameters>
5999       </virtual-method>
6000       <method name="list_objects"
6001               c:identifier="midgard_query_select_list_objects"
6002               version="10.05">
6003         <doc xml:whitespace="preserve">List all objects for which data has been returned during execution.</doc>
6004         <return-value transfer-ownership="full">
6005           <doc xml:whitespace="preserve">newly allocated array of #MidgardDBObject</doc>
6006           <type name="DBObject" c:type="MidgardDBObject**"/>
6007         </return-value>
6008         <parameters>
6009           <parameter name="n_objects"
6010                      direction="out"
6011                      caller-allocates="0"
6012                      transfer-ownership="full">
6013             <doc xml:whitespace="preserve">pointer to store number of returned objects</doc>
6014             <type name="uint" c:type="guint*"/>
6015           </parameter>
6016         </parameters>
6017       </method>
6018       <method name="toggle_read_only"
6019               c:identifier="midgard_query_select_toggle_read_only"
6020               version="10.05">
6021         <doc xml:whitespace="preserve">This method switch #MidgardQuerySelect to read only mode.
6022 It should be enabled when returned objects will be used only to read properties.
6023 It improves performance, but it's impossible to write returned object's properties.</doc>
6024         <return-value transfer-ownership="none">
6025           <type name="none" c:type="void"/>
6026         </return-value>
6027         <parameters>
6028           <parameter name="toggle" transfer-ownership="none">
6029             <doc xml:whitespace="preserve">enables or disables read only mode</doc>
6030             <type name="boolean" c:type="gboolean"/>
6031           </parameter>
6032         </parameters>
6033       </method>
6034       <field name="parent">
6035         <type name="QueryExecutor" c:type="MidgardQueryExecutor"/>
6036       </field>
6037     </class>
6038     <record name="QuerySelectClass"
6039             c:type="MidgardQuerySelectClass"
6040             glib:is-gtype-struct-for="QuerySelect">
6041       <field name="parent">
6042         <type name="QueryExecutorClass" c:type="MidgardQueryExecutorClass"/>
6043       </field>
6044       <field name="list_objects">
6045         <callback name="list_objects" c:type="list_objects">
6046           <return-value transfer-ownership="full">
6047             <doc xml:whitespace="preserve">newly allocated array of #MidgardDBObject</doc>
6048             <type name="DBObject" c:type="MidgardDBObject**"/>
6049           </return-value>
6050           <parameters>
6051             <parameter name="self" transfer-ownership="none">
6052               <type name="QuerySelect" c:type="MidgardQuerySelect*"/>
6053             </parameter>
6054             <parameter name="n_objects"
6055                        direction="out"
6056                        caller-allocates="0"
6057                        transfer-ownership="full">
6058               <doc xml:whitespace="preserve">pointer to store number of returned objects</doc>
6059               <type name="uint" c:type="guint*"/>
6060             </parameter>
6061           </parameters>
6062         </callback>
6063       </field>
6064       <field name="toggle_read_only">
6065         <callback name="toggle_read_only" c:type="toggle_read_only">
6066           <return-value transfer-ownership="none">
6067             <type name="none" c:type="void"/>
6068           </return-value>
6069           <parameters>
6070             <parameter name="self" transfer-ownership="none">
6071               <type name="QuerySelect" c:type="MidgardQuerySelect*"/>
6072             </parameter>
6073             <parameter name="toggle" transfer-ownership="none">
6074               <doc xml:whitespace="preserve">enables or disables read only mode</doc>
6075               <type name="boolean" c:type="gboolean"/>
6076             </parameter>
6077           </parameters>
6078         </callback>
6079       </field>
6080     </record>
6081     <class name="QueryStorage"
6082            c:type="MidgardQueryStorage"
6083            parent="GObject.Object"
6084            glib:type-name="MidgardQueryStorage"
6085            glib:get-type="midgard_query_storage_get_type"
6086            glib:type-struct="QueryStorageClass">
6087       <constructor name="new"
6088                    c:identifier="midgard_query_storage_new"
6089                    version="10.05">
6090         <doc xml:whitespace="preserve">Initializes new object which represents #MidgardDBObject derived one's storage</doc>
6091         <return-value transfer-ownership="full">
6092           <doc xml:whitespace="preserve">new #MidgardQueryStorage or %NULL on failure</doc>
6093           <type name="QueryStorage" c:type="MidgardQueryStorage*"/>
6094         </return-value>
6095         <parameters>
6096           <parameter name="classname" transfer-ownership="none">
6097             <doc xml:whitespace="preserve">name of the #MidgardDBObject derived class</doc>
6098             <type name="utf8" c:type="gchar*"/>
6099           </parameter>
6100         </parameters>
6101       </constructor>
6102       <field name="parent">
6103         <type name="GObject.Object" c:type="GObject"/>
6104       </field>
6105       <field name="priv">
6106         <type name="QueryStoragePrivate" c:type="MidgardQueryStoragePrivate*"/>
6107       </field>
6108     </class>
6109     <record name="QueryStorageClass"
6110             c:type="MidgardQueryStorageClass"
6111             glib:is-gtype-struct-for="QueryStorage">
6112       <field name="parent">
6113         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
6114       </field>
6115     </record>
6116     <record name="QueryStoragePrivate" c:type="MidgardQueryStoragePrivate">
6117     </record>
6118     <class name="QueryValue"
6119            c:type="MidgardQueryValue"
6120            parent="GObject.Object"
6121            glib:type-name="MidgardQueryValue"
6122            glib:get-type="midgard_query_value_get_type"
6123            glib:type-struct="QueryValueClass">
6124       <implements name="QueryHolder"/>
6125       <constructor name="new"
6126                    c:identifier="midgard_query_value_new"
6127                    version="10.05">
6128         <return-value transfer-ownership="full">
6129           <doc xml:whitespace="preserve">new #MidgardQueryValue or %NULL on failure</doc>
6130           <type name="QueryValue" c:type="MidgardQueryValue*"/>
6131         </return-value>
6132         <parameters>
6133           <parameter name="value" transfer-ownership="none">
6134             <doc xml:whitespace="preserve">a #GValue value</doc>
6135             <type name="GObject.Value" c:type="GValue*"/>
6136           </parameter>
6137         </parameters>
6138       </constructor>
6139       <virtual-method name="get_value">
6140         <return-value transfer-ownership="none">
6141           <type name="none" c:type="void"/>
6142         </return-value>
6143         <parameters>
6144           <parameter name="value" transfer-ownership="none">
6145             <type name="GObject.Value" c:type="GValue*"/>
6146           </parameter>
6147         </parameters>
6148       </virtual-method>
6149       <virtual-method name="set_value">
6150         <return-value transfer-ownership="full">
6151           <type name="QueryValue" c:type="MidgardQueryValue*"/>
6152         </return-value>
6153         <parameters>
6154           <parameter name="value" transfer-ownership="none">
6155             <type name="GObject.Value" c:type="GValue*"/>
6156           </parameter>
6157         </parameters>
6158       </virtual-method>
6159       <field name="parent">
6160         <type name="GObject.Object" c:type="GObject"/>
6161       </field>
6162       <field name="priv">
6163         <type name="QueryValuePrivate" c:type="MidgardQueryValuePrivate*"/>
6164       </field>
6165     </class>
6166     <record name="QueryValueClass"
6167             c:type="MidgardQueryValueClass"
6168             glib:is-gtype-struct-for="QueryValue">
6169       <field name="parent">
6170         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
6171       </field>
6172       <field name="get_value">
6173         <callback name="get_value" c:type="get_value">
6174           <return-value transfer-ownership="none">
6175             <type name="none" c:type="void"/>
6176           </return-value>
6177           <parameters>
6178             <parameter name="self" transfer-ownership="none">
6179               <type name="QueryValue" c:type="MidgardQueryValue*"/>
6180             </parameter>
6181             <parameter name="value" transfer-ownership="none">
6182               <type name="GObject.Value" c:type="GValue*"/>
6183             </parameter>
6184           </parameters>
6185         </callback>
6186       </field>
6187       <field name="set_value">
6188         <callback name="set_value" c:type="set_value">
6189           <return-value transfer-ownership="full">
6190             <type name="QueryValue" c:type="MidgardQueryValue*"/>
6191           </return-value>
6192           <parameters>
6193             <parameter name="self" transfer-ownership="none">
6194               <type name="QueryValue" c:type="MidgardQueryValue*"/>
6195             </parameter>
6196             <parameter name="value" transfer-ownership="none">
6197               <type name="GObject.Value" c:type="GValue*"/>
6198             </parameter>
6199           </parameters>
6200         </callback>
6201       </field>
6202     </record>
6203     <record name="QueryValuePrivate" c:type="MidgardQueryValuePrivate">
6204     </record>
6205     <record name="ReflectionProperty" c:type="MidgardReflectionProperty">
6206     </record>
6207     <record name="ReflectionPropertyClass"
6208             c:type="MidgardReflectionPropertyClass">
6209       <field name="parent" writable="1">
6210         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
6211       </field>
6212       <field name="is_link">
6213         <type name="any" c:type="pointer"/>
6214       </field>
6215     </record>
6216     <class name="ReflectorObject"
6217            c:type="MidgardReflectorObject"
6218            parent="GObject.Object"
6219            abstract="1"
6220            glib:type-name="MidgardReflectorObject"
6221            glib:get-type="midgard_reflector_object_get_type"
6222            glib:type-struct="ReflectorObjectClass">
6223       <function name="get_property_primary"
6224                 c:identifier="midgard_reflector_object_get_property_primary"
6225                 version="10.05">
6226         <return-value transfer-ownership="none">
6227           <doc xml:whitespace="preserve">Name of property which is defined as primary for given class or %NULL.</doc>
6228           <type name="utf8" c:type="gchar*"/>
6229         </return-value>
6230         <parameters>
6231           <parameter name="classname" transfer-ownership="none">
6232             <doc xml:whitespace="preserve">Name of the class</doc>
6233             <type name="utf8" c:type="gchar*"/>
6234           </parameter>
6235         </parameters>
6236       </function>
6237       <function name="get_property_up"
6238                 c:identifier="midgard_reflector_object_get_property_up"
6239                 version="10.05">
6240         <return-value transfer-ownership="none">
6241           <doc xml:whitespace="preserve">Name of property which is defined as 'up' for given class or %NULL.</doc>
6242           <type name="utf8" c:type="gchar*"/>
6243         </return-value>
6244         <parameters>
6245           <parameter name="classname" transfer-ownership="none">
6246             <doc xml:whitespace="preserve">Name of the class</doc>
6247             <type name="utf8" c:type="gchar*"/>
6248           </parameter>
6249         </parameters>
6250       </function>
6251       <function name="get_property_parent"
6252                 c:identifier="midgard_reflector_object_get_property_parent"
6253                 version="10.05">
6254         <return-value transfer-ownership="none">
6255           <doc xml:whitespace="preserve">Name of property which is defined as 'parent' for given class or %NULL.</doc>
6256           <type name="utf8" c:type="gchar*"/>
6257         </return-value>
6258         <parameters>
6259           <parameter name="classname" transfer-ownership="none">
6260             <doc xml:whitespace="preserve">Name of the class</doc>
6261             <type name="utf8" c:type="gchar*"/>
6262           </parameter>
6263         </parameters>
6264       </function>
6265       <function name="get_property_unique"
6266                 c:identifier="midgard_reflector_object_get_property_unique"
6267                 version="10.05">
6268         <return-value transfer-ownership="none">
6269           <doc xml:whitespace="preserve">Name of property which is defined unique for given class, or %NULL.</doc>
6270           <type name="utf8" c:type="gchar*"/>
6271         </return-value>
6272         <parameters>
6273           <parameter name="classname" transfer-ownership="none">
6274             <doc xml:whitespace="preserve">Name of the class</doc>
6275             <type name="utf8" c:type="gchar*"/>
6276           </parameter>
6277         </parameters>
6278       </function>
6279       <function name="list_children"
6280                 c:identifier="midgard_reflector_object_list_children"
6281                 version="10.05">
6282         <doc xml:whitespace="preserve">Returns newly allocated, children ( in midgard tree ) classes' names. 
6283 Returned array should be freed if no longer needed without freeing array's elements.</doc>
6284         <return-value transfer-ownership="container">
6285           <doc xml:whitespace="preserve">array of strings or %NULL.</doc>
6286           <array c:type="gchar**">
6287             <type name="utf8"/>
6288           </array>
6289         </return-value>
6290         <parameters>
6291           <parameter name="classname" transfer-ownership="none">
6292             <doc xml:whitespace="preserve">Name of the class</doc>
6293             <type name="utf8" c:type="gchar*"/>
6294           </parameter>
6295           <parameter name="n_children"
6296                      direction="out"
6297                      caller-allocates="0"
6298                      transfer-ownership="full">
6299             <doc xml:whitespace="preserve">pointer to store number of children classes</doc>
6300             <type name="uint" c:type="guint*"/>
6301           </parameter>
6302         </parameters>
6303       </function>
6304       <function name="has_metadata_class"
6305                 c:identifier="midgard_reflector_object_has_metadata_class">
6306         <return-value transfer-ownership="none">
6307           <type name="boolean" c:type="gboolean"/>
6308         </return-value>
6309         <parameters>
6310           <parameter name="classname" transfer-ownership="none">
6311             <type name="utf8" c:type="gchar*"/>
6312           </parameter>
6313         </parameters>
6314       </function>
6315       <function name="get_metadata_class"
6316                 c:identifier="midgard_reflector_object_get_metadata_class"
6317                 version="10.05">
6318         <return-value transfer-ownership="none">
6319           <doc xml:whitespace="preserve">Name of the metadata class of the given one or %NULL.</doc>
6320           <type name="utf8" c:type="gchar*"/>
6321         </return-value>
6322         <parameters>
6323           <parameter name="classname" transfer-ownership="none">
6324             <doc xml:whitespace="preserve">Name of the class</doc>
6325             <type name="utf8" c:type="gchar*"/>
6326           </parameter>
6327         </parameters>
6328       </function>
6329       <function name="get_schema_value"
6330                 c:identifier="midgard_reflector_object_get_schema_value"
6331                 version="10.05">
6332         <return-value transfer-ownership="none">
6333           <doc xml:whitespace="preserve">value of given node's name or %NULL.</doc>
6334           <type name="utf8" c:type="gchar*"/>
6335         </return-value>
6336         <parameters>
6337           <parameter name="classname" transfer-ownership="none">
6338             <doc xml:whitespace="preserve">Name of the class</doc>
6339             <type name="utf8" c:type="gchar*"/>
6340           </parameter>
6341           <parameter name="name" transfer-ownership="none">
6342             <doc xml:whitespace="preserve">node's name declared for given @klass</doc>
6343             <type name="utf8" c:type="gchar*"/>
6344           </parameter>
6345         </parameters>
6346       </function>
6347       <field name="parent">
6348         <type name="GObject.Object" c:type="GObject"/>
6349       </field>
6350     </class>
6351     <record name="ReflectorObjectClass"
6352             c:type="MidgardReflectorObjectClass"
6353             glib:is-gtype-struct-for="ReflectorObject">
6354       <field name="parent">
6355         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
6356       </field>
6357     </record>
6358     <class name="ReflectorProperty"
6359            c:type="MidgardReflectorProperty"
6360            parent="GObject.Object"
6361            glib:type-name="MidgardReflectorProperty"
6362            glib:get-type="midgard_reflector_property_get_type"
6363            glib:type-struct="ReflectorPropertyClass">
6364       <constructor name="new"
6365                    c:identifier="midgard_reflector_property_new"
6366                    version="10.05">
6367         <return-value transfer-ownership="full">
6368           <doc xml:whitespace="preserve">newly initialized #MidgardReflectorProperty instance or %NULL on failure.</doc>
6369           <type name="ReflectorProperty" c:type="MidgardReflectorProperty*"/>
6370         </return-value>
6371         <parameters>
6372           <parameter name="classname" transfer-ownership="none">
6373             <doc xml:whitespace="preserve">Name of #MidgardDBObject (or derived) class</doc>
6374             <type name="utf8" c:type="gchar*"/>
6375           </parameter>
6376         </parameters>
6377       </constructor>
6378       <method name="get_midgard_type"
6379               c:identifier="midgard_reflector_property_get_midgard_type"
6380               version="10.05">
6381         <return-value transfer-ownership="none">
6382           <doc xml:whitespace="preserve">type (#GType) of the property or %NULL if property is not registered for given class.</doc>
6383           <type name="GType" c:type="GType"/>
6384         </return-value>
6385         <parameters>
6386           <parameter name="propname" transfer-ownership="none">
6387             <doc xml:whitespace="preserve">property name which is registered for #MidgardDBObjectClass</doc>
6388             <type name="utf8" c:type="gchar*"/>
6389           </parameter>
6390         </parameters>
6391       </method>
6392       <method name="is_link"
6393               c:identifier="midgard_reflector_property_is_link"
6394               version="10.05">
6395         <doc xml:whitespace="preserve">Checks whether property is a link.</doc>
6396         <return-value transfer-ownership="none">
6397           <doc xml:whitespace="preserve">%TRUE if property is registered as link, %FALSE otherwise (or in case if property is not registered for given class.</doc>
6398           <type name="boolean" c:type="gboolean"/>
6399         </return-value>
6400         <parameters>
6401           <parameter name="propname" transfer-ownership="none">
6402             <doc xml:whitespace="preserve">property name</doc>
6403             <type name="utf8" c:type="gchar*"/>
6404           </parameter>
6405         </parameters>
6406       </method>
6407       <method name="is_linked"
6408               c:identifier="midgard_reflector_property_is_linked"
6409               version="10.05">
6410         <doc xml:whitespace="preserve">Checks if property is linked with another type. 
6411 %FALSE is returned if property is not linked or is not registered for given class.</doc>
6412         <return-value transfer-ownership="none">
6413           <doc xml:whitespace="preserve">%TRUE if property is linked with another type (property of another class is defined as a link to given one).</doc>
6414           <type name="boolean" c:type="gboolean"/>
6415         </return-value>
6416         <parameters>
6417           <parameter name="propname" transfer-ownership="none">
6418             <doc xml:whitespace="preserve">property name</doc>
6419             <type name="utf8" c:type="gchar*"/>
6420           </parameter>
6421         </parameters>
6422       </method>
6423       <method name="get_link_class"
6424               c:identifier="midgard_reflector_property_get_link_class"
6425               version="10.05"
6426               introspectable="0">
6427         <return-value transfer-ownership="none">
6428           <doc xml:whitespace="preserve">the pointer to the #MidgardDBObjectClass, a given property is a link to.</doc>
6429           <type name="DBObjectClass" c:type="MidgardDBObjectClass*"/>
6430         </return-value>
6431         <parameters>
6432           <parameter name="propname" transfer-ownership="none">
6433             <doc xml:whitespace="preserve">property name</doc>
6434             <type name="utf8" c:type="gchar*"/>
6435           </parameter>
6436         </parameters>
6437       </method>
6438       <method name="get_link_name"
6439               c:identifier="midgard_reflector_property_get_link_name"
6440               version="10.05">
6441         <doc xml:whitespace="preserve">Or %NULL if property is not a link or given property is not registered for given class.</doc>
6442         <return-value transfer-ownership="none">
6443           <doc xml:whitespace="preserve">The name of the class, the given property is a link to.</doc>
6444           <type name="utf8" c:type="gchar*"/>
6445         </return-value>
6446         <parameters>
6447           <parameter name="propname" transfer-ownership="none">
6448             <doc xml:whitespace="preserve">property name</doc>
6449             <type name="utf8" c:type="gchar*"/>
6450           </parameter>
6451         </parameters>
6452       </method>
6453       <method name="get_link_target"
6454               c:identifier="midgard_reflector_property_get_link_target"
6455               version="10.05">
6456         <doc xml:whitespace="preserve">Or %NULL if property is not a link or it's not registered for given class.</doc>
6457         <return-value transfer-ownership="none">
6458           <doc xml:whitespace="preserve">The name of the property, the given one is a link to.</doc>
6459           <type name="utf8" c:type="gchar*"/>
6460         </return-value>
6461         <parameters>
6462           <parameter name="propname" transfer-ownership="none">
6463             <doc xml:whitespace="preserve">property name</doc>
6464             <type name="utf8" c:type="gchar*"/>
6465           </parameter>
6466         </parameters>
6467       </method>
6468       <method name="description"
6469               c:identifier="midgard_reflector_property_description"
6470               version="10.05">
6471         <return-value transfer-ownership="none">
6472           <doc xml:whitespace="preserve">description of the given property or %NULL.</doc>
6473           <type name="utf8" c:type="gchar*"/>
6474         </return-value>
6475         <parameters>
6476           <parameter name="propname" transfer-ownership="none">
6477             <doc xml:whitespace="preserve">property name</doc>
6478             <type name="utf8" c:type="gchar*"/>
6479           </parameter>
6480         </parameters>
6481       </method>
6482       <method name="get_user_value"
6483               c:identifier="midgard_reflector_property_get_user_value"
6484               version="10.05">
6485         <return-value transfer-ownership="none">
6486           <doc xml:whitespace="preserve">value for user defined field, or NULL if none found</doc>
6487           <type name="utf8" c:type="gchar*"/>
6488         </return-value>
6489         <parameters>
6490           <parameter name="property" transfer-ownership="none">
6491             <doc xml:whitespace="preserve">property to look value for</doc>
6492             <type name="utf8" c:type="gchar*"/>
6493           </parameter>
6494           <parameter name="name" transfer-ownership="none">
6495             <doc xml:whitespace="preserve">name of user defined field</doc>
6496             <type name="utf8" c:type="gchar*"/>
6497           </parameter>
6498         </parameters>
6499       </method>
6500       <method name="is_private"
6501               c:identifier="midgard_reflector_property_is_private"
6502               version="10.05">
6503         <return-value transfer-ownership="none">
6504           <doc xml:whitespace="preserve">%TRUE, if propery is defined private, %FALSE otherwise</doc>
6505           <type name="boolean" c:type="gboolean"/>
6506         </return-value>
6507         <parameters>
6508           <parameter name="property" transfer-ownership="none">
6509             <doc xml:whitespace="preserve">property name to check</doc>
6510             <type name="utf8" c:type="gchar*"/>
6511           </parameter>
6512         </parameters>
6513       </method>
6514       <method name="is_unique"
6515               c:identifier="midgard_reflector_property_is_unique"
6516               version="10.05">
6517         <return-value transfer-ownership="none">
6518           <doc xml:whitespace="preserve">%TRUE, if property is defined as unique, %FALSE otherwise</doc>
6519           <type name="boolean" c:type="gboolean"/>
6520         </return-value>
6521         <parameters>
6522           <parameter name="property" transfer-ownership="none">
6523             <doc xml:whitespace="preserve">property name to check</doc>
6524             <type name="utf8" c:type="gchar*"/>
6525           </parameter>
6526         </parameters>
6527       </method>
6528       <method name="is_primary"
6529               c:identifier="midgard_reflector_property_is_primary"
6530               version="10.05">
6531         <return-value transfer-ownership="none">
6532           <doc xml:whitespace="preserve">%TRUE, if property is primary, %FALSE otherwise</doc>
6533           <type name="boolean" c:type="gboolean"/>
6534         </return-value>
6535         <parameters>
6536           <parameter name="property" transfer-ownership="none">
6537             <doc xml:whitespace="preserve">property name to check</doc>
6538             <type name="utf8" c:type="gchar*"/>
6539           </parameter>
6540         </parameters>
6541       </method>
6542       <method name="has_default_value"
6543               c:identifier="midgard_reflector_property_has_default_value"
6544               version="10.05">
6545         <return-value transfer-ownership="none">
6546           <doc xml:whitespace="preserve">%TRUE, if property has default value, %FALSE otherwise</doc>
6547           <type name="boolean" c:type="gboolean"/>
6548         </return-value>
6549         <parameters>
6550           <parameter name="property" transfer-ownership="none">
6551             <doc xml:whitespace="preserve">property name to check</doc>
6552             <type name="utf8" c:type="gchar*"/>
6553           </parameter>
6554         </parameters>
6555       </method>
6556       <method name="get_default_value"
6557               c:identifier="midgard_reflector_property_get_default_value"
6558               version="10.05">
6559         <doc xml:whitespace="preserve">so it should be unset when no longer needed.</doc>
6560         <return-value transfer-ownership="none">
6561           <doc xml:whitespace="preserve">%TRUE, if property has default value and its copy has been made, %FALSE otherwise</doc>
6562           <type name="boolean" c:type="gboolean"/>
6563         </return-value>
6564         <parameters>
6565           <parameter name="property" transfer-ownership="none">
6566             <doc xml:whitespace="preserve">property name to check</doc>
6567             <type name="utf8" c:type="gchar*"/>
6568           </parameter>
6569           <parameter name="value"
6570                      direction="inout"
6571                      caller-allocates="0"
6572                      transfer-ownership="full">
6573             <doc xml:whitespace="preserve">value which stores default value defined for given property</doc>
6574             <type name="GObject.Value" c:type="GValue*"/>
6575           </parameter>
6576         </parameters>
6577       </method>
6578       <property name="dbclass"
6579                 readable="0"
6580                 writable="1"
6581                 construct-only="1"
6582                 transfer-ownership="none">
6583         <type name="utf8" c:type="gchararray"/>
6584       </property>
6585       <field name="parent">
6586         <type name="GObject.Object" c:type="GObject"/>
6587       </field>
6588       <field name="priv">
6589         <type name="ReflectorPropertyPrivate"
6590               c:type="MidgardReflectorPropertyPrivate*"/>
6591       </field>
6592     </class>
6593     <record name="ReflectorPropertyClass"
6594             c:type="MidgardReflectorPropertyClass"
6595             glib:is-gtype-struct-for="ReflectorProperty">
6596       <field name="parent">
6597         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
6598       </field>
6599     </record>
6600     <record name="ReflectorPropertyPrivate"
6601             c:type="MidgardReflectorPropertyPrivate">
6602     </record>
6603     <class name="Replicator"
6604            c:type="MidgardReplicator"
6605            parent="GObject.Object"
6606            glib:type-name="MidgardReplicator"
6607            glib:get-type="midgard_replicator_get_type"
6608            glib:type-struct="ReplicatorClass">
6609       <function name="serialize" c:identifier="midgard_replicator_serialize">
6610         <return-value transfer-ownership="full">
6611           <doc xml:whitespace="preserve">serialized objects as xml content or %NULL on failure.</doc>
6612           <type name="utf8" c:type="gchar*"/>
6613         </return-value>
6614         <parameters>
6615           <parameter name="object" transfer-ownership="none">
6616             <doc xml:whitespace="preserve">GObject (or derived class) instance</doc>
6617             <type name="GObject.Object" c:type="GObject*"/>
6618           </parameter>
6619         </parameters>
6620       </function>
6621       <function name="export" c:identifier="midgard_replicator_export">
6622         <doc xml:whitespace="preserve">Given object is not serialized. Its storage record is marked as exported.</doc>
6623         <return-value transfer-ownership="none">
6624           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise.</doc>
6625           <type name="boolean" c:type="gboolean"/>
6626         </return-value>
6627         <parameters>
6628           <parameter name="object" transfer-ownership="none">
6629             <doc xml:whitespace="preserve">#MidgardDBObject instance</doc>
6630             <type name="DBObject" c:type="MidgardDBObject*"/>
6631           </parameter>
6632         </parameters>
6633       </function>
6634       <function name="export_purged"
6635                 c:identifier="midgard_replicator_export_purged">
6636         <doc xml:whitespace="preserve">Exports all purged objects of given class. If @startdate or @enddate are not NULL,
6637 all objects which were purged between dates will be exported.</doc>
6638         <return-value transfer-ownership="full">
6639           <doc xml:whitespace="preserve">xml buffer with serialized objects or %NULL if there are no objects matching given criteria.</doc>
6640           <type name="utf8" c:type="gchar*"/>
6641         </return-value>
6642         <parameters>
6643           <parameter name="mgd" transfer-ownership="none">
6644             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
6645             <type name="Connection" c:type="MidgardConnection*"/>
6646           </parameter>
6647           <parameter name="classname" transfer-ownership="none">
6648             <doc xml:whitespace="preserve">name of #MidgardObjectClass derived one</doc>
6649             <type name="utf8" c:type="gchar*"/>
6650           </parameter>
6651           <parameter name="startdate" transfer-ownership="none">
6652             <doc xml:whitespace="preserve">optional start date</doc>
6653             <type name="utf8" c:type="gchar*"/>
6654           </parameter>
6655           <parameter name="enddate" transfer-ownership="none">
6656             <doc xml:whitespace="preserve">optional end date</doc>
6657             <type name="utf8" c:type="gchar*"/>
6658           </parameter>
6659         </parameters>
6660       </function>
6661       <function name="serialize_blob"
6662                 c:identifier="midgard_replicator_serialize_blob">
6663         <doc xml:whitespace="preserve">Serialize midgard_blob binary data.</doc>
6664         <return-value transfer-ownership="full">
6665           <doc xml:whitespace="preserve">Newly allocated xml buffer, which holds blob data base64 encoded, or %NULL.</doc>
6666           <type name="utf8" c:type="gchar*"/>
6667         </return-value>
6668         <parameters>
6669           <parameter name="object" transfer-ownership="none">
6670             <doc xml:whitespace="preserve">#MidgardObject of MIDGARD_TYPE_ATTACHMENT type</doc>
6671             <type name="Object" c:type="MidgardObject*"/>
6672           </parameter>
6673         </parameters>
6674       </function>
6675       <function name="export_blob"
6676                 c:identifier="midgard_replicator_export_blob">
6677         <doc xml:whitespace="preserve">Alias for midgard_replicator_serialize_blob().</doc>
6678         <return-value transfer-ownership="full">
6679           <doc xml:whitespace="preserve">serialized object as xml data</doc>
6680           <type name="utf8" c:type="gchar*"/>
6681         </return-value>
6682         <parameters>
6683           <parameter name="object" transfer-ownership="none">
6684             <doc xml:whitespace="preserve">#MidgardObject of MIDGARD_TYPE_ATTACHMENT type</doc>
6685             <type name="Object" c:type="MidgardObject*"/>
6686           </parameter>
6687         </parameters>
6688       </function>
6689       <function name="export_by_guid"
6690                 c:identifier="midgard_replicator_export_by_guid">
6691         <doc xml:whitespace="preserve">Marks object's storage record as exported.
6692 Cases to return %FALSE:
6693 &lt;itemizedlist&gt;
6694 &lt;listitem&gt;&lt;para&gt;
6695 Given guid is NULL or empty string (MGD_ERR_INVALID_PROPERTY_VALUE)
6696 &lt;/para&gt;&lt;/listitem&gt;
6697 &lt;listitem&gt;&lt;para&gt;
6698 Object identified by given guid doesn't exist (MGD_ERR_NOT_EXISTS)
6699 &lt;/para&gt;&lt;/listitem&gt;
6700 &lt;listitem&gt;&lt;para&gt;
6701 Object identified by given guid is purged (MGD_ERR_OBJECT_PURGED)
6702 &lt;/para&gt;&lt;/listitem&gt;
6703 &lt;listitem&gt;&lt;para&gt;
6704 Internal storage error (MGD_ERR_INTERNAL)
6705 &lt;/para&gt;&lt;/listitem&gt;
6706 &lt;/itemizedlist&gt;</doc>
6707         <return-value transfer-ownership="none">
6708           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
6709           <type name="boolean" c:type="gboolean"/>
6710         </return-value>
6711         <parameters>
6712           <parameter name="mgd" transfer-ownership="none">
6713             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
6714             <type name="Connection" c:type="MidgardConnection*"/>
6715           </parameter>
6716           <parameter name="guid" transfer-ownership="none">
6717             <doc xml:whitespace="preserve">guid which identifies object to be exported</doc>
6718             <type name="utf8" c:type="gchar*"/>
6719           </parameter>
6720         </parameters>
6721       </function>
6722       <function name="export_media"
6723                 c:identifier="midgard_replicator_export_media">
6724         <return-value transfer-ownership="full">
6725           <type name="utf8" c:type="gchar*"/>
6726         </return-value>
6727         <parameters>
6728           <parameter name="object" transfer-ownership="none">
6729             <type name="Object" c:type="MidgardObject*"/>
6730           </parameter>
6731         </parameters>
6732       </function>
6733       <function name="unserialize"
6734                 c:identifier="midgard_replicator_unserialize">
6735         <return-value transfer-ownership="full">
6736           <doc xml:whitespace="preserve">Newly allocated array of GObjects</doc>
6737           <type name="GObject.Object" c:type="GObject**"/>
6738         </return-value>
6739         <parameters>
6740           <parameter name="mgd" transfer-ownership="none">
6741             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
6742             <type name="Connection" c:type="MidgardConnection*"/>
6743           </parameter>
6744           <parameter name="xml" transfer-ownership="none">
6745             <doc xml:whitespace="preserve">xml buffer which holds serialized object</doc>
6746             <type name="utf8" c:type="gchar*"/>
6747           </parameter>
6748           <parameter name="force" transfer-ownership="none">
6749             <doc xml:whitespace="preserve">toggle to force unserialization</doc>
6750             <type name="boolean" c:type="gboolean"/>
6751           </parameter>
6752         </parameters>
6753       </function>
6754       <function name="import_object"
6755                 c:identifier="midgard_replicator_import_object">
6756         <doc xml:whitespace="preserve">Imports given object to underlying storage
6757 Cases to return %FALSE:
6758 &lt;itemizedlist&gt;
6759 &lt;listitem&gt;&lt;para&gt;
6760 Given guid is NULL or empty string (MGD_ERR_INVALID_PROPERTY_VALUE)
6761 &lt;/para&gt;&lt;/listitem&gt;
6762 &lt;listitem&gt;&lt;para&gt;
6763 Object is already imported (MGD_ERR_OBJECT_IMPORTED)
6764 &lt;/para&gt;&lt;/listitem&gt;
6765 &lt;listitem&gt;&lt;para&gt;
6766 Object identified is deleted (MGD_ERR_OBJECT_DELETED)
6767 &lt;/para&gt;&lt;/listitem&gt;
6768 &lt;/itemizedlist&gt;
6769 Set @force toggle if you want to import object even if it's already imported or deleted.</doc>
6770         <return-value transfer-ownership="none">
6771           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
6772           <type name="boolean" c:type="gboolean"/>
6773         </return-value>
6774         <parameters>
6775           <parameter name="object" transfer-ownership="none">
6776             <doc xml:whitespace="preserve">#MidgardDBObject instance</doc>
6777             <type name="DBObject" c:type="MidgardDBObject*"/>
6778           </parameter>
6779           <parameter name="force" transfer-ownership="none">
6780             <doc xml:whitespace="preserve">toggle to force import</doc>
6781             <type name="boolean" c:type="gboolean"/>
6782           </parameter>
6783         </parameters>
6784       </function>
6785       <function name="import_from_xml"
6786                 c:identifier="midgard_replicator_import_from_xml">
6787         <doc xml:whitespace="preserve">This method tries to import all objects which could be unserialized from gievn xml.
6788 It's not atomic. Check error code returned from midgard_connection_get_error().</doc>
6789         <return-value transfer-ownership="none">
6790           <type name="none" c:type="void"/>
6791         </return-value>
6792         <parameters>
6793           <parameter name="mgd" transfer-ownership="none">
6794             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
6795             <type name="Connection" c:type="MidgardConnection*"/>
6796           </parameter>
6797           <parameter name="xml" transfer-ownership="none">
6798             <doc xml:whitespace="preserve">data buffer which holds serialized object</doc>
6799             <type name="utf8" c:type="gchar*"/>
6800           </parameter>
6801           <parameter name="force" transfer-ownership="none">
6802             <doc xml:whitespace="preserve">toggle to force import</doc>
6803             <type name="boolean" c:type="gboolean"/>
6804           </parameter>
6805         </parameters>
6806       </function>
6807       <field name="parent">
6808         <type name="GObject.Object" c:type="GObject"/>
6809       </field>
6810     </class>
6811     <record name="ReplicatorClass"
6812             c:type="MidgardReplicatorClass"
6813             glib:is-gtype-struct-for="Replicator">
6814       <field name="parent">
6815         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
6816       </field>
6817       <field name="serialize">
6818         <callback name="serialize" c:type="serialize">
6819           <return-value transfer-ownership="full">
6820             <type name="utf8" c:type="gchar*"/>
6821           </return-value>
6822           <parameters>
6823             <parameter name="object" transfer-ownership="none">
6824               <type name="GObject.Object" c:type="GObject*"/>
6825             </parameter>
6826           </parameters>
6827         </callback>
6828       </field>
6829       <field name="export">
6830         <callback name="export" c:type="export">
6831           <return-value transfer-ownership="none">
6832             <type name="boolean" c:type="gboolean"/>
6833           </return-value>
6834           <parameters>
6835             <parameter name="object" transfer-ownership="none">
6836               <type name="DBObject" c:type="MidgardDBObject*"/>
6837             </parameter>
6838           </parameters>
6839         </callback>
6840       </field>
6841       <field name="export_purged">
6842         <callback name="export_purged" c:type="export_purged">
6843           <return-value transfer-ownership="full">
6844             <type name="utf8" c:type="gchar*"/>
6845           </return-value>
6846           <parameters>
6847             <parameter name="mgd" transfer-ownership="none">
6848               <type name="Connection" c:type="MidgardConnection*"/>
6849             </parameter>
6850             <parameter name="classname" transfer-ownership="none">
6851               <type name="utf8" c:type="gchar*"/>
6852             </parameter>
6853             <parameter name="startdate" transfer-ownership="none">
6854               <type name="utf8" c:type="gchar*"/>
6855             </parameter>
6856             <parameter name="enddate" transfer-ownership="none">
6857               <type name="utf8" c:type="gchar*"/>
6858             </parameter>
6859           </parameters>
6860         </callback>
6861       </field>
6862       <field name="serialize_blob">
6863         <callback name="serialize_blob" c:type="serialize_blob">
6864           <return-value transfer-ownership="full">
6865             <type name="utf8" c:type="gchar*"/>
6866           </return-value>
6867           <parameters>
6868             <parameter name="object" transfer-ownership="none">
6869               <type name="Object" c:type="MidgardObject*"/>
6870             </parameter>
6871           </parameters>
6872         </callback>
6873       </field>
6874       <field name="export_blob">
6875         <callback name="export_blob" c:type="export_blob">
6876           <return-value transfer-ownership="full">
6877             <type name="utf8" c:type="gchar*"/>
6878           </return-value>
6879           <parameters>
6880             <parameter name="object" transfer-ownership="none">
6881               <type name="Object" c:type="MidgardObject*"/>
6882             </parameter>
6883           </parameters>
6884         </callback>
6885       </field>
6886       <field name="export_by_guid">
6887         <callback name="export_by_guid" c:type="export_by_guid">
6888           <return-value transfer-ownership="none">
6889             <type name="boolean" c:type="gboolean"/>
6890           </return-value>
6891           <parameters>
6892             <parameter name="guid" transfer-ownership="none">
6893               <type name="utf8" c:type="gchar*"/>
6894             </parameter>
6895           </parameters>
6896         </callback>
6897       </field>
6898       <field name="export_media">
6899         <callback name="export_media" c:type="export_media">
6900           <return-value transfer-ownership="full">
6901             <type name="utf8" c:type="gchar*"/>
6902           </return-value>
6903           <parameters>
6904             <parameter name="object" transfer-ownership="none">
6905               <type name="Object" c:type="MidgardObject*"/>
6906             </parameter>
6907           </parameters>
6908         </callback>
6909       </field>
6910       <field name="unserialize">
6911         <callback name="unserialize" c:type="unserialize">
6912           <return-value transfer-ownership="full">
6913             <type name="GObject.Object" c:type="GObject*"/>
6914           </return-value>
6915           <parameters>
6916             <parameter name="mgd" transfer-ownership="none">
6917               <type name="Connection" c:type="MidgardConnection*"/>
6918             </parameter>
6919             <parameter name="xml" transfer-ownership="none">
6920               <type name="utf8" c:type="gchar*"/>
6921             </parameter>
6922             <parameter name="force" transfer-ownership="none">
6923               <type name="boolean" c:type="gboolean"/>
6924             </parameter>
6925           </parameters>
6926         </callback>
6927       </field>
6928       <field name="import_object">
6929         <callback name="import_object" c:type="import_object">
6930           <return-value transfer-ownership="none">
6931             <type name="boolean" c:type="gboolean"/>
6932           </return-value>
6933           <parameters>
6934             <parameter name="object" transfer-ownership="none">
6935               <type name="DBObject" c:type="MidgardDBObject*"/>
6936             </parameter>
6937             <parameter name="force" transfer-ownership="none">
6938               <type name="boolean" c:type="gboolean"/>
6939             </parameter>
6940           </parameters>
6941         </callback>
6942       </field>
6943       <field name="import_from_xml">
6944         <callback name="import_from_xml" c:type="import_from_xml">
6945           <return-value transfer-ownership="none">
6946             <type name="none" c:type="void"/>
6947           </return-value>
6948           <parameters>
6949             <parameter name="mgd" transfer-ownership="none">
6950               <type name="Connection" c:type="MidgardConnection*"/>
6951             </parameter>
6952             <parameter name="xml" transfer-ownership="none">
6953               <type name="utf8" c:type="gchar*"/>
6954             </parameter>
6955             <parameter name="force" transfer-ownership="none">
6956               <type name="boolean" c:type="gboolean"/>
6957             </parameter>
6958           </parameters>
6959         </callback>
6960       </field>
6961     </record>
6962     <record name="ReplicatorPrivate" c:type="MidgardReplicatorPrivate">
6963     </record>
6964     <constant name="SHARE_DIR" value="/usr/share/midgard2">
6965       <type name="utf8"/>
6966     </constant>
6967     <class name="Schema"
6968            c:type="MidgardSchema"
6969            parent="GObject.Object"
6970            glib:type-name="MidgardSchema"
6971            glib:get-type="midgard_schema_get_type"
6972            glib:type-struct="SchemaClass">
6973       <method name="init" c:identifier="midgard_schema_init">
6974         <return-value transfer-ownership="none">
6975           <type name="none" c:type="void"/>
6976         </return-value>
6977         <parameters>
6978           <parameter name="path" transfer-ownership="none">
6979             <type name="utf8" c:type="gchar*"/>
6980           </parameter>
6981         </parameters>
6982       </method>
6983       <method name="read_dir" c:identifier="midgard_schema_read_dir">
6984         <return-value transfer-ownership="none">
6985           <type name="boolean" c:type="gboolean"/>
6986         </return-value>
6987         <parameters>
6988           <parameter name="dirname" transfer-ownership="none">
6989             <type name="utf8" c:type="gchar*"/>
6990           </parameter>
6991         </parameters>
6992       </method>
6993       <method name="type_exists" c:identifier="midgard_schema_type_exists">
6994         <return-value transfer-ownership="none">
6995           <type name="boolean" c:type="gboolean"/>
6996         </return-value>
6997         <parameters>
6998           <parameter name="classname" transfer-ownership="none">
6999             <type name="utf8" c:type="gchar*"/>
7000           </parameter>
7001         </parameters>
7002       </method>
7003       <method name="read_file" c:identifier="midgard_schema_read_file">
7004         <return-value transfer-ownership="none">
7005           <type name="none" c:type="void"/>
7006         </return-value>
7007         <parameters>
7008           <parameter name="filename" transfer-ownership="none">
7009             <type name="utf8" c:type="gchar*"/>
7010           </parameter>
7011         </parameters>
7012       </method>
7013       <field name="parent">
7014         <type name="GObject.Object" c:type="GObject"/>
7015       </field>
7016       <field name="types">
7017         <type name="GLib.HashTable" c:type="GHashTable*"/>
7018       </field>
7019     </class>
7020     <record name="SchemaClass"
7021             c:type="MidgardSchemaClass"
7022             glib:is-gtype-struct-for="Schema">
7023       <field name="parent">
7024         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
7025       </field>
7026     </record>
7027     <class name="SchemaObjectFactory"
7028            c:type="MidgardSchemaObjectFactory"
7029            parent="GObject.Object"
7030            abstract="1"
7031            glib:type-name="MidgardSchemaObjectFactory"
7032            glib:get-type="midgard_schema_object_factory_get_type"
7033            glib:type-struct="SchemaObjectFactoryClass">
7034       <function name="get_object_by_guid"
7035                 c:identifier="midgard_schema_object_factory_get_object_by_guid"
7036                 version="10.05">
7037         <doc xml:whitespace="preserve">Creates new instance of the class defined in Midgard Schema.
7038 Cases to return %NULL:
7039 &lt;itemizedlist&gt;
7040 &lt;listitem&gt;&lt;para&gt;
7041 Given guid is not a valid guid (MGD_ERR_NOT_EXISTS)
7042 &lt;/para&gt;&lt;/listitem&gt;
7043 &lt;listitem&gt;&lt;para&gt;
7044 There's no object identified by given guid (MGD_ERR_NOT_EXISTS)
7045 &lt;/para&gt;&lt;/listitem&gt;
7046 &lt;listitem&gt;&lt;para&gt;
7047 Object identified by given guid is deleted (MGD_ERR_OBJECT_DELETED)
7048 &lt;/para&gt;&lt;/listitem&gt;
7049 &lt;listitem&gt;&lt;para&gt;
7050 Object identified by given guid is purged (MGD_ERR_OBJECT_PURGED)
7051 &lt;/para&gt;&lt;/listitem&gt;
7052 &lt;/itemizedlist&gt;</doc>
7053         <return-value transfer-ownership="full">
7054           <doc xml:whitespace="preserve">#MidgardObject derived new instance or %NULL on failure</doc>
7055           <type name="Object" c:type="MidgardObject*"/>
7056         </return-value>
7057         <parameters>
7058           <parameter name="mgd" transfer-ownership="none">
7059             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
7060             <type name="Connection" c:type="MidgardConnection*"/>
7061           </parameter>
7062           <parameter name="guid" transfer-ownership="none">
7063             <doc xml:whitespace="preserve">guid which identifies object to look for</doc>
7064             <type name="utf8" c:type="gchar*"/>
7065           </parameter>
7066         </parameters>
7067       </function>
7068       <function name="get_object_by_path"
7069                 c:identifier="midgard_schema_object_factory_get_object_by_path"
7070                 version="10.05">
7071         <doc xml:whitespace="preserve">Get object by path. Path elements are objects' names.
7072 To get top object with empty name use "/" path. 
7073 Cases to return %NULL:
7074 &lt;itemizedlist&gt;
7075 &lt;listitem&gt;&lt;para&gt;
7076 Object identified by given path doesn't exist (MGD_ERR_NOT_EXISTS)
7077 &lt;/para&gt;&lt;/listitem&gt;
7078 &lt;listitem&gt;&lt;para&gt;
7079 Given @classname doesn't support tree functionality (MGD_ERR_NOT_INTERNAL)
7080 &lt;/para&gt;&lt;/listitem&gt;
7081 &lt;listitem&gt;&lt;para&gt;
7082 Given @classname doesn't provide 'id' or unique named property (MGD_ERR_NOT_INTERNAL)
7083 &lt;/para&gt;&lt;/listitem&gt;
7084 &lt;/itemizedlist&gt;</doc>
7085         <return-value transfer-ownership="full">
7086           <doc xml:whitespace="preserve">#MidgardObject derived, new @classname instance or %NULL</doc>
7087           <type name="Object" c:type="MidgardObject*"/>
7088         </return-value>
7089         <parameters>
7090           <parameter name="mgd" transfer-ownership="none">
7091             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
7092             <type name="Connection" c:type="MidgardConnection*"/>
7093           </parameter>
7094           <parameter name="classname" transfer-ownership="none">
7095             <doc xml:whitespace="preserve">name of the class, new instance should be created for</doc>
7096             <type name="utf8" c:type="gchar*"/>
7097           </parameter>
7098           <parameter name="path" transfer-ownership="none">
7099             <doc xml:whitespace="preserve">path which identifies object</doc>
7100             <type name="utf8" c:type="gchar*"/>
7101           </parameter>
7102         </parameters>
7103       </function>
7104       <function name="object_undelete"
7105                 c:identifier="midgard_schema_object_factory_object_undelete"
7106                 version="10.05">
7107         <doc xml:whitespace="preserve">Cases to return %FALSE:
7108 &lt;itemizedlist&gt;
7109 &lt;listitem&gt;&lt;para&gt;
7110 Object identified by given guid doesn't exist (MGD_ERR_NOT_EXISTS)
7111 &lt;/para&gt;&lt;/listitem&gt;
7112 &lt;listitem&gt;&lt;para&gt;
7113 Object identified by given guid is purged (MGD_ERR_OBJECT_PURGED)
7114 &lt;/para&gt;&lt;/listitem&gt;
7115 &lt;listitem&gt;&lt;para&gt;
7116 Object identified by given guid is not deleted (MGD_ERR_USER_DATA)
7117 &lt;/para&gt;&lt;/listitem&gt;
7118 &lt;listitem&gt;&lt;para&gt;
7119 Either object's or repligard's record couldn't be updated (MGD_ERR_INTERNAL)
7120 &lt;/para&gt;&lt;/listitem&gt;
7121 &lt;/itemizedlist&gt;</doc>
7122         <return-value transfer-ownership="none">
7123           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7124           <type name="boolean" c:type="gboolean"/>
7125         </return-value>
7126         <parameters>
7127           <parameter name="mgd" transfer-ownership="none">
7128             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
7129             <type name="Connection" c:type="MidgardConnection*"/>
7130           </parameter>
7131           <parameter name="guid" transfer-ownership="none">
7132             <doc xml:whitespace="preserve">guid which identifies object to undelete</doc>
7133             <type name="utf8" c:type="gchar*"/>
7134           </parameter>
7135         </parameters>
7136       </function>
7137       <field name="parent">
7138         <type name="GObject.Object" c:type="GObject"/>
7139       </field>
7140     </class>
7141     <record name="SchemaObjectFactoryClass"
7142             c:type="MidgardSchemaObjectFactoryClass"
7143             glib:is-gtype-struct-for="SchemaObjectFactory">
7144       <field name="parent">
7145         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
7146       </field>
7147     </record>
7148     <record name="SchemaObjectFactoryPrivate"
7149             c:type="MidgardSchemaObjectFactoryPrivate">
7150     </record>
7151     <class name="SchemaObjectTree"
7152            c:type="MidgardSchemaObjectTree"
7153            parent="GObject.Object"
7154            abstract="1"
7155            glib:type-name="MidgardSchemaObjectTree"
7156            glib:get-type="midgard_schema_object_tree_get_type"
7157            glib:type-struct="SchemaObjectTreeClass">
7158       <function name="is_in_tree"
7159                 c:identifier="midgard_schema_object_tree_is_in_tree"
7160                 version="10.05">
7161         <return-value transfer-ownership="none">
7162           <doc xml:whitespace="preserve">%TRUE, if given @object exists under @parent_object in tree. %FALSE otherwise.</doc>
7163           <type name="boolean" c:type="gboolean"/>
7164         </return-value>
7165         <parameters>
7166           <parameter name="object" transfer-ownership="none">
7167             <doc xml:whitespace="preserve">#MidgardObject instance to check existance in tree</doc>
7168             <type name="Object" c:type="MidgardObject*"/>
7169           </parameter>
7170           <parameter name="parent_object" transfer-ownership="none">
7171             <doc xml:whitespace="preserve">parent #MidgardObject instance</doc>
7172             <type name="Object" c:type="MidgardObject*"/>
7173           </parameter>
7174         </parameters>
7175       </function>
7176       <function name="get_parent_name"
7177                 c:identifier="midgard_schema_object_tree_get_parent_name"
7178                 version="10.05">
7179         <return-value transfer-ownership="none">
7180           <doc xml:whitespace="preserve">classname which, in tree is a parent one for given @object</doc>
7181           <type name="utf8" c:type="gchar*"/>
7182         </return-value>
7183         <parameters>
7184           <parameter name="object" transfer-ownership="none">
7185             <doc xml:whitespace="preserve">#MidgardObject instance</doc>
7186             <type name="Object" c:type="MidgardObject*"/>
7187           </parameter>
7188         </parameters>
7189       </function>
7190       <function name="get_parent_object"
7191                 c:identifier="midgard_schema_object_tree_get_parent_object"
7192                 version="10.05">
7193         <doc xml:whitespace="preserve">Get tree parent object, of the given @object.</doc>
7194         <return-value transfer-ownership="full">
7195           <doc xml:whitespace="preserve">parent object or %NULL</doc>
7196           <type name="Object" c:type="MidgardObject*"/>
7197         </return-value>
7198         <parameters>
7199           <parameter name="object" transfer-ownership="none">
7200             <doc xml:whitespace="preserve">#MidgardObject instance</doc>
7201             <type name="Object" c:type="MidgardObject*"/>
7202           </parameter>
7203         </parameters>
7204       </function>
7205       <function name="list_objects"
7206                 c:identifier="midgard_schema_object_tree_list_objects"
7207                 version="10.05">
7208         <doc xml:whitespace="preserve">List tree children objects, of given @object type.</doc>
7209         <return-value transfer-ownership="full">
7210           <doc xml:whitespace="preserve">newly allocated array of #MidgardObject objects</doc>
7211           <type name="Object" c:type="MidgardObject**"/>
7212         </return-value>
7213         <parameters>
7214           <parameter name="object" transfer-ownership="none">
7215             <doc xml:whitespace="preserve">#MidgardObject instance</doc>
7216             <type name="Object" c:type="MidgardObject*"/>
7217           </parameter>
7218           <parameter name="n_objects"
7219                      direction="out"
7220                      caller-allocates="0"
7221                      transfer-ownership="full">
7222             <doc xml:whitespace="preserve">pointer to store number of returned objects</doc>
7223             <type name="uint" c:type="guint*"/>
7224           </parameter>
7225         </parameters>
7226       </function>
7227       <function name="list_children_objects"
7228                 c:identifier="midgard_schema_object_tree_list_children_objects"
7229                 version="10.05">
7230         <doc xml:whitespace="preserve">List all @classname objects, if exist and are tree children of given @object.</doc>
7231         <return-value transfer-ownership="full">
7232           <doc xml:whitespace="preserve">array of #MidgardObject objects, or %NULL.</doc>
7233           <type name="Object" c:type="MidgardObject**"/>
7234         </return-value>
7235         <parameters>
7236           <parameter name="object" transfer-ownership="none">
7237             <doc xml:whitespace="preserve">#MidgardObject instance</doc>
7238             <type name="Object" c:type="MidgardObject*"/>
7239           </parameter>
7240           <parameter name="classname" transfer-ownership="none">
7241             <doc xml:whitespace="preserve">name of the tree child class</doc>
7242             <type name="utf8" c:type="gchar*"/>
7243           </parameter>
7244           <parameter name="n_objects"
7245                      direction="out"
7246                      caller-allocates="0"
7247                      transfer-ownership="full">
7248             <doc xml:whitespace="preserve">pointer to store number of returned objects</doc>
7249             <type name="uint" c:type="guint*"/>
7250           </parameter>
7251         </parameters>
7252       </function>
7253       <field name="parent">
7254         <type name="GObject.Object" c:type="GObject"/>
7255       </field>
7256     </class>
7257     <record name="SchemaObjectTreeClass"
7258             c:type="MidgardSchemaObjectTreeClass"
7259             glib:is-gtype-struct-for="SchemaObjectTree">
7260       <field name="parent">
7261         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
7262       </field>
7263     </record>
7264     <record name="SchemaObjectTreePrivate"
7265             c:type="MidgardSchemaObjectTreePrivate">
7266     </record>
7267     <class name="Storage"
7268            c:type="MidgardStorage"
7269            parent="GObject.Object"
7270            glib:type-name="MidgardStorage"
7271            glib:get-type="midgard_storage_get_type"
7272            glib:type-struct="StorageClass">
7273       <function name="create_base_storage"
7274                 c:identifier="midgard_storage_create_base_storage"
7275                 version="9.09">
7276         <doc xml:whitespace="preserve">Creates storage for base Midgard classes.</doc>
7277         <return-value transfer-ownership="none">
7278           <doc xml:whitespace="preserve">%TRUE if tables has been created, %FALSE otherwise.</doc>
7279           <type name="boolean" c:type="gboolean"/>
7280         </return-value>
7281         <parameters>
7282           <parameter name="mgd" transfer-ownership="none">
7283             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
7284             <type name="Connection" c:type="MidgardConnection*"/>
7285           </parameter>
7286         </parameters>
7287       </function>
7288       <function name="create"
7289                 c:identifier="midgard_storage_create"
7290                 version="10.05">
7291         <doc xml:whitespace="preserve">Creates underlying storage (e.g. table in database) for class which is identified by given @name.
7292 It may be class which represents any underlying storage type (database table or view, for example).
7293 If underlying storage already exists, this method silently ignore creation
7294 and returns %TRUE. Such case is not considered an error.
7295 This method also creates metadata storage if given class uses such.
7296 Indexes are created if:
7297 &lt;itemizedlist&gt;
7298 &lt;listitem&gt;&lt;para&gt;
7299 property is a link type
7300 &lt;/para&gt;&lt;/listitem&gt;
7301 &lt;listitem&gt;&lt;para&gt;
7302 property is linked to another property
7303 &lt;/para&gt;&lt;/listitem&gt;
7304 &lt;listitem&gt;&lt;para&gt;
7305 property is either parent or up
7306 &lt;/para&gt;&lt;/listitem&gt;
7307 &lt;listitem&gt;&lt;para&gt;
7308 property holds guid value
7309 &lt;/para&gt;&lt;/listitem&gt;
7310 &lt;/itemizedlist&gt;    
7311 Auto increment (and primary key ) field is created if property is defined 
7312 as primaryproperty, and it's integer ( or unsigned one ) type</doc>
7313         <return-value transfer-ownership="none">
7314           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7315           <type name="boolean" c:type="gboolean"/>
7316         </return-value>
7317         <parameters>
7318           <parameter name="mgd" transfer-ownership="none">
7319             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
7320             <type name="Connection" c:type="MidgardConnection*"/>
7321           </parameter>
7322           <parameter name="name" transfer-ownership="none">
7323             <doc xml:whitespace="preserve">name of #MidgardDBObjectClass derived class</doc>
7324             <type name="utf8" c:type="gchar*"/>
7325           </parameter>
7326         </parameters>
7327       </function>
7328       <function name="update"
7329                 c:identifier="midgard_storage_update"
7330                 version="10.05">
7331         <doc xml:whitespace="preserve">Update underlying storage.
7332 This method doesn't create storage. It creates new columns if are defined
7333 for class properties and do not exist in storage yet.
7334 See midgard_storage_create() if you need more info about indexes.</doc>
7335         <return-value transfer-ownership="none">
7336           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7337           <type name="boolean" c:type="gboolean"/>
7338         </return-value>
7339         <parameters>
7340           <parameter name="mgd" transfer-ownership="none">
7341             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
7342             <type name="Connection" c:type="MidgardConnection*"/>
7343           </parameter>
7344           <parameter name="name" transfer-ownership="none">
7345             <doc xml:whitespace="preserve">Name of #MidgardDBObjectClass derived class.</doc>
7346             <type name="utf8" c:type="gchar*"/>
7347           </parameter>
7348         </parameters>
7349       </function>
7350       <function name="exists"
7351                 c:identifier="midgard_storage_exists"
7352                 version="10.05">
7353         <doc xml:whitespace="preserve">Checks whether storage for given class exists.</doc>
7354         <return-value transfer-ownership="none">
7355           <doc xml:whitespace="preserve">%TRUE if storage exists, %FALSE otherwise</doc>
7356           <type name="boolean" c:type="gboolean"/>
7357         </return-value>
7358         <parameters>
7359           <parameter name="mgd" transfer-ownership="none">
7360             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
7361             <type name="Connection" c:type="MidgardConnection*"/>
7362           </parameter>
7363           <parameter name="name" transfer-ownership="none">
7364             <doc xml:whitespace="preserve">Name of #MidgardDBObjectClass derived class</doc>
7365             <type name="utf8" c:type="gchar*"/>
7366           </parameter>
7367         </parameters>
7368       </function>
7369       <function name="delete"
7370                 c:identifier="midgard_storage_delete"
7371                 version="10.05">
7372         <doc xml:whitespace="preserve">Delete storage for given class.</doc>
7373         <return-value transfer-ownership="none">
7374           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7375           <type name="boolean" c:type="gboolean"/>
7376         </return-value>
7377         <parameters>
7378           <parameter name="mgd" transfer-ownership="none">
7379             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
7380             <type name="Connection" c:type="MidgardConnection*"/>
7381           </parameter>
7382           <parameter name="name" transfer-ownership="none">
7383             <doc xml:whitespace="preserve">name of #MidgardDBObjectClass derived class.</doc>
7384             <type name="utf8" c:type="gchar*"/>
7385           </parameter>
7386         </parameters>
7387       </function>
7388     </class>
7389     <record name="StorageClass"
7390             c:type="MidgardStorageClass"
7391             glib:is-gtype-struct-for="Storage">
7392     </record>
7393     <record name="Timestamp"
7394             c:type="MidgardTimestamp"
7395             glib:type-name="MidgardTimestamp"
7396             glib:get-type="midgard_timestamp_get_type">
7397       <field name="year" writable="1">
7398         <type name="long" c:type="glong"/>
7399       </field>
7400       <field name="month" writable="1">
7401         <type name="int" c:type="gint"/>
7402       </field>
7403       <field name="day" writable="1">
7404         <type name="int" c:type="gint"/>
7405       </field>
7406       <field name="hour" writable="1">
7407         <type name="int" c:type="gint"/>
7408       </field>
7409       <field name="minute" writable="1">
7410         <type name="int" c:type="gint"/>
7411       </field>
7412       <field name="second" writable="1">
7413         <type name="int" c:type="gint"/>
7414       </field>
7415       <field name="nano" writable="1">
7416         <type name="ulong" c:type="gulong"/>
7417       </field>
7418       <field name="offset" writable="1">
7419         <type name="long" c:type="glong"/>
7420       </field>
7421       <field name="date_value" writable="1">
7422         <type name="uint64" c:type="guint64"/>
7423       </field>
7424       <field name="date_string" writable="1">
7425         <type name="utf8" c:type="gchar*"/>
7426       </field>
7427       <constructor name="new" c:identifier="midgard_timestamp_new">
7428         <return-value transfer-ownership="full">
7429           <type name="Timestamp" c:type="MidgardTimestamp*"/>
7430         </return-value>
7431       </constructor>
7432       <constructor name="new_value_from_iso8601"
7433                    c:identifier="midgard_timestamp_new_value_from_iso8601">
7434         <return-value transfer-ownership="full">
7435           <type name="Timestamp" c:type="GValue*"/>
7436         </return-value>
7437         <parameters>
7438           <parameter name="iso_date" transfer-ownership="none">
7439             <type name="utf8" c:type="gchar*"/>
7440           </parameter>
7441         </parameters>
7442       </constructor>
7443       <constructor name="new_from_iso8601"
7444                    c:identifier="midgard_timestamp_new_from_iso8601">
7445         <return-value transfer-ownership="full">
7446           <type name="Timestamp" c:type="MidgardTimestamp*"/>
7447         </return-value>
7448         <parameters>
7449           <parameter name="iso_date" transfer-ownership="none">
7450             <type name="utf8" c:type="gchar*"/>
7451           </parameter>
7452         </parameters>
7453       </constructor>
7454       <method name="get_string" c:identifier="midgard_timestamp_get_string">
7455         <return-value transfer-ownership="full">
7456           <type name="utf8" c:type="gchar*"/>
7457         </return-value>
7458       </method>
7459       <method name="free" c:identifier="midgard_timestamp_free">
7460         <return-value transfer-ownership="none">
7461           <type name="none" c:type="void"/>
7462         </return-value>
7463       </method>
7464     </record>
7465     <class name="Transaction"
7466            c:type="MidgardTransaction"
7467            parent="GObject.Object"
7468            glib:type-name="MidgardTransaction"
7469            glib:get-type="midgard_transaction_get_type"
7470            glib:type-struct="TransactionClass">
7471       <constructor name="new"
7472                    c:identifier="midgard_transaction_new"
7473                    version="9.09">
7474         <return-value transfer-ownership="full">
7475           <doc xml:whitespace="preserve">New #MidgardTransaction instance or NULL on failure</doc>
7476           <type name="Transaction" c:type="MidgardTransaction*"/>
7477         </return-value>
7478         <parameters>
7479           <parameter name="mgd" transfer-ownership="none">
7480             <type name="Connection" c:type="MidgardConnection*"/>
7481           </parameter>
7482         </parameters>
7483       </constructor>
7484       <virtual-method name="begin" invoker="begin" version="9.09">
7485         <doc xml:whitespace="preserve">Begins new, underlying database provider's transaction.
7486 In case of error, #MidgardConnection error is set to MGD_ERR_INTERNAL.</doc>
7487         <return-value transfer-ownership="none">
7488           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise.</doc>
7489           <type name="boolean" c:type="gboolean"/>
7490         </return-value>
7491       </virtual-method>
7492       <virtual-method name="commit" invoker="commit" version="9.09">
7493         <doc xml:whitespace="preserve">In case of error, #MidgardConnection error is set to MGD_ERR_INTERNAL.</doc>
7494         <return-value transfer-ownership="none">
7495           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7496           <type name="boolean" c:type="gboolean"/>
7497         </return-value>
7498       </virtual-method>
7499       <virtual-method name="rollback" invoker="rollback" version="9.09">
7500         <doc xml:whitespace="preserve">In case of error, #MidgardConnection error is set to MGD_ERR_INTERNAL</doc>
7501         <return-value transfer-ownership="none">
7502           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise.</doc>
7503           <type name="boolean" c:type="gboolean"/>
7504         </return-value>
7505       </virtual-method>
7506       <virtual-method name="get_status" invoker="get_status" version="9.09">
7507         <doc xml:whitespace="preserve">Returns transaction status. %FALSE means, any transaction operation failed.
7508 No #MidgardConnection error is set in case of error.</doc>
7509         <return-value transfer-ownership="none">
7510           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7511           <type name="boolean" c:type="gboolean"/>
7512         </return-value>
7513       </virtual-method>
7514       <virtual-method name="get_name" invoker="get_name" version="9.09">
7515         <return-value transfer-ownership="none">
7516           <doc xml:whitespace="preserve">unique name which identifies given transaction.</doc>
7517           <type name="utf8" c:type="gchar*"/>
7518         </return-value>
7519       </virtual-method>
7520       <method name="begin"
7521               c:identifier="midgard_transaction_begin"
7522               version="9.09">
7523         <doc xml:whitespace="preserve">Begins new, underlying database provider's transaction.
7524 In case of error, #MidgardConnection error is set to MGD_ERR_INTERNAL.</doc>
7525         <return-value transfer-ownership="none">
7526           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise.</doc>
7527           <type name="boolean" c:type="gboolean"/>
7528         </return-value>
7529       </method>
7530       <method name="commit"
7531               c:identifier="midgard_transaction_commit"
7532               version="9.09">
7533         <doc xml:whitespace="preserve">In case of error, #MidgardConnection error is set to MGD_ERR_INTERNAL.</doc>
7534         <return-value transfer-ownership="none">
7535           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7536           <type name="boolean" c:type="gboolean"/>
7537         </return-value>
7538       </method>
7539       <method name="rollback"
7540               c:identifier="midgard_transaction_rollback"
7541               version="9.09">
7542         <doc xml:whitespace="preserve">In case of error, #MidgardConnection error is set to MGD_ERR_INTERNAL</doc>
7543         <return-value transfer-ownership="none">
7544           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise.</doc>
7545           <type name="boolean" c:type="gboolean"/>
7546         </return-value>
7547       </method>
7548       <method name="get_status"
7549               c:identifier="midgard_transaction_get_status"
7550               version="9.09">
7551         <doc xml:whitespace="preserve">Returns transaction status. %FALSE means, any transaction operation failed.
7552 No #MidgardConnection error is set in case of error.</doc>
7553         <return-value transfer-ownership="none">
7554           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7555           <type name="boolean" c:type="gboolean"/>
7556         </return-value>
7557       </method>
7558       <method name="get_name"
7559               c:identifier="midgard_transaction_get_name"
7560               version="9.09">
7561         <return-value transfer-ownership="none">
7562           <doc xml:whitespace="preserve">unique name which identifies given transaction.</doc>
7563           <type name="utf8" c:type="gchar*"/>
7564         </return-value>
7565       </method>
7566       <field name="parent">
7567         <type name="GObject.Object" c:type="GObject"/>
7568       </field>
7569       <field name="priv">
7570         <type name="TransactionPrivate" c:type="MidgardTransactionPrivate*"/>
7571       </field>
7572     </class>
7573     <record name="TransactionClass"
7574             c:type="MidgardTransactionClass"
7575             glib:is-gtype-struct-for="Transaction">
7576       <field name="parent">
7577         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
7578       </field>
7579       <field name="begin">
7580         <callback name="begin" c:type="begin">
7581           <return-value transfer-ownership="none">
7582             <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise.</doc>
7583             <type name="boolean" c:type="gboolean"/>
7584           </return-value>
7585           <parameters>
7586             <parameter name="self" transfer-ownership="none">
7587               <type name="Transaction" c:type="MidgardTransaction*"/>
7588             </parameter>
7589           </parameters>
7590         </callback>
7591       </field>
7592       <field name="commit">
7593         <callback name="commit" c:type="commit">
7594           <return-value transfer-ownership="none">
7595             <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7596             <type name="boolean" c:type="gboolean"/>
7597           </return-value>
7598           <parameters>
7599             <parameter name="self" transfer-ownership="none">
7600               <type name="Transaction" c:type="MidgardTransaction*"/>
7601             </parameter>
7602           </parameters>
7603         </callback>
7604       </field>
7605       <field name="rollback">
7606         <callback name="rollback" c:type="rollback">
7607           <return-value transfer-ownership="none">
7608             <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise.</doc>
7609             <type name="boolean" c:type="gboolean"/>
7610           </return-value>
7611           <parameters>
7612             <parameter name="self" transfer-ownership="none">
7613               <type name="Transaction" c:type="MidgardTransaction*"/>
7614             </parameter>
7615           </parameters>
7616         </callback>
7617       </field>
7618       <field name="get_status">
7619         <callback name="get_status" c:type="get_status">
7620           <return-value transfer-ownership="none">
7621             <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7622             <type name="boolean" c:type="gboolean"/>
7623           </return-value>
7624           <parameters>
7625             <parameter name="self" transfer-ownership="none">
7626               <type name="Transaction" c:type="MidgardTransaction*"/>
7627             </parameter>
7628           </parameters>
7629         </callback>
7630       </field>
7631       <field name="get_name">
7632         <callback name="get_name" c:type="get_name">
7633           <return-value transfer-ownership="none">
7634             <doc xml:whitespace="preserve">unique name which identifies given transaction.</doc>
7635             <type name="utf8" c:type="gchar*"/>
7636           </return-value>
7637           <parameters>
7638             <parameter name="self" transfer-ownership="none">
7639               <type name="Transaction" c:type="MidgardTransaction*"/>
7640             </parameter>
7641           </parameters>
7642         </callback>
7643       </field>
7644     </record>
7645     <record name="TransactionPrivate" c:type="MidgardTransactionPrivate">
7646     </record>
7647     <enumeration name="TypeAuth" c:type="MidgardTypeAuth">
7648       <member name="normal" value="0" c:identifier="MIDGARD_AUTHTYPE_NORMAL"/>
7649       <member name="pam" value="1" c:identifier="MIDGARD_AUTHTYPE_PAM"/>
7650       <member name="trust" value="2" c:identifier="MIDGARD_AUTHTYPE_TRUST"/>
7651     </enumeration>
7652     <record name="TypeHolder" c:type="MidgardTypeHolder">
7653       <field name="elements" writable="1">
7654         <type name="uint" c:type="guint"/>
7655       </field>
7656       <field name="level" writable="1">
7657         <type name="uint" c:type="guint"/>
7658       </field>
7659     </record>
7660     <constant name="USER_PROP_GUID" value="guid">
7661       <type name="utf8"/>
7662     </constant>
7663     <constant name="USER_TYPE_ADMIN" value="2">
7664       <type name="int"/>
7665     </constant>
7666     <constant name="USER_TYPE_NONE" value="0">
7667       <type name="int"/>
7668     </constant>
7669     <constant name="USER_TYPE_USER" value="1">
7670       <type name="int"/>
7671     </constant>
7672     <class name="User"
7673            c:type="MidgardUser"
7674            parent="DBObject"
7675            glib:type-name="MidgardUser"
7676            glib:get-type="midgard_user_get_type"
7677            glib:type-struct="UserClass">
7678       <constructor name="new" c:identifier="midgard_user_new">
7679         <doc xml:whitespace="preserve">in constructor if @parameters argument will be set to not %NULL value.</doc>
7680         <return-value transfer-ownership="full">
7681           <doc xml:whitespace="preserve">#MidgardUser object or %NULL on failure</doc>
7682           <type name="User" c:type="MidgardUser*"/>
7683         </return-value>
7684         <parameters>
7685           <parameter name="mgd" transfer-ownership="none">
7686             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
7687             <type name="Connection" c:type="MidgardConnection*"/>
7688           </parameter>
7689           <parameter name="n_params" transfer-ownership="none">
7690             <doc xml:whitespace="preserve">number of parameters</doc>
7691             <type name="uint" c:type="guint"/>
7692           </parameter>
7693           <parameter name="parameters" transfer-ownership="none">
7694             <doc xml:whitespace="preserve">#GParameter with #MidgardUser properties</doc>
7695             <type name="GObject.Parameter" c:type="GParameter*"/>
7696           </parameter>
7697         </parameters>
7698       </constructor>
7699       <function name="get" c:identifier="midgard_user_get">
7700         <doc xml:whitespace="preserve">Fetch #MidgardUser object from storage. 
7701 At least 'login' and 'authtype' property are required to be set in parameters.
7702 Cases to return %NULL:
7703 &lt;itemizedlist&gt;
7704 &lt;listitem&gt;&lt;para&gt;
7705 'login' or 'authtype' properties do not exist in given parameters (MGD_ERR_INVALID_PROPERTY_VALUE)
7706 &lt;/para&gt;&lt;/listitem&gt;
7707 &lt;listitem&gt;&lt;para&gt;
7708 There's no user object which match given parameters (MGD_ERR_NOT_EXISTS)
7709 &lt;/para&gt;&lt;/listitem&gt;
7710 &lt;listitem&gt;&lt;para&gt;
7711 More than one record found in database (MGD_ERR_INTERNAL)
7712 &lt;/para&gt;&lt;/listitem&gt;
7713 &lt;/itemizedlist&gt;
7714 Since 9.09</doc>
7715         <return-value transfer-ownership="full">
7716           <doc xml:whitespace="preserve">new #MidgardUser instance or %NULL in case of failure</doc>
7717           <type name="User" c:type="MidgardUser*"/>
7718         </return-value>
7719         <parameters>
7720           <parameter name="mgd" transfer-ownership="none">
7721             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
7722             <type name="Connection" c:type="MidgardConnection*"/>
7723           </parameter>
7724           <parameter name="n_params" transfer-ownership="none">
7725             <doc xml:whitespace="preserve">number of parameters</doc>
7726             <type name="uint" c:type="guint"/>
7727           </parameter>
7728           <parameter name="parameters" transfer-ownership="none">
7729             <doc xml:whitespace="preserve">#GParameter with #MidgardUser properties</doc>
7730             <type name="GObject.Parameter" c:type="GParameter*"/>
7731           </parameter>
7732         </parameters>
7733       </function>
7734       <function name="quick_login" c:identifier="midgard_user_quick_login">
7735         <return-value transfer-ownership="full">
7736           <type name="User" c:type="MidgardUser*"/>
7737         </return-value>
7738         <parameters>
7739           <parameter name="mgd" transfer-ownership="none">
7740             <type name="Connection" c:type="MidgardConnection*"/>
7741           </parameter>
7742           <parameter name="login" transfer-ownership="none">
7743             <type name="utf8" c:type="gchar*"/>
7744           </parameter>
7745           <parameter name="password" transfer-ownership="none">
7746             <type name="utf8" c:type="gchar*"/>
7747           </parameter>
7748         </parameters>
7749       </function>
7750       <function name="query" c:identifier="midgard_user_query">
7751         <return-value transfer-ownership="full">
7752           <type name="User" c:type="MidgardUser**"/>
7753         </return-value>
7754         <parameters>
7755           <parameter name="mgd" transfer-ownership="none">
7756             <type name="Connection" c:type="MidgardConnection*"/>
7757           </parameter>
7758           <parameter name="n_params" transfer-ownership="none">
7759             <type name="uint" c:type="guint"/>
7760           </parameter>
7761           <parameter name="parameters" transfer-ownership="none">
7762             <type name="GObject.Parameter" c:type="GParameter*"/>
7763           </parameter>
7764         </parameters>
7765       </function>
7766       <virtual-method name="get_person" invoker="get_person">
7767         <doc xml:whitespace="preserve">Returned object should not be unref.</doc>
7768         <return-value transfer-ownership="full">
7769           <doc xml:whitespace="preserve">#MidgardObject of "midgard_person" type, of %NULL if none associated.</doc>
7770           <type name="Object" c:type="MidgardObject*"/>
7771         </return-value>
7772       </virtual-method>
7773       <virtual-method name="log_in" invoker="log_in">
7774         <return-value transfer-ownership="none">
7775           <type name="boolean" c:type="gboolean"/>
7776         </return-value>
7777       </virtual-method>
7778       <virtual-method name="log_out" invoker="log_out" version="9.09">
7779         <doc xml:whitespace="preserve">Cases to return %FALSE:
7780 &lt;itemizedlist&gt;
7781 &lt;listitem&gt;&lt;para&gt;
7782 There's no user logged in (MGD_ERR_INTERNAL)
7783 &lt;/para&gt;&lt;/listitem&gt;
7784 &lt;listitem&gt;&lt;para&gt;
7785 User is not recently logged in (MGD_ERR_INTERNAL)
7786 &lt;/para&gt;&lt;/listitem&gt;
7787 &lt;/itemizedlist&gt;</doc>
7788         <return-value transfer-ownership="none">
7789           <doc xml:whitespace="preserve">%TRUE if user successfully logs out, %FALSE otherwise</doc>
7790           <type name="boolean" c:type="gboolean"/>
7791         </return-value>
7792       </virtual-method>
7793       <virtual-method name="create" invoker="create">
7794         <return-value transfer-ownership="none">
7795           <type name="boolean" c:type="gboolean"/>
7796         </return-value>
7797       </virtual-method>
7798       <virtual-method name="update" invoker="update" version="9.09">
7799         <doc xml:whitespace="preserve">Updates user storage record
7800 Cases to return %FALSE:
7801 &lt;itemizedlist&gt;
7802 &lt;listitem&gt;&lt;para&gt;
7803 User with such login and authentication type already exists ( MGD_ERR_DUPLICATE ) 
7804 &lt;/para&gt;&lt;/listitem&gt;
7805 &lt;listitem&gt;&lt;para&gt;
7806 User's guid is not set ( MGD_ERR_INVALID_PROPERTY_VALUE )
7807 &lt;/para&gt;&lt;/listitem&gt;
7808 &lt;listitem&gt;&lt;para&gt;
7809 'authtype' property is empty or NULL ( MGD_ERR_INVALID_PROPERTY_VALUE )
7810 &lt;/para&gt;&lt;/listitem&gt;
7811 &lt;listitem&gt;&lt;para&gt;
7812 User record hasn't been found ( MGD_ERR_INTERNAL )
7813 &lt;/para&gt;&lt;/listitem&gt;
7814 &lt;listitem&gt;&lt;para&gt;
7815 Failed to update storage record ( MGD_ERR_INTERNAL )
7816 &lt;/para&gt;&lt;/listitem&gt;
7817 &lt;listitem&gt;&lt;para&gt;
7818 'authtype' property value is invalid ( MGD_ERR_INTERNAL )
7819 &lt;/para&gt;&lt;/listitem&gt;
7820 &lt;/itemizedlist&gt;</doc>
7821         <return-value transfer-ownership="none">
7822           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7823           <type name="boolean" c:type="gboolean"/>
7824         </return-value>
7825       </virtual-method>
7826       <virtual-method name="delete_record">
7827         <return-value transfer-ownership="none">
7828           <type name="boolean" c:type="gboolean"/>
7829         </return-value>
7830       </virtual-method>
7831       <virtual-method name="is_user" invoker="is_user">
7832         <doc xml:whitespace="preserve">Checks if given user is a user.
7833 For example, function will return FALSE for user who is logged in as admin or root.</doc>
7834         <return-value transfer-ownership="none">
7835           <doc xml:whitespace="preserve">%TRUE if user is a user, %FALSE otherwise</doc>
7836           <type name="boolean" c:type="gboolean"/>
7837         </return-value>
7838       </virtual-method>
7839       <virtual-method name="is_admin" invoker="is_admin">
7840         <doc xml:whitespace="preserve">Checks if given user is an admin.</doc>
7841         <return-value transfer-ownership="none">
7842           <doc xml:whitespace="preserve">%TRUE if user is an admin, %FALSE otherwise</doc>
7843           <type name="boolean" c:type="gboolean"/>
7844         </return-value>
7845       </virtual-method>
7846       <method name="create" c:identifier="midgard_user_create">
7847         <return-value transfer-ownership="none">
7848           <type name="boolean" c:type="gboolean"/>
7849         </return-value>
7850       </method>
7851       <method name="update" c:identifier="midgard_user_update" version="9.09">
7852         <doc xml:whitespace="preserve">Updates user storage record
7853 Cases to return %FALSE:
7854 &lt;itemizedlist&gt;
7855 &lt;listitem&gt;&lt;para&gt;
7856 User with such login and authentication type already exists ( MGD_ERR_DUPLICATE ) 
7857 &lt;/para&gt;&lt;/listitem&gt;
7858 &lt;listitem&gt;&lt;para&gt;
7859 User's guid is not set ( MGD_ERR_INVALID_PROPERTY_VALUE )
7860 &lt;/para&gt;&lt;/listitem&gt;
7861 &lt;listitem&gt;&lt;para&gt;
7862 'authtype' property is empty or NULL ( MGD_ERR_INVALID_PROPERTY_VALUE )
7863 &lt;/para&gt;&lt;/listitem&gt;
7864 &lt;listitem&gt;&lt;para&gt;
7865 User record hasn't been found ( MGD_ERR_INTERNAL )
7866 &lt;/para&gt;&lt;/listitem&gt;
7867 &lt;listitem&gt;&lt;para&gt;
7868 Failed to update storage record ( MGD_ERR_INTERNAL )
7869 &lt;/para&gt;&lt;/listitem&gt;
7870 &lt;listitem&gt;&lt;para&gt;
7871 'authtype' property value is invalid ( MGD_ERR_INTERNAL )
7872 &lt;/para&gt;&lt;/listitem&gt;
7873 &lt;/itemizedlist&gt;</doc>
7874         <return-value transfer-ownership="none">
7875           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7876           <type name="boolean" c:type="gboolean"/>
7877         </return-value>
7878       </method>
7879       <method name="delete"
7880               c:identifier="midgard_user_delete"
7881               version="9.09.2">
7882         <doc xml:whitespace="preserve">Delete user's storage record.
7883 Cases to return %FALSE:
7884 &lt;itemizedlist&gt;
7885 &lt;listitem&gt;&lt;para&gt;
7886 User's guid is not set ( MGD_ERR_INVALID_PROPERTY_VALUE )
7887 &lt;/para&gt;&lt;/listitem&gt;
7888 &lt;listitem&gt;&lt;para&gt;
7889 Failed to delete storage record ( MGD_ERR_INTERNAL )
7890 &lt;/para&gt;&lt;/listitem&gt;
7891 &lt;/itemizedlist&gt;</doc>
7892         <return-value transfer-ownership="none">
7893           <doc xml:whitespace="preserve">@TRUE on success, @FALSE otherwise</doc>
7894           <type name="boolean" c:type="gboolean"/>
7895         </return-value>
7896       </method>
7897       <method name="is_user" c:identifier="midgard_user_is_user">
7898         <doc xml:whitespace="preserve">Checks if given user is a user.
7899 For example, function will return FALSE for user who is logged in as admin or root.</doc>
7900         <return-value transfer-ownership="none">
7901           <doc xml:whitespace="preserve">%TRUE if user is a user, %FALSE otherwise</doc>
7902           <type name="boolean" c:type="gboolean"/>
7903         </return-value>
7904       </method>
7905       <method name="is_admin" c:identifier="midgard_user_is_admin">
7906         <doc xml:whitespace="preserve">Checks if given user is an admin.</doc>
7907         <return-value transfer-ownership="none">
7908           <doc xml:whitespace="preserve">%TRUE if user is an admin, %FALSE otherwise</doc>
7909           <type name="boolean" c:type="gboolean"/>
7910         </return-value>
7911       </method>
7912       <method name="get_person" c:identifier="midgard_user_get_person">
7913         <doc xml:whitespace="preserve">Returned object should not be unref.</doc>
7914         <return-value transfer-ownership="full">
7915           <doc xml:whitespace="preserve">#MidgardObject of "midgard_person" type, of %NULL if none associated.</doc>
7916           <type name="Object" c:type="MidgardObject*"/>
7917         </return-value>
7918       </method>
7919       <method name="set_person" c:identifier="midgard_user_set_person">
7920         <doc xml:whitespace="preserve">Associates given #MidgardObject person with @self #MidgardUser.
7921 Sets person property and updates user storage record.
7922 #MidgardUser @self takes ownership of the given #MidgardPerson reference, 
7923 which should be not unref any more.
7924 See midgard_user_update() for returned error details.</doc>
7925         <return-value transfer-ownership="none">
7926           <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
7927           <type name="boolean" c:type="gboolean"/>
7928         </return-value>
7929         <parameters>
7930           <parameter name="person" transfer-ownership="none">
7931             <doc xml:whitespace="preserve">#MidgardObject instance</doc>
7932             <type name="Object" c:type="MidgardObject*"/>
7933           </parameter>
7934         </parameters>
7935       </method>
7936       <method name="log_in" c:identifier="midgard_user_log_in">
7937         <return-value transfer-ownership="none">
7938           <type name="boolean" c:type="gboolean"/>
7939         </return-value>
7940       </method>
7941       <method name="log_out"
7942               c:identifier="midgard_user_log_out"
7943               version="9.09">
7944         <doc xml:whitespace="preserve">Cases to return %FALSE:
7945 &lt;itemizedlist&gt;
7946 &lt;listitem&gt;&lt;para&gt;
7947 There's no user logged in (MGD_ERR_INTERNAL)
7948 &lt;/para&gt;&lt;/listitem&gt;
7949 &lt;listitem&gt;&lt;para&gt;
7950 User is not recently logged in (MGD_ERR_INTERNAL)
7951 &lt;/para&gt;&lt;/listitem&gt;
7952 &lt;/itemizedlist&gt;</doc>
7953         <return-value transfer-ownership="none">
7954           <doc xml:whitespace="preserve">%TRUE if user successfully logs out, %FALSE otherwise</doc>
7955           <type name="boolean" c:type="gboolean"/>
7956         </return-value>
7957       </method>
7958       <method name="set_active" c:identifier="midgard_user_set_active">
7959         <return-value transfer-ownership="none">
7960           <type name="boolean" c:type="gboolean"/>
7961         </return-value>
7962         <parameters>
7963           <parameter name="flag" transfer-ownership="none">
7964             <type name="boolean" c:type="gboolean"/>
7965           </parameter>
7966         </parameters>
7967       </method>
7968       <property name="active" writable="1" transfer-ownership="none">
7969         <type name="boolean" c:type="gboolean"/>
7970       </property>
7971       <property name="authtype" writable="1" transfer-ownership="none">
7972         <type name="utf8" c:type="gchararray"/>
7973       </property>
7974       <property name="authtypeid" transfer-ownership="none">
7975         <type name="uint" c:type="guint"/>
7976       </property>
7977       <property name="guid" transfer-ownership="none">
7978         <type name="utf8" c:type="gchararray"/>
7979       </property>
7980       <property name="login" writable="1" transfer-ownership="none">
7981         <type name="utf8" c:type="gchararray"/>
7982       </property>
7983       <property name="password" writable="1" transfer-ownership="none">
7984         <type name="utf8" c:type="gchararray"/>
7985       </property>
7986       <property name="person" transfer-ownership="none">
7987         <type name="utf8" c:type="gchararray"/>
7988       </property>
7989       <property name="usertype" writable="1" transfer-ownership="none">
7990         <type name="uint" c:type="guint"/>
7991       </property>
7992       <field name="parent">
7993         <type name="DBObject" c:type="MidgardDBObject"/>
7994       </field>
7995       <field name="priv">
7996         <type name="UserPrivate" c:type="MidgardUserPrivate*"/>
7997       </field>
7998     </class>
7999     <record name="UserClass"
8000             c:type="MidgardUserClass"
8001             glib:is-gtype-struct-for="User">
8002       <field name="parent">
8003         <type name="DBObjectClass" c:type="MidgardDBObjectClass"/>
8004       </field>
8005       <field name="get_connection">
8006         <callback name="get_connection" c:type="get_connection">
8007           <return-value transfer-ownership="none">
8008             <type name="Connection" c:type="MidgardConnection*"/>
8009           </return-value>
8010           <parameters>
8011             <parameter transfer-ownership="none">
8012               <type name="DBObject" c:type="MidgardDBObject*"/>
8013             </parameter>
8014           </parameters>
8015         </callback>
8016       </field>
8017       <field name="get_person">
8018         <callback name="get_person" c:type="get_person">
8019           <return-value transfer-ownership="full">
8020             <doc xml:whitespace="preserve">#MidgardObject of "midgard_person" type, of %NULL if none associated.</doc>
8021             <type name="Object" c:type="MidgardObject*"/>
8022           </return-value>
8023           <parameters>
8024             <parameter name="self" transfer-ownership="none">
8025               <type name="User" c:type="MidgardUser*"/>
8026             </parameter>
8027           </parameters>
8028         </callback>
8029       </field>
8030       <field name="log_in">
8031         <callback name="log_in" c:type="log_in">
8032           <return-value transfer-ownership="none">
8033             <type name="boolean" c:type="gboolean"/>
8034           </return-value>
8035           <parameters>
8036             <parameter name="self" transfer-ownership="none">
8037               <type name="User" c:type="MidgardUser*"/>
8038             </parameter>
8039           </parameters>
8040         </callback>
8041       </field>
8042       <field name="log_out">
8043         <callback name="log_out" c:type="log_out">
8044           <return-value transfer-ownership="none">
8045             <doc xml:whitespace="preserve">%TRUE if user successfully logs out, %FALSE otherwise</doc>
8046             <type name="boolean" c:type="gboolean"/>
8047           </return-value>
8048           <parameters>
8049             <parameter name="self" transfer-ownership="none">
8050               <type name="User" c:type="MidgardUser*"/>
8051             </parameter>
8052           </parameters>
8053         </callback>
8054       </field>
8055       <field name="get">
8056         <callback name="get" c:type="get">
8057           <return-value transfer-ownership="full">
8058             <type name="User" c:type="MidgardUser*"/>
8059           </return-value>
8060           <parameters>
8061             <parameter name="mgd" transfer-ownership="none">
8062               <type name="Connection" c:type="MidgardConnection*"/>
8063             </parameter>
8064             <parameter name="n_params" transfer-ownership="none">
8065               <type name="uint" c:type="guint"/>
8066             </parameter>
8067             <parameter name="parameters" transfer-ownership="none">
8068               <type name="GObject.Parameter" c:type="GParameter*"/>
8069             </parameter>
8070           </parameters>
8071         </callback>
8072       </field>
8073       <field name="query">
8074         <callback name="query" c:type="query">
8075           <return-value transfer-ownership="full">
8076             <type name="User" c:type="MidgardUser**"/>
8077           </return-value>
8078           <parameters>
8079             <parameter name="mgd" transfer-ownership="none">
8080               <type name="Connection" c:type="MidgardConnection*"/>
8081             </parameter>
8082             <parameter name="n_params" transfer-ownership="none">
8083               <type name="uint" c:type="guint"/>
8084             </parameter>
8085             <parameter name="parameters" transfer-ownership="none">
8086               <type name="GObject.Parameter" c:type="GParameter*"/>
8087             </parameter>
8088           </parameters>
8089         </callback>
8090       </field>
8091       <field name="create">
8092         <callback name="create" c:type="create">
8093           <return-value transfer-ownership="none">
8094             <type name="boolean" c:type="gboolean"/>
8095           </return-value>
8096           <parameters>
8097             <parameter name="self" transfer-ownership="none">
8098               <type name="User" c:type="MidgardUser*"/>
8099             </parameter>
8100           </parameters>
8101         </callback>
8102       </field>
8103       <field name="update">
8104         <callback name="update" c:type="update">
8105           <return-value transfer-ownership="none">
8106             <doc xml:whitespace="preserve">%TRUE on success, %FALSE otherwise</doc>
8107             <type name="boolean" c:type="gboolean"/>
8108           </return-value>
8109           <parameters>
8110             <parameter name="self" transfer-ownership="none">
8111               <type name="User" c:type="MidgardUser*"/>
8112             </parameter>
8113           </parameters>
8114         </callback>
8115       </field>
8116       <field name="delete_record">
8117         <callback name="delete_record" c:type="delete_record">
8118           <return-value transfer-ownership="none">
8119             <type name="boolean" c:type="gboolean"/>
8120           </return-value>
8121           <parameters>
8122             <parameter name="self" transfer-ownership="none">
8123               <type name="User" c:type="MidgardUser*"/>
8124             </parameter>
8125           </parameters>
8126         </callback>
8127       </field>
8128       <field name="is_user">
8129         <callback name="is_user" c:type="is_user">
8130           <return-value transfer-ownership="none">
8131             <doc xml:whitespace="preserve">%TRUE if user is a user, %FALSE otherwise</doc>
8132             <type name="boolean" c:type="gboolean"/>
8133           </return-value>
8134           <parameters>
8135             <parameter name="self" transfer-ownership="none">
8136               <type name="User" c:type="MidgardUser*"/>
8137             </parameter>
8138           </parameters>
8139         </callback>
8140       </field>
8141       <field name="is_admin">
8142         <callback name="is_admin" c:type="is_admin">
8143           <return-value transfer-ownership="none">
8144             <doc xml:whitespace="preserve">%TRUE if user is an admin, %FALSE otherwise</doc>
8145             <type name="boolean" c:type="gboolean"/>
8146           </return-value>
8147           <parameters>
8148             <parameter name="self" transfer-ownership="none">
8149               <type name="User" c:type="MidgardUser*"/>
8150             </parameter>
8151           </parameters>
8152         </callback>
8153       </field>
8154     </record>
8155     <record name="UserPrivate" c:type="MidgardUserPrivate">
8156     </record>
8157     <class name="View"
8158            c:type="MidgardView"
8159            parent="DBObject"
8160            abstract="1"
8161            glib:type-name="MidgardView"
8162            glib:get-type="midgard_view_get_type"
8163            glib:type-struct="ViewClass">
8164       <field name="parent">
8165         <type name="GObject.Object" c:type="GObject"/>
8166       </field>
8167       <field name="dbpriv">
8168         <type name="DBObjectPrivate" c:type="MidgardDBObjectPrivate*"/>
8169       </field>
8170     </class>
8171     <record name="ViewClass"
8172             c:type="MidgardViewClass"
8173             glib:is-gtype-struct-for="View">
8174       <field name="parent">
8175         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
8176       </field>
8177       <field name="dbpriv">
8178         <type name="DBObjectPrivate" c:type="MidgardDBObjectPrivate*"/>
8179       </field>
8180       <field name="get_connection">
8181         <callback name="get_connection" c:type="get_connection">
8182           <return-value transfer-ownership="none">
8183             <type name="Connection" c:type="MidgardConnection*"/>
8184           </return-value>
8185           <parameters>
8186             <parameter name="object" transfer-ownership="none">
8187               <type name="DBObject" c:type="MidgardDBObject*"/>
8188             </parameter>
8189           </parameters>
8190         </callback>
8191       </field>
8192     </record>
8193     <function name="close" c:identifier="midgard_close">
8194       <return-value transfer-ownership="none">
8195         <type name="none" c:type="void"/>
8196       </return-value>
8197     </function>
8198     <function name="core_timestamp_set_current_time"
8199               c:identifier="midgard_core_timestamp_set_current_time">
8200       <return-value transfer-ownership="none">
8201         <type name="none" c:type="void"/>
8202       </return-value>
8203       <parameters>
8204         <parameter name="tm" transfer-ownership="none">
8205           <type name="Timestamp" c:type="MidgardTimestamp*"/>
8206         </parameter>
8207       </parameters>
8208     </function>
8209     <class name="dbus"
8210            c:type="midgard_dbus"
8211            parent="GObject.Object"
8212            glib:type-name="midgard_dbus"
8213            glib:get-type="midgard_dbus_get_type">
8214       <constructor name="new" c:identifier="midgard_dbus_new">
8215         <return-value transfer-ownership="full">
8216           <doc xml:whitespace="preserve">new #MidgardDBus instance, %NULL otherwise</doc>
8217           <type name="dbus" c:type="MidgardDbus*"/>
8218         </return-value>
8219         <parameters>
8220           <parameter name="mgd" transfer-ownership="none">
8221             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
8222             <type name="Connection" c:type="MidgardConnection*"/>
8223           </parameter>
8224           <parameter name="path" transfer-ownership="none">
8225             <doc xml:whitespace="preserve">a path at which D-Bus object exists</doc>
8226             <type name="utf8" c:type="gchar*"/>
8227           </parameter>
8228           <parameter name="use_session" transfer-ownership="none">
8229             <doc xml:whitespace="preserve">whether to use session bus</doc>
8230             <type name="boolean" c:type="gboolean"/>
8231           </parameter>
8232         </parameters>
8233       </constructor>
8234       <function name="send" c:identifier="midgard_dbus_send">
8235         <doc xml:whitespace="preserve">Emits 'Notified' signal on objects at given @path and sends given message.</doc>
8236         <return-value transfer-ownership="none">
8237           <type name="none" c:type="void"/>
8238         </return-value>
8239         <parameters>
8240           <parameter name="mgd" transfer-ownership="none">
8241             <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
8242             <type name="Connection" c:type="MidgardConnection*"/>
8243           </parameter>
8244           <parameter name="path" transfer-ownership="none">
8245             <doc xml:whitespace="preserve">dbus path at which we expect recipients</doc>
8246             <type name="utf8" c:type="gchar*"/>
8247           </parameter>
8248           <parameter name="message" transfer-ownership="none">
8249             <doc xml:whitespace="preserve">a message to be sent</doc>
8250             <type name="utf8" c:type="gchar*"/>
8251           </parameter>
8252           <parameter name="use_session" transfer-ownership="none">
8253             <doc xml:whitespace="preserve">whether to use system or session bus</doc>
8254             <type name="boolean" c:type="gboolean"/>
8255           </parameter>
8256         </parameters>
8257       </function>
8258       <function name="get_name" c:identifier="midgard_dbus_get_name">
8259         <return-value transfer-ownership="none">
8260           <type name="utf8" c:type="gchar*"/>
8261         </return-value>
8262       </function>
8263       <method name="get_message" c:identifier="midgard_dbus_get_message">
8264         <doc xml:whitespace="preserve">Get message associated with givven instance.</doc>
8265         <return-value transfer-ownership="none">
8266           <doc xml:whitespace="preserve">pointer to object's message or %NULL</doc>
8267           <type name="utf8" c:type="gchar*"/>
8268         </return-value>
8269       </method>
8270       <glib:signal name="notified">
8271         <return-value transfer-ownership="full">
8272           <type name="none" c:type="void"/>
8273         </return-value>
8274         <parameters>
8275           <parameter name="object" transfer-ownership="none">
8276             <type name="utf8" c:type="gchararray"/>
8277           </parameter>
8278         </parameters>
8279       </glib:signal>
8280     </class>
8281     <function name="dbus_glib_marshal_midgard_dbus_BOOLEAN__STRING_POINTER"
8282               c:identifier="dbus_glib_marshal_midgard_dbus_BOOLEAN__STRING_POINTER">
8283       <return-value transfer-ownership="none">
8284         <type name="none" c:type="void"/>
8285       </return-value>
8286       <parameters>
8287         <parameter name="closure" transfer-ownership="none">
8288           <type name="GObject.Closure" c:type="GClosure*"/>
8289         </parameter>
8290         <parameter name="return_value" transfer-ownership="none">
8291           <type name="GObject.Value" c:type="GValue*"/>
8292         </parameter>
8293         <parameter name="n_param_values" transfer-ownership="none">
8294           <type name="uint" c:type="guint"/>
8295         </parameter>
8296         <parameter name="param_values" transfer-ownership="none">
8297           <type name="GObject.Value" c:type="GValue*"/>
8298         </parameter>
8299         <parameter name="invocation_hint" transfer-ownership="none">
8300           <type name="any" c:type="gpointer"/>
8301         </parameter>
8302         <parameter name="marshal_data" transfer-ownership="none">
8303           <type name="any" c:type="gpointer"/>
8304         </parameter>
8305       </parameters>
8306     </function>
8307     <function name="error_default_log"
8308               c:identifier="midgard_error_default_log">
8309       <doc xml:whitespace="preserve">structure. This function checks pointer type using MIDGARD_IS_CONNECTION
8310 convention macro. Next midgard_connection_get_loglevel is called to get loglevel.
8311 If MidgardConnection check fails , a typecast to MidgardTypeHolder is made.
8312 In this case, level member is used to get loglevel.
8313 You are responsible to correctly set MidgardConnection or MidgardTypeHolder
8314 before passing ptr argument. The main approach is to follow configuration's
8315 loglevel even if MidgardConnection pointer is not yet available.</doc>
8316       <return-value transfer-ownership="none">
8317         <type name="none" c:type="void"/>
8318       </return-value>
8319       <parameters>
8320         <parameter name="domain" transfer-ownership="none">
8321           <doc xml:whitespace="preserve">domain for the given log message</doc>
8322           <type name="utf8" c:type="gchar*"/>
8323         </parameter>
8324         <parameter name="level" transfer-ownership="none">
8325           <doc xml:whitespace="preserve">GLogLevelFlags</doc>
8326           <type name="GLib.LogLevelFlags" c:type="GLogLevelFlags"/>
8327         </parameter>
8328         <parameter name="msg" transfer-ownership="none">
8329           <doc xml:whitespace="preserve">log message</doc>
8330           <type name="utf8" c:type="gchar*"/>
8331         </parameter>
8332         <parameter name="ptr" transfer-ownership="none">
8333           <doc xml:whitespace="preserve">pointer to structure which holds loglevel</doc>
8334           <type name="any" c:type="gpointer"/>
8335         </parameter>
8336       </parameters>
8337     </function>
8338     <function name="error_generic" c:identifier="midgard_error_generic">
8339       <doc xml:whitespace="preserve">GQuark for Midgard Error. It's used by Midgard Error implementation, and 
8340 probably not needed to use by any application.</doc>
8341       <return-value transfer-ownership="full">
8342         <doc xml:whitespace="preserve">MGD_GENERIC_ERROR GQuark</doc>
8343         <type name="GLib.Quark" c:type="GQuark"/>
8344       </return-value>
8345     </function>
8346     <function name="error_parse_loglevel"
8347               c:identifier="midgard_error_parse_loglevel">
8348       <doc xml:whitespace="preserve">This function returns level registered in GLib.</doc>
8349       <return-value transfer-ownership="none">
8350         <doc xml:whitespace="preserve">#GLogLevelFlags or -1 on failure</doc>
8351         <type name="int" c:type="gint"/>
8352       </return-value>
8353       <parameters>
8354         <parameter name="levelstring" transfer-ownership="none">
8355           <doc xml:whitespace="preserve">string which should be parsed</doc>
8356           <type name="utf8" c:type="gchar*"/>
8357         </parameter>
8358       </parameters>
8359     </function>
8360     <function name="error_string" c:identifier="midgard_error_string">
8361       <doc xml:whitespace="preserve">Get error message for the given error code.</doc>
8362       <return-value transfer-ownership="none">
8363         <doc xml:whitespace="preserve">error messages which is owned by midgard-core and should not be freed.</doc>
8364         <type name="utf8" c:type="gchar*"/>
8365       </return-value>
8366       <parameters>
8367         <parameter name="domain" transfer-ownership="none">
8368           <doc xml:whitespace="preserve">GQuark which represents MidgardError domain.</doc>
8369           <type name="GLib.Quark" c:type="GQuark"/>
8370         </parameter>
8371         <parameter name="errcode" transfer-ownership="none">
8372           <doc xml:whitespace="preserve">MidgardErrorGeneric enum value.</doc>
8373           <type name="int" c:type="gint"/>
8374         </parameter>
8375       </parameters>
8376     </function>
8377     <function name="guid_external" c:identifier="midgard_guid_external">
8378       <return-value transfer-ownership="full">
8379         <type name="utf8" c:type="gchar*"/>
8380       </return-value>
8381       <parameters>
8382         <parameter name="mgd" transfer-ownership="none">
8383           <type name="Connection" c:type="MidgardConnection*"/>
8384         </parameter>
8385         <parameter name="external" transfer-ownership="none">
8386           <type name="utf8" c:type="gchar*"/>
8387         </parameter>
8388       </parameters>
8389     </function>
8390     <function name="guid_new" c:identifier="midgard_guid_new">
8391       <return-value transfer-ownership="full">
8392         <type name="utf8" c:type="gchar*"/>
8393       </return-value>
8394       <parameters>
8395         <parameter name="mgd" transfer-ownership="none">
8396           <type name="Connection" c:type="MidgardConnection*"/>
8397         </parameter>
8398       </parameters>
8399     </function>
8400     <function name="hash_strings_new" c:identifier="midgard_hash_strings_new">
8401       <return-value transfer-ownership="full">
8402         <type name="GLib.HashTable" c:type="GHashTable*"/>
8403       </return-value>
8404     </function>
8405     <function name="init" c:identifier="midgard_init">
8406       <return-value transfer-ownership="none">
8407         <type name="none" c:type="void"/>
8408       </return-value>
8409     </function>
8410     <function name="is_guid" c:identifier="midgard_is_guid">
8411       <return-value transfer-ownership="none">
8412         <type name="boolean" c:type="gboolean"/>
8413       </return-value>
8414       <parameters>
8415         <parameter name="guid" transfer-ownership="none">
8416           <type name="utf8" c:type="gchar*"/>
8417         </parameter>
8418       </parameters>
8419     </function>
8420     <function name="is_uuid" c:identifier="midgard_is_uuid">
8421       <return-value transfer-ownership="none">
8422         <type name="boolean" c:type="gboolean"/>
8423       </return-value>
8424       <parameters>
8425         <parameter name="uuid" transfer-ownership="none">
8426           <type name="utf8" c:type="gchar*"/>
8427         </parameter>
8428       </parameters>
8429     </function>
8430     <function name="mgd_create_guid" c:identifier="mgd_create_guid">
8431       <return-value transfer-ownership="full">
8432         <type name="utf8" c:type="gchar*"/>
8433       </return-value>
8434       <parameters>
8435         <parameter name="mgd" transfer-ownership="none">
8436           <type name="Connection" c:type="MidgardConnection*"/>
8437         </parameter>
8438         <parameter name="table" transfer-ownership="none">
8439           <type name="utf8" c:type="gchar*"/>
8440         </parameter>
8441         <parameter name="id" transfer-ownership="none">
8442           <type name="uint" c:type="guint"/>
8443         </parameter>
8444       </parameters>
8445     </function>
8446     <function name="mgd_info" c:identifier="mgd_info" introspectable="0">
8447       <return-value transfer-ownership="none">
8448         <type name="none" c:type="void"/>
8449       </return-value>
8450       <parameters>
8451         <parameter name="format" transfer-ownership="none">
8452           <type name="utf8" c:type="gchar*"/>
8453         </parameter>
8454         <parameter transfer-ownership="none">
8455           <varargs>
8456           </varargs>
8457         </parameter>
8458       </parameters>
8459     </function>
8460     <function name="quota_create" c:identifier="midgard_quota_create">
8461       <return-value transfer-ownership="none">
8462         <type name="boolean" c:type="gboolean"/>
8463       </return-value>
8464       <parameters>
8465         <parameter name="object" transfer-ownership="none">
8466           <type name="Object" c:type="MidgardObject*"/>
8467         </parameter>
8468       </parameters>
8469     </function>
8470     <function name="quota_get_object_size"
8471               c:identifier="midgard_quota_get_object_size">
8472       <return-value transfer-ownership="none">
8473         <type name="uint" c:type="guint"/>
8474       </return-value>
8475       <parameters>
8476         <parameter name="object" transfer-ownership="none">
8477           <type name="Object" c:type="MidgardObject*"/>
8478         </parameter>
8479       </parameters>
8480     </function>
8481     <function name="quota_get_type_size"
8482               c:identifier="midgard_quota_get_type_size">
8483       <return-value transfer-ownership="none">
8484         <type name="uint" c:type="guint"/>
8485       </return-value>
8486       <parameters>
8487         <parameter name="mgd" transfer-ownership="none">
8488           <type name="Connection" c:type="MidgardConnection*"/>
8489         </parameter>
8490         <parameter name="typename" transfer-ownership="none">
8491           <type name="utf8" c:type="gchar*"/>
8492         </parameter>
8493       </parameters>
8494     </function>
8495     <function name="quota_remove" c:identifier="midgard_quota_remove">
8496       <return-value transfer-ownership="none">
8497         <type name="none" c:type="void"/>
8498       </return-value>
8499       <parameters>
8500         <parameter name="object" transfer-ownership="none">
8501           <type name="Object" c:type="MidgardObject*"/>
8502         </parameter>
8503         <parameter name="size" transfer-ownership="none">
8504           <type name="uint" c:type="guint"/>
8505         </parameter>
8506       </parameters>
8507     </function>
8508     <function name="quota_set_type_size"
8509               c:identifier="midgard_quota_set_type_size">
8510       <return-value transfer-ownership="none">
8511         <type name="none" c:type="void"/>
8512       </return-value>
8513       <parameters>
8514         <parameter name="mgd" transfer-ownership="none">
8515           <type name="Connection" c:type="MidgardConnection*"/>
8516         </parameter>
8517         <parameter name="typename" transfer-ownership="none">
8518           <type name="utf8" c:type="gchar*"/>
8519         </parameter>
8520         <parameter name="size" transfer-ownership="none">
8521           <type name="uint" c:type="guint"/>
8522         </parameter>
8523         <parameter name="records" transfer-ownership="none">
8524           <type name="uint" c:type="guint"/>
8525         </parameter>
8526       </parameters>
8527     </function>
8528     <function name="quota_size_is_reached"
8529               c:identifier="midgard_quota_size_is_reached">
8530       <return-value transfer-ownership="none">
8531         <type name="boolean" c:type="gboolean"/>
8532       </return-value>
8533       <parameters>
8534         <parameter name="object" transfer-ownership="none">
8535           <type name="Object" c:type="MidgardObject*"/>
8536         </parameter>
8537         <parameter name="size" transfer-ownership="none">
8538           <type name="int" c:type="gint"/>
8539         </parameter>
8540       </parameters>
8541     </function>
8542     <function name="quota_update" c:identifier="midgard_quota_update">
8543       <return-value transfer-ownership="none">
8544         <type name="boolean" c:type="gboolean"/>
8545       </return-value>
8546       <parameters>
8547         <parameter name="object" transfer-ownership="none">
8548           <type name="Object" c:type="MidgardObject*"/>
8549         </parameter>
8550         <parameter name="init_size" transfer-ownership="none">
8551           <type name="uint" c:type="guint"/>
8552         </parameter>
8553       </parameters>
8554     </function>
8555     <class name="reflection_property"
8556            c:type="midgard_reflection_property"
8557            parent="GObject.Object"
8558            glib:type-name="midgard_reflection_property"
8559            glib:get-type="midgard_reflection_property_get_type">
8560       <constructor name="new" c:identifier="midgard_reflection_property_new">
8561         <doc xml:whitespace="preserve">Deprecated:10.05</doc>
8562         <return-value transfer-ownership="full">
8563           <doc xml:whitespace="preserve">newly initialized #MidgardReflectionProperty instance or %NULL on failure.</doc>
8564           <type name="reflection_property"
8565                 c:type="MidgardReflectionProperty*"/>
8566         </return-value>
8567         <parameters>
8568           <parameter name="klass" transfer-ownership="none">
8569             <doc xml:whitespace="preserve">#MidgardDBObjectClass pointer</doc>
8570             <type name="DBObjectClass" c:type="MidgardDBObjectClass*"/>
8571           </parameter>
8572         </parameters>
8573       </constructor>
8574       <method name="get_midgard_type"
8575               c:identifier="midgard_reflection_property_get_midgard_type">
8576         <doc xml:whitespace="preserve">Deprecated:10.05</doc>
8577         <return-value transfer-ownership="none">
8578           <doc xml:whitespace="preserve">type (#GType) of the property or %NULL if property is not registered for given class.</doc>
8579           <type name="GType" c:type="GType"/>
8580         </return-value>
8581         <parameters>
8582           <parameter name="propname" transfer-ownership="none">
8583             <doc xml:whitespace="preserve">property name which is registered for #MidgardDBObjectClass</doc>
8584             <type name="utf8" c:type="gchar*"/>
8585           </parameter>
8586         </parameters>
8587       </method>
8588       <method name="is_link"
8589               c:identifier="midgard_reflection_property_is_link">
8590         <doc xml:whitespace="preserve">Checks whether property is a link.
8591 Deprecated:10.05</doc>
8592         <return-value transfer-ownership="none">
8593           <doc xml:whitespace="preserve">%TRUE if property is registered as link, %FALSE otherwise (or in case if property is not registered for given class.</doc>
8594           <type name="boolean" c:type="gboolean"/>
8595         </return-value>
8596         <parameters>
8597           <parameter name="propname" transfer-ownership="none">
8598             <doc xml:whitespace="preserve">property name</doc>
8599             <type name="utf8" c:type="gchar*"/>
8600           </parameter>
8601         </parameters>
8602       </method>
8603       <method name="is_linked"
8604               c:identifier="midgard_reflection_property_is_linked">
8605         <doc xml:whitespace="preserve">Checks if property is linked with another type. 
8606 %FALSE is returned if property is not linked or is not registered for given class.
8607 Deprecated:10.05</doc>
8608         <return-value transfer-ownership="none">
8609           <doc xml:whitespace="preserve">%TRUE if property is linked with another type (property of another class is defined as a link to given one).</doc>
8610           <type name="boolean" c:type="gboolean"/>
8611         </return-value>
8612         <parameters>
8613           <parameter name="propname" transfer-ownership="none">
8614             <doc xml:whitespace="preserve">property name</doc>
8615             <type name="utf8" c:type="gchar*"/>
8616           </parameter>
8617         </parameters>
8618       </method>
8619       <method name="get_link_class"
8620               c:identifier="midgard_reflection_property_get_link_class">
8621         <doc xml:whitespace="preserve">Returns the pointer to the #MidgardDBObjectClass, a given property is a link to.
8622 Deprecated:10.05</doc>
8623         <return-value transfer-ownership="none">
8624           <type name="DBObjectClass" c:type="MidgardDBObjectClass*"/>
8625         </return-value>
8626         <parameters>
8627           <parameter name="propname" transfer-ownership="none">
8628             <doc xml:whitespace="preserve">property name</doc>
8629             <type name="utf8" c:type="gchar*"/>
8630           </parameter>
8631         </parameters>
8632       </method>
8633       <method name="get_link_name"
8634               c:identifier="midgard_reflection_property_get_link_name">
8635         <doc xml:whitespace="preserve">Or %NULL if property is not a link or given property is not registered for given class.
8636 Deprecated:10.05</doc>
8637         <return-value transfer-ownership="none">
8638           <doc xml:whitespace="preserve">The name of the class, the given property is a link to.</doc>
8639           <type name="utf8" c:type="gchar*"/>
8640         </return-value>
8641         <parameters>
8642           <parameter name="propname" transfer-ownership="none">
8643             <doc xml:whitespace="preserve">property name</doc>
8644             <type name="utf8" c:type="gchar*"/>
8645           </parameter>
8646         </parameters>
8647       </method>
8648       <method name="get_link_target"
8649               c:identifier="midgard_reflection_property_get_link_target">
8650         <doc xml:whitespace="preserve">Or %NULL if property is not a link or it's not registered for given class.
8651 Deprecated:10.05</doc>
8652         <return-value transfer-ownership="none">
8653           <doc xml:whitespace="preserve">The name of the property, the given one is a link to.</doc>
8654           <type name="utf8" c:type="gchar*"/>
8655         </return-value>
8656         <parameters>
8657           <parameter name="propname" transfer-ownership="none">
8658             <doc xml:whitespace="preserve">property name</doc>
8659             <type name="utf8" c:type="gchar*"/>
8660           </parameter>
8661         </parameters>
8662       </method>
8663       <method name="description"
8664               c:identifier="midgard_reflection_property_description">
8665         <doc xml:whitespace="preserve">Deprecated:10.05</doc>
8666         <return-value transfer-ownership="none">
8667           <doc xml:whitespace="preserve">description of the given property or %NULL.</doc>
8668           <type name="utf8" c:type="gchar*"/>
8669         </return-value>
8670         <parameters>
8671           <parameter name="propname" transfer-ownership="none">
8672             <doc xml:whitespace="preserve">property name</doc>
8673             <type name="utf8" c:type="gchar*"/>
8674           </parameter>
8675         </parameters>
8676       </method>
8677       <method name="get_user_value"
8678               c:identifier="midgard_reflection_property_get_user_value"
8679               version="9.09">
8680         <doc xml:whitespace="preserve">Deprecated:10.05</doc>
8681         <return-value transfer-ownership="none">
8682           <doc xml:whitespace="preserve">value for user defined field, or NULL if none found</doc>
8683           <type name="utf8" c:type="gchar*"/>
8684         </return-value>
8685         <parameters>
8686           <parameter name="property" transfer-ownership="none">
8687             <doc xml:whitespace="preserve">property to look value for</doc>
8688             <type name="utf8" c:type="gchar*"/>
8689           </parameter>
8690           <parameter name="name" transfer-ownership="none">
8691             <doc xml:whitespace="preserve">name of user defined field</doc>
8692             <type name="utf8" c:type="gchar*"/>
8693           </parameter>
8694         </parameters>
8695       </method>
8696       <method name="is_private"
8697               c:identifier="midgard_reflection_property_is_private">
8698         <doc xml:whitespace="preserve">Deprecated:10.05</doc>
8699         <return-value transfer-ownership="none">
8700           <doc xml:whitespace="preserve">%TRUE, if propery is defined private, %FALSE otherwise</doc>
8701           <type name="boolean" c:type="gboolean"/>
8702         </return-value>
8703         <parameters>
8704           <parameter name="property" transfer-ownership="none">
8705             <doc xml:whitespace="preserve">property name to check</doc>
8706             <type name="utf8" c:type="gchar*"/>
8707           </parameter>
8708         </parameters>
8709       </method>
8710     </class>
8711     <function name="set_error"
8712               c:identifier="midgard_set_error"
8713               introspectable="0">
8714       <doc xml:whitespace="preserve">This function sets internal error constant, and creates new error message.
8715 User defined message is appended to internal one.
8716 Any message created by application ( and its corresponding constant ) are destroyed 
8717 and reset to MGD_ERR_OK when any API function is invoked.
8718 Second @domain parameter is optional , and can be safely defined as NULL for 
8719 MGD_GENERIC_ERROR domain.
8720 &lt;example&gt;
8721 &lt;programlisting&gt;
8722 void set_wrong_property(MidgardConnection *mgd, gchar *prop)
8723 {
8724 midgard_set_error(mgd, NULL, 
8725 MGD_ERR_INVALID_PROPERTY_VALUE,
8726 "My application doesn't accept %s property",
8727 prop);
8728 }
8729 &lt;/programlisting&gt;
8730 &lt;/example&gt;</doc>
8731       <return-value transfer-ownership="none">
8732         <type name="none" c:type="void"/>
8733       </return-value>
8734       <parameters>
8735         <parameter name="mgd" transfer-ownership="none">
8736           <doc xml:whitespace="preserve">#MidgardConnection instance</doc>
8737           <type name="Connection" c:type="MidgardConnection*"/>
8738         </parameter>
8739         <parameter name="domain" transfer-ownership="none">
8740           <doc xml:whitespace="preserve">GQuark which represents MidgardError domain</doc>
8741           <type name="GLib.Quark" c:type="GQuark"/>
8742         </parameter>
8743         <parameter name="errcode" transfer-ownership="none">
8744           <doc xml:whitespace="preserve">#MidgardErrorGeneric enum value</doc>
8745           <type name="int" c:type="gint"/>
8746         </parameter>
8747         <parameter name="msg" transfer-ownership="none">
8748           <doc xml:whitespace="preserve">a message which should be appended to string represented by errcode</doc>
8749           <type name="utf8" c:type="gchar*"/>
8750         </parameter>
8751         <parameter transfer-ownership="none">
8752           <varargs>
8753           </varargs>
8754         </parameter>
8755       </parameters>
8756     </function>
8757     <function name="timestamp_get_string_from_value"
8758               c:identifier="midgard_timestamp_get_string_from_value">
8759       <return-value transfer-ownership="full">
8760         <type name="utf8" c:type="gchar*"/>
8761       </return-value>
8762       <parameters>
8763         <parameter name="value" transfer-ownership="none">
8764           <type name="GObject.Value" c:type="GValue*"/>
8765         </parameter>
8766       </parameters>
8767     </function>
8768     <function name="timestamp_new_current"
8769               c:identifier="midgard_timestamp_new_current">
8770       <return-value transfer-ownership="none">
8771         <type name="none" c:type="void"/>
8772       </return-value>
8773       <parameters>
8774         <parameter name="value" transfer-ownership="none">
8775           <type name="GObject.Value" c:type="GValue*"/>
8776         </parameter>
8777       </parameters>
8778     </function>
8779     <function name="timestamp_set_current_time"
8780               c:identifier="midgard_timestamp_set_current_time">
8781       <return-value transfer-ownership="none">
8782         <type name="none" c:type="void"/>
8783       </return-value>
8784       <parameters>
8785         <parameter name="value" transfer-ownership="none">
8786           <type name="GObject.Value" c:type="GValue*"/>
8787         </parameter>
8788       </parameters>
8789     </function>
8790     <function name="uuid_external" c:identifier="midgard_uuid_external">
8791       <return-value transfer-ownership="full">
8792         <type name="utf8" c:type="gchar*"/>
8793       </return-value>
8794       <parameters>
8795         <parameter name="external" transfer-ownership="none">
8796           <type name="utf8" c:type="gchar*"/>
8797         </parameter>
8798       </parameters>
8799     </function>
8800     <function name="uuid_new" c:identifier="midgard_uuid_new">
8801       <return-value transfer-ownership="full">
8802         <type name="utf8" c:type="gchar*"/>
8803       </return-value>
8804     </function>
8805     <function name="version" c:identifier="midgard_version">
8806       <return-value transfer-ownership="none">
8807         <type name="utf8" c:type="char*"/>
8808       </return-value>
8809     </function>
8810   </namespace>
8811 </repository>