~ubuntu-branches/ubuntu/quantal/glib2.0/quantal-updates

« back to all changes in this revision

Viewing changes to docs/reference/glib/html/glib-GVariant.html

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2012-09-20 18:05:37 UTC
  • mfrom: (1.63.9) (162.1.6 quantal)
  • Revision ID: package-import@ubuntu.com-20120920180537-ztouhce80mq4z76j
Tags: 2.33.14-1svn1
Upload current Debian packaging svn head.

* debian/rules: Only run tests for the main flavour; it takes too
  long for all three and does not give us a lot of extra confidence.
* Add 07_socket_test_bump_max_time.patch: Increase /socket/timed_wait test
  max time. On slow architectures like armel, this test often fails due to
  "(poll_duration < 110000): (154022 < 110000)".

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
<head>
4
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
5
<title>GVariant</title>
6
 
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
 
6
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7
7
<link rel="home" href="index.html" title="GLib Reference Manual">
8
8
<link rel="up" href="glib-data-types.html" title="GLib Data Types">
9
9
<link rel="prev" href="glib-GVariantType.html" title="GVariantType">
10
10
<link rel="next" href="gvariant-format-strings.html" title="GVariant Format Strings">
11
 
<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
 
11
<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12
12
<link rel="stylesheet" href="style.css" type="text/css">
13
13
</head>
14
14
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
268
268
<a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> is largely compatible with D-Bus.  Almost all types of
269
269
<a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instances can be sent over D-Bus.  See <a class="link" href="glib-GVariantType.html#GVariantType" title="GVariantType"><span class="type">GVariantType</span></a> for
270
270
exceptions.  (However, <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a>'s serialisation format is not the same
271
 
as the serialisation format of a D-Bus message body: use <a href="http://library.gnome.org/devel/gio/unstable/GDBusMessage.html"><span class="type">GDBusMessage</span></a>,
 
271
as the serialisation format of a D-Bus message body: use <a href="./../gio/gio/GDBusMessage.html"><span class="type">GDBusMessage</span></a>,
272
272
in the gio library, for those.)
273
273
</p>
274
274
<p>
299
299
<p>
300
300
</p>
301
301
<div class="refsect2">
302
 
<a name="id1033492"></a><h3>Memory Use</h3>
 
302
<a name="idp63002048"></a><h3>Memory Use</h3>
303
303
<p>
304
304
  <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> tries to be quite efficient with respect to memory use.
305
305
  This section gives a rough idea of how much memory is used by the
381
381
  </p>
382
382
</div>
383
383
<div class="refsect3">
384
 
<a name="id1033592"></a><h4>Type Information Cache</h4>
 
384
<a name="idp63014000"></a><h4>Type Information Cache</h4>
385
385
<p>
386
386
   For each GVariant type that currently exists in the program a type
387
387
   information structure is kept in the type information cache.  The
436
436
  </p>
437
437
</div>
438
438
<div class="refsect3">
439
 
<a name="id1033661"></a><h4>Buffer Management Memory</h4>
 
439
<a name="idp63022384"></a><h4>Buffer Management Memory</h4>
440
440
<p>
441
441
   <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> uses an internal buffer management structure to deal
442
442
   with the various different possible sources of serialised data
452
452
  </p>
453
453
</div>
454
454
<div class="refsect3">
455
 
<a name="id1033716"></a><h4>GVariant structure</h4>
 
455
<a name="idp63028880"></a><h4>GVariant structure</h4>
456
456
<p>
457
457
   The size of a <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> structure is 6 * (void *).  On 32 bit
458
458
   systems, that's 24 bytes.
477
477
  </p>
478
478
</div>
479
479
<div class="refsect3">
480
 
<a name="id1033777"></a><h4>Summary</h4>
 
480
<a name="idp63036272"></a><h4>Summary</h4>
481
481
<p>
482
482
   To put the entire example together, for our dictionary mapping
483
483
   strings to variants (with two entries, as given above), we are
515
515
Decreases the reference count of <em class="parameter"><code>value</code></em>.  When its reference count
516
516
drops to 0, the memory used by the variant is freed.
517
517
</p>
518
 
<div class="variablelist"><table border="0" class="variablelist">
519
 
<colgroup>
 
518
<div class="variablelist"><table border="0">
520
519
<col align="left" valign="top">
521
 
<col>
522
 
</colgroup>
523
520
<tbody><tr>
524
521
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
525
522
<td>a <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a>
535
532
<p>
536
533
Increases the reference count of <em class="parameter"><code>value</code></em>.
537
534
</p>
538
 
<div class="variablelist"><table border="0" class="variablelist">
539
 
<colgroup>
 
535
<div class="variablelist"><table border="0">
540
536
<col align="left" valign="top">
541
 
<col>
542
 
</colgroup>
543
537
<tbody>
544
538
<tr>
545
539
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
586
580
maintaining normal refcounting semantics in situations where values
587
581
are not floating.
588
582
</p>
589
 
<div class="variablelist"><table border="0" class="variablelist">
590
 
<colgroup>
 
583
<div class="variablelist"><table border="0">
591
584
<col align="left" valign="top">
592
 
<col>
593
 
</colgroup>
594
585
<tbody>
595
586
<tr>
596
587
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
623
614
See <a class="link" href="glib-GVariant.html#g-variant-ref-sink" title="g_variant_ref_sink ()"><code class="function">g_variant_ref_sink()</code></a> for more information about floating reference
624
615
counts.
625
616
</p>
626
 
<div class="variablelist"><table border="0" class="variablelist">
627
 
<colgroup>
 
617
<div class="variablelist"><table border="0">
628
618
<col align="left" valign="top">
629
 
<col>
630
 
</colgroup>
631
619
<tbody>
632
620
<tr>
633
621
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
685
673
an additional reference on top of that one is added.  It is best to
686
674
avoid this situation.
687
675
</p>
688
 
<div class="variablelist"><table border="0" class="variablelist">
689
 
<colgroup>
 
676
<div class="variablelist"><table border="0">
690
677
<col align="left" valign="top">
691
 
<col>
692
 
</colgroup>
693
678
<tbody>
694
679
<tr>
695
680
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
715
700
The return value is valid for the lifetime of <em class="parameter"><code>value</code></em> and must not
716
701
be freed.
717
702
</p>
718
 
<div class="variablelist"><table border="0" class="variablelist">
719
 
<colgroup>
 
703
<div class="variablelist"><table border="0">
720
704
<col align="left" valign="top">
721
 
<col>
722
 
</colgroup>
723
705
<tbody>
724
706
<tr>
725
707
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
744
726
<a class="link" href="glib-GVariantType.html#g-variant-type-peek-string" title="g_variant_type_peek_string ()"><code class="function">g_variant_type_peek_string()</code></a>, this string is nul-terminated.  This
745
727
string belongs to <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> and must not be freed.
746
728
</p>
747
 
<div class="variablelist"><table border="0" class="variablelist">
748
 
<colgroup>
 
729
<div class="variablelist"><table border="0">
749
730
<col align="left" valign="top">
750
 
<col>
751
 
</colgroup>
752
731
<tbody>
753
732
<tr>
754
733
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
772
751
<p>
773
752
Checks if a value has a type matching the provided type.
774
753
</p>
775
 
<div class="variablelist"><table border="0" class="variablelist">
776
 
<colgroup>
 
754
<div class="variablelist"><table border="0">
777
755
<col align="left" valign="top">
778
 
<col>
779
 
</colgroup>
780
756
<tbody>
781
757
<tr>
782
758
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
804
780
<p>
805
781
Checks if <em class="parameter"><code>value</code></em> is a container.
806
782
</p>
807
 
<div class="variablelist"><table border="0" class="variablelist">
808
 
<colgroup>
 
783
<div class="variablelist"><table border="0">
809
784
<col align="left" valign="top">
810
 
<col>
811
 
</colgroup>
812
785
<tbody>
813
786
<tr>
814
787
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
853
826
If you only require an equality comparison, <a class="link" href="glib-GVariant.html#g-variant-equal" title="g_variant_equal ()"><code class="function">g_variant_equal()</code></a> is more
854
827
general.
855
828
</p>
856
 
<div class="variablelist"><table border="0" class="variablelist">
857
 
<colgroup>
 
829
<div class="variablelist"><table border="0">
858
830
<col align="left" valign="top">
859
 
<col>
860
 
</colgroup>
861
831
<tbody>
862
832
<tr>
863
833
<td><p><span class="term"><em class="parameter"><code>one</code></em> :</span></p></td>
864
 
<td>a basic-typed <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance. <span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GVariant]</span>
 
834
<td>a basic-typed <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GVariant]</span>
865
835
</td>
866
836
</tr>
867
837
<tr>
868
838
<td><p><span class="term"><em class="parameter"><code>two</code></em> :</span></p></td>
869
 
<td>a <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance of the same type. <span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GVariant]</span>
 
839
<td>a <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance of the same type. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GVariant]</span>
870
840
</td>
871
841
</tr>
872
842
<tr>
886
856
<p>
887
857
Classifies <em class="parameter"><code>value</code></em> according to its top-level type.
888
858
</p>
889
 
<div class="variablelist"><table border="0" class="variablelist">
890
 
<colgroup>
 
859
<div class="variablelist"><table border="0">
891
860
<col align="left" valign="top">
892
 
<col>
893
 
</colgroup>
894
861
<tbody>
895
862
<tr>
896
863
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
933
900
<p>
934
901
The range of possible top-level types of <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instances.
935
902
</p>
936
 
<div class="variablelist"><table border="0" class="variablelist">
937
 
<colgroup>
 
903
<div class="variablelist"><table border="0">
938
904
<col align="left" valign="top">
939
 
<col>
940
 
</colgroup>
941
905
<tbody>
942
906
<tr>
943
907
<td><p><a name="G-VARIANT-CLASS-BOOLEAN:CAPS"></a><span class="term"><code class="literal">G_VARIANT_CLASS_BOOLEAN</code></span></p></td>
1057
1021
<p>
1058
1022
This function is meant to be used by functions that wish to provide
1059
1023
varargs accessors to <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> values of uncertain values (eg:
1060
 
<a class="link" href="glib-GVariant.html#g-variant-lookup" title="g_variant_lookup ()"><code class="function">g_variant_lookup()</code></a> or <a href="http://library.gnome.org/devel/gio/unstable/GMenuModel.html#g-menu-model-get-item-attribute"><code class="function">g_menu_model_get_item_attribute()</code></a>).
 
1024
<a class="link" href="glib-GVariant.html#g-variant-lookup" title="g_variant_lookup ()"><code class="function">g_variant_lookup()</code></a> or <a href="./../gio/gio/GMenuModel.html#g-menu-model-get-item-attribute"><code class="function">g_menu_model_get_item_attribute()</code></a>).
1061
1025
</p>
1062
 
<div class="variablelist"><table border="0" class="variablelist">
1063
 
<colgroup>
 
1026
<div class="variablelist"><table border="0">
1064
1027
<col align="left" valign="top">
1065
 
<col>
1066
 
</colgroup>
1067
1028
<tbody>
1068
1029
<tr>
1069
1030
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1114
1075
see the section on
1115
1076
<a href="gvariant-format-strings.html#gvariant-format-strings-pointers">GVariant Format Strings</a>.
1116
1077
</p>
1117
 
<div class="variablelist"><table border="0" class="variablelist">
1118
 
<colgroup>
 
1078
<div class="variablelist"><table border="0">
1119
1079
<col align="left" valign="top">
1120
 
<col>
1121
 
</colgroup>
1122
1080
<tbody>
1123
1081
<tr>
1124
1082
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1175
1133
see the section on
1176
1134
<a href="gvariant-format-strings.html#gvariant-format-strings-pointers">GVariant Format Strings</a>.
1177
1135
</p>
1178
 
<div class="variablelist"><table border="0" class="variablelist">
1179
 
<colgroup>
 
1136
<div class="variablelist"><table border="0">
1180
1137
<col align="left" valign="top">
1181
 
<col>
1182
 
</colgroup>
1183
1138
<tbody>
1184
1139
<tr>
1185
1140
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1228
1183
'r'; in essence, a new <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> must always be constructed by this
1229
1184
function (and not merely passed through it unmodified).
1230
1185
</p>
1231
 
<div class="variablelist"><table border="0" class="variablelist">
1232
 
<colgroup>
 
1186
<div class="variablelist"><table border="0">
1233
1187
<col align="left" valign="top">
1234
 
<col>
1235
 
</colgroup>
1236
1188
<tbody>
1237
1189
<tr>
1238
1190
<td><p><span class="term"><em class="parameter"><code>format_string</code></em> :</span></p></td>
1297
1249
result.  This can also be done by adding the result to a container,
1298
1250
or by passing it to another <a class="link" href="glib-GVariant.html#g-variant-new" title="g_variant_new ()"><code class="function">g_variant_new()</code></a> call.
1299
1251
</p>
1300
 
<div class="variablelist"><table border="0" class="variablelist">
1301
 
<colgroup>
 
1252
<div class="variablelist"><table border="0">
1302
1253
<col align="left" valign="top">
1303
 
<col>
1304
 
</colgroup>
1305
1254
<tbody>
1306
1255
<tr>
1307
1256
<td><p><span class="term"><em class="parameter"><code>format_string</code></em> :</span></p></td>
1334
1283
<p>
1335
1284
Creates a new boolean <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance -- either <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> or <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>.
1336
1285
</p>
1337
 
<div class="variablelist"><table border="0" class="variablelist">
1338
 
<colgroup>
 
1286
<div class="variablelist"><table border="0">
1339
1287
<col align="left" valign="top">
1340
 
<col>
1341
 
</colgroup>
1342
1288
<tbody>
1343
1289
<tr>
1344
1290
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1360
1306
<p>
1361
1307
Creates a new byte <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance.
1362
1308
</p>
1363
 
<div class="variablelist"><table border="0" class="variablelist">
1364
 
<colgroup>
 
1309
<div class="variablelist"><table border="0">
1365
1310
<col align="left" valign="top">
1366
 
<col>
1367
 
</colgroup>
1368
1311
<tbody>
1369
1312
<tr>
1370
1313
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1386
1329
<p>
1387
1330
Creates a new int16 <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance.
1388
1331
</p>
1389
 
<div class="variablelist"><table border="0" class="variablelist">
1390
 
<colgroup>
 
1332
<div class="variablelist"><table border="0">
1391
1333
<col align="left" valign="top">
1392
 
<col>
1393
 
</colgroup>
1394
1334
<tbody>
1395
1335
<tr>
1396
1336
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1412
1352
<p>
1413
1353
Creates a new uint16 <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance.
1414
1354
</p>
1415
 
<div class="variablelist"><table border="0" class="variablelist">
1416
 
<colgroup>
 
1355
<div class="variablelist"><table border="0">
1417
1356
<col align="left" valign="top">
1418
 
<col>
1419
 
</colgroup>
1420
1357
<tbody>
1421
1358
<tr>
1422
1359
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1438
1375
<p>
1439
1376
Creates a new int32 <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance.
1440
1377
</p>
1441
 
<div class="variablelist"><table border="0" class="variablelist">
1442
 
<colgroup>
 
1378
<div class="variablelist"><table border="0">
1443
1379
<col align="left" valign="top">
1444
 
<col>
1445
 
</colgroup>
1446
1380
<tbody>
1447
1381
<tr>
1448
1382
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1464
1398
<p>
1465
1399
Creates a new uint32 <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance.
1466
1400
</p>
1467
 
<div class="variablelist"><table border="0" class="variablelist">
1468
 
<colgroup>
 
1401
<div class="variablelist"><table border="0">
1469
1402
<col align="left" valign="top">
1470
 
<col>
1471
 
</colgroup>
1472
1403
<tbody>
1473
1404
<tr>
1474
1405
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1490
1421
<p>
1491
1422
Creates a new int64 <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance.
1492
1423
</p>
1493
 
<div class="variablelist"><table border="0" class="variablelist">
1494
 
<colgroup>
 
1424
<div class="variablelist"><table border="0">
1495
1425
<col align="left" valign="top">
1496
 
<col>
1497
 
</colgroup>
1498
1426
<tbody>
1499
1427
<tr>
1500
1428
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1516
1444
<p>
1517
1445
Creates a new uint64 <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance.
1518
1446
</p>
1519
 
<div class="variablelist"><table border="0" class="variablelist">
1520
 
<colgroup>
 
1447
<div class="variablelist"><table border="0">
1521
1448
<col align="left" valign="top">
1522
 
<col>
1523
 
</colgroup>
1524
1449
<tbody>
1525
1450
<tr>
1526
1451
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1547
1472
that are sent alongside a D-Bus message.  If you're not interacting
1548
1473
with D-Bus, you probably don't need them.
1549
1474
</p>
1550
 
<div class="variablelist"><table border="0" class="variablelist">
1551
 
<colgroup>
 
1475
<div class="variablelist"><table border="0">
1552
1476
<col align="left" valign="top">
1553
 
<col>
1554
 
</colgroup>
1555
1477
<tbody>
1556
1478
<tr>
1557
1479
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1573
1495
<p>
1574
1496
Creates a new double <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance.
1575
1497
</p>
1576
 
<div class="variablelist"><table border="0" class="variablelist">
1577
 
<colgroup>
 
1498
<div class="variablelist"><table border="0">
1578
1499
<col align="left" valign="top">
1579
 
<col>
1580
 
</colgroup>
1581
1500
<tbody>
1582
1501
<tr>
1583
1502
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1602
1521
<p>
1603
1522
<em class="parameter"><code>string</code></em> must be valid utf8.
1604
1523
</p>
1605
 
<div class="variablelist"><table border="0" class="variablelist">
1606
 
<colgroup>
 
1524
<div class="variablelist"><table border="0">
1607
1525
<col align="left" valign="top">
1608
 
<col>
1609
 
</colgroup>
1610
1526
<tbody>
1611
1527
<tr>
1612
1528
<td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
1630
1546
<em class="parameter"><code>string</code></em> must be a valid D-Bus object path.  Use
1631
1547
<a class="link" href="glib-GVariant.html#g-variant-is-object-path" title="g_variant_is_object_path ()"><code class="function">g_variant_is_object_path()</code></a> if you're not sure.
1632
1548
</p>
1633
 
<div class="variablelist"><table border="0" class="variablelist">
1634
 
<colgroup>
 
1549
<div class="variablelist"><table border="0">
1635
1550
<col align="left" valign="top">
1636
 
<col>
1637
 
</colgroup>
1638
1551
<tbody>
1639
1552
<tr>
1640
1553
<td><p><span class="term"><em class="parameter"><code>object_path</code></em> :</span></p></td>
1664
1577
must contain only the characters "[A-Z][a-z][0-9]_".  No sequence
1665
1578
(including the one following the final '/' character) may be empty.
1666
1579
</p>
1667
 
<div class="variablelist"><table border="0" class="variablelist">
1668
 
<colgroup>
 
1580
<div class="variablelist"><table border="0">
1669
1581
<col align="left" valign="top">
1670
 
<col>
1671
 
</colgroup>
1672
1582
<tbody>
1673
1583
<tr>
1674
1584
<td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
1692
1602
<em class="parameter"><code>string</code></em>.  <em class="parameter"><code>string</code></em> must be a valid D-Bus type signature.  Use
1693
1603
<a class="link" href="glib-GVariant.html#g-variant-is-signature" title="g_variant_is_signature ()"><code class="function">g_variant_is_signature()</code></a> if you're not sure.
1694
1604
</p>
1695
 
<div class="variablelist"><table border="0" class="variablelist">
1696
 
<colgroup>
 
1605
<div class="variablelist"><table border="0">
1697
1606
<col align="left" valign="top">
1698
 
<col>
1699
 
</colgroup>
1700
1607
<tbody>
1701
1608
<tr>
1702
1609
<td><p><span class="term"><em class="parameter"><code>signature</code></em> :</span></p></td>
1724
1631
D-Bus type signatures consist of zero or more definite <a class="link" href="glib-GVariantType.html#GVariantType" title="GVariantType"><span class="type">GVariantType</span></a>
1725
1632
strings in sequence.
1726
1633
</p>
1727
 
<div class="variablelist"><table border="0" class="variablelist">
1728
 
<colgroup>
 
1634
<div class="variablelist"><table border="0">
1729
1635
<col align="left" valign="top">
1730
 
<col>
1731
 
</colgroup>
1732
1636
<tbody>
1733
1637
<tr>
1734
1638
<td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
1755
1659
If <em class="parameter"><code>child</code></em> is a floating reference (see <a class="link" href="glib-GVariant.html#g-variant-ref-sink" title="g_variant_ref_sink ()"><code class="function">g_variant_ref_sink()</code></a>), the new
1756
1660
instance takes ownership of <em class="parameter"><code>child</code></em>.
1757
1661
</p>
1758
 
<div class="variablelist"><table border="0" class="variablelist">
1759
 
<colgroup>
 
1662
<div class="variablelist"><table border="0">
1760
1663
<col align="left" valign="top">
1761
 
<col>
1762
 
</colgroup>
1763
1664
<tbody>
1764
1665
<tr>
1765
1666
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1786
1687
<p>
1787
1688
If <em class="parameter"><code>length</code></em> is -1 then <em class="parameter"><code>strv</code></em> is <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>-terminated.
1788
1689
</p>
1789
 
<div class="variablelist"><table border="0" class="variablelist">
1790
 
<colgroup>
 
1690
<div class="variablelist"><table border="0">
1791
1691
<col align="left" valign="top">
1792
 
<col>
1793
 
</colgroup>
1794
1692
<tbody>
1795
1693
<tr>
1796
1694
<td><p><span class="term"><em class="parameter"><code>strv</code></em> :</span></p></td>
1826
1724
<p>
1827
1725
If <em class="parameter"><code>length</code></em> is -1 then <em class="parameter"><code>strv</code></em> is <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>-terminated.
1828
1726
</p>
1829
 
<div class="variablelist"><table border="0" class="variablelist">
1830
 
<colgroup>
 
1727
<div class="variablelist"><table border="0">
1831
1728
<col align="left" valign="top">
1832
 
<col>
1833
 
</colgroup>
1834
1729
<tbody>
1835
1730
<tr>
1836
1731
<td><p><span class="term"><em class="parameter"><code>strv</code></em> :</span></p></td>
1863
1758
The nul terminator character at the end of the string is stored in
1864
1759
the array.
1865
1760
</p>
1866
 
<div class="variablelist"><table border="0" class="variablelist">
1867
 
<colgroup>
 
1761
<div class="variablelist"><table border="0">
1868
1762
<col align="left" valign="top">
1869
 
<col>
1870
 
</colgroup>
1871
1763
<tbody>
1872
1764
<tr>
1873
1765
<td><p><span class="term"><em class="parameter"><code>string</code></em> :</span></p></td>
1896
1788
<p>
1897
1789
If <em class="parameter"><code>length</code></em> is -1 then <em class="parameter"><code>strv</code></em> is <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>-terminated.
1898
1790
</p>
1899
 
<div class="variablelist"><table border="0" class="variablelist">
1900
 
<colgroup>
 
1791
<div class="variablelist"><table border="0">
1901
1792
<col align="left" valign="top">
1902
 
<col>
1903
 
</colgroup>
1904
1793
<tbody>
1905
1794
<tr>
1906
1795
<td><p><span class="term"><em class="parameter"><code>strv</code></em> :</span></p></td>
1931
1820
It is an error to call this function with a <em class="parameter"><code>value</code></em> of any type
1932
1821
other than <a class="link" href="glib-GVariantType.html#G-VARIANT-TYPE-BOOLEAN:CAPS" title="G_VARIANT_TYPE_BOOLEAN"><code class="literal">G_VARIANT_TYPE_BOOLEAN</code></a>.
1933
1822
</p>
1934
 
<div class="variablelist"><table border="0" class="variablelist">
1935
 
<colgroup>
 
1823
<div class="variablelist"><table border="0">
1936
1824
<col align="left" valign="top">
1937
 
<col>
1938
 
</colgroup>
1939
1825
<tbody>
1940
1826
<tr>
1941
1827
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1962
1848
It is an error to call this function with a <em class="parameter"><code>value</code></em> of any type
1963
1849
other than <a class="link" href="glib-GVariantType.html#G-VARIANT-TYPE-BYTE:CAPS" title="G_VARIANT_TYPE_BYTE"><code class="literal">G_VARIANT_TYPE_BYTE</code></a>.
1964
1850
</p>
1965
 
<div class="variablelist"><table border="0" class="variablelist">
1966
 
<colgroup>
 
1851
<div class="variablelist"><table border="0">
1967
1852
<col align="left" valign="top">
1968
 
<col>
1969
 
</colgroup>
1970
1853
<tbody>
1971
1854
<tr>
1972
1855
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1992
1875
It is an error to call this function with a <em class="parameter"><code>value</code></em> of any type
1993
1876
other than <a class="link" href="glib-GVariantType.html#G-VARIANT-TYPE-INT16:CAPS" title="G_VARIANT_TYPE_INT16"><code class="literal">G_VARIANT_TYPE_INT16</code></a>.
1994
1877
</p>
1995
 
<div class="variablelist"><table border="0" class="variablelist">
1996
 
<colgroup>
 
1878
<div class="variablelist"><table border="0">
1997
1879
<col align="left" valign="top">
1998
 
<col>
1999
 
</colgroup>
2000
1880
<tbody>
2001
1881
<tr>
2002
1882
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2022
1902
It is an error to call this function with a <em class="parameter"><code>value</code></em> of any type
2023
1903
other than <a class="link" href="glib-GVariantType.html#G-VARIANT-TYPE-UINT16:CAPS" title="G_VARIANT_TYPE_UINT16"><code class="literal">G_VARIANT_TYPE_UINT16</code></a>.
2024
1904
</p>
2025
 
<div class="variablelist"><table border="0" class="variablelist">
2026
 
<colgroup>
 
1905
<div class="variablelist"><table border="0">
2027
1906
<col align="left" valign="top">
2028
 
<col>
2029
 
</colgroup>
2030
1907
<tbody>
2031
1908
<tr>
2032
1909
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2052
1929
It is an error to call this function with a <em class="parameter"><code>value</code></em> of any type
2053
1930
other than <a class="link" href="glib-GVariantType.html#G-VARIANT-TYPE-INT32:CAPS" title="G_VARIANT_TYPE_INT32"><code class="literal">G_VARIANT_TYPE_INT32</code></a>.
2054
1931
</p>
2055
 
<div class="variablelist"><table border="0" class="variablelist">
2056
 
<colgroup>
 
1932
<div class="variablelist"><table border="0">
2057
1933
<col align="left" valign="top">
2058
 
<col>
2059
 
</colgroup>
2060
1934
<tbody>
2061
1935
<tr>
2062
1936
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2082
1956
It is an error to call this function with a <em class="parameter"><code>value</code></em> of any type
2083
1957
other than <a class="link" href="glib-GVariantType.html#G-VARIANT-TYPE-UINT32:CAPS" title="G_VARIANT_TYPE_UINT32"><code class="literal">G_VARIANT_TYPE_UINT32</code></a>.
2084
1958
</p>
2085
 
<div class="variablelist"><table border="0" class="variablelist">
2086
 
<colgroup>
 
1959
<div class="variablelist"><table border="0">
2087
1960
<col align="left" valign="top">
2088
 
<col>
2089
 
</colgroup>
2090
1961
<tbody>
2091
1962
<tr>
2092
1963
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2112
1983
It is an error to call this function with a <em class="parameter"><code>value</code></em> of any type
2113
1984
other than <a class="link" href="glib-GVariantType.html#G-VARIANT-TYPE-INT64:CAPS" title="G_VARIANT_TYPE_INT64"><code class="literal">G_VARIANT_TYPE_INT64</code></a>.
2114
1985
</p>
2115
 
<div class="variablelist"><table border="0" class="variablelist">
2116
 
<colgroup>
 
1986
<div class="variablelist"><table border="0">
2117
1987
<col align="left" valign="top">
2118
 
<col>
2119
 
</colgroup>
2120
1988
<tbody>
2121
1989
<tr>
2122
1990
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2142
2010
It is an error to call this function with a <em class="parameter"><code>value</code></em> of any type
2143
2011
other than <a class="link" href="glib-GVariantType.html#G-VARIANT-TYPE-UINT64:CAPS" title="G_VARIANT_TYPE_UINT64"><code class="literal">G_VARIANT_TYPE_UINT64</code></a>.
2144
2012
</p>
2145
 
<div class="variablelist"><table border="0" class="variablelist">
2146
 
<colgroup>
 
2013
<div class="variablelist"><table border="0">
2147
2014
<col align="left" valign="top">
2148
 
<col>
2149
 
</colgroup>
2150
2015
<tbody>
2151
2016
<tr>
2152
2017
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2177
2042
that are sent alongside a D-Bus message.  If you're not interacting
2178
2043
with D-Bus, you probably don't need them.
2179
2044
</p>
2180
 
<div class="variablelist"><table border="0" class="variablelist">
2181
 
<colgroup>
 
2045
<div class="variablelist"><table border="0">
2182
2046
<col align="left" valign="top">
2183
 
<col>
2184
 
</colgroup>
2185
2047
<tbody>
2186
2048
<tr>
2187
2049
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2207
2069
It is an error to call this function with a <em class="parameter"><code>value</code></em> of any type
2208
2070
other than <a class="link" href="glib-GVariantType.html#G-VARIANT-TYPE-DOUBLE:CAPS" title="G_VARIANT_TYPE_DOUBLE"><code class="literal">G_VARIANT_TYPE_DOUBLE</code></a>.
2209
2071
</p>
2210
 
<div class="variablelist"><table border="0" class="variablelist">
2211
 
<colgroup>
 
2072
<div class="variablelist"><table border="0">
2212
2073
<col align="left" valign="top">
2213
 
<col>
2214
 
</colgroup>
2215
2074
<tbody>
2216
2075
<tr>
2217
2076
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2251
2110
<p>
2252
2111
The return value remains valid as long as <em class="parameter"><code>value</code></em> exists.
2253
2112
</p>
2254
 
<div class="variablelist"><table border="0" class="variablelist">
2255
 
<colgroup>
 
2113
<div class="variablelist"><table border="0">
2256
2114
<col align="left" valign="top">
2257
 
<col>
2258
 
</colgroup>
2259
2115
<tbody>
2260
2116
<tr>
2261
2117
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2291
2147
<p>
2292
2148
The return value must be freed using <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>.
2293
2149
</p>
2294
 
<div class="variablelist"><table border="0" class="variablelist">
2295
 
<colgroup>
 
2150
<div class="variablelist"><table border="0">
2296
2151
<col align="left" valign="top">
2297
 
<col>
2298
 
</colgroup>
2299
2152
<tbody>
2300
2153
<tr>
2301
2154
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2323
2176
Unboxes <em class="parameter"><code>value</code></em>.  The result is the <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance that was
2324
2177
contained in <em class="parameter"><code>value</code></em>.
2325
2178
</p>
2326
 
<div class="variablelist"><table border="0" class="variablelist">
2327
 
<colgroup>
 
2179
<div class="variablelist"><table border="0">
2328
2180
<col align="left" valign="top">
2329
 
<col>
2330
 
</colgroup>
2331
2181
<tbody>
2332
2182
<tr>
2333
2183
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2361
2211
For an empty array, <em class="parameter"><code>length</code></em> will be set to 0 and a pointer to a
2362
2212
<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> pointer will be returned.
2363
2213
</p>
2364
 
<div class="variablelist"><table border="0" class="variablelist">
2365
 
<colgroup>
 
2214
<div class="variablelist"><table border="0">
2366
2215
<col align="left" valign="top">
2367
 
<col>
2368
 
</colgroup>
2369
2216
<tbody>
2370
2217
<tr>
2371
2218
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2405
2252
For an empty array, <em class="parameter"><code>length</code></em> will be set to 0 and a pointer to a
2406
2253
<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> pointer will be returned.
2407
2254
</p>
2408
 
<div class="variablelist"><table border="0" class="variablelist">
2409
 
<colgroup>
 
2255
<div class="variablelist"><table border="0">
2410
2256
<col align="left" valign="top">
2411
 
<col>
2412
 
</colgroup>
2413
2257
<tbody>
2414
2258
<tr>
2415
2259
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2449
2293
For an empty array, <em class="parameter"><code>length</code></em> will be set to 0 and a pointer to a
2450
2294
<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> pointer will be returned.
2451
2295
</p>
2452
 
<div class="variablelist"><table border="0" class="variablelist">
2453
 
<colgroup>
 
2296
<div class="variablelist"><table border="0">
2454
2297
<col align="left" valign="top">
2455
 
<col>
2456
 
</colgroup>
2457
2298
<tbody>
2458
2299
<tr>
2459
2300
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2493
2334
For an empty array, <em class="parameter"><code>length</code></em> will be set to 0 and a pointer to a
2494
2335
<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> pointer will be returned.
2495
2336
</p>
2496
 
<div class="variablelist"><table border="0" class="variablelist">
2497
 
<colgroup>
 
2337
<div class="variablelist"><table border="0">
2498
2338
<col align="left" valign="top">
2499
 
<col>
2500
 
</colgroup>
2501
2339
<tbody>
2502
2340
<tr>
2503
2341
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2543
2381
<p>
2544
2382
The return value remains valid as long as <em class="parameter"><code>value</code></em> exists.
2545
2383
</p>
2546
 
<div class="variablelist"><table border="0" class="variablelist">
2547
 
<colgroup>
 
2384
<div class="variablelist"><table border="0">
2548
2385
<col align="left" valign="top">
2549
 
<col>
2550
 
</colgroup>
2551
2386
<tbody>
2552
2387
<tr>
2553
2388
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2574
2409
<p>
2575
2410
The return value must be freed using <a class="link" href="glib-Memory-Allocation.html#g-free" title="g_free ()"><code class="function">g_free()</code></a>.
2576
2411
</p>
2577
 
<div class="variablelist"><table border="0" class="variablelist">
2578
 
<colgroup>
 
2412
<div class="variablelist"><table border="0">
2579
2413
<col align="left" valign="top">
2580
 
<col>
2581
 
</colgroup>
2582
2414
<tbody>
2583
2415
<tr>
2584
2416
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2618
2450
For an empty array, <em class="parameter"><code>length</code></em> will be set to 0 and a pointer to a
2619
2451
<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> pointer will be returned.
2620
2452
</p>
2621
 
<div class="variablelist"><table border="0" class="variablelist">
2622
 
<colgroup>
 
2453
<div class="variablelist"><table border="0">
2623
2454
<col align="left" valign="top">
2624
 
<col>
2625
 
</colgroup>
2626
2455
<tbody>
2627
2456
<tr>
2628
2457
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2661
2490
For an empty array, <em class="parameter"><code>length</code></em> will be set to 0 and a pointer to a
2662
2491
<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> pointer will be returned.
2663
2492
</p>
2664
 
<div class="variablelist"><table border="0" class="variablelist">
2665
 
<colgroup>
 
2493
<div class="variablelist"><table border="0">
2666
2494
<col align="left" valign="top">
2667
 
<col>
2668
 
</colgroup>
2669
2495
<tbody>
2670
2496
<tr>
2671
2497
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2704
2530
If <em class="parameter"><code>child</code></em> is a floating reference (see <a class="link" href="glib-GVariant.html#g-variant-ref-sink" title="g_variant_ref_sink ()"><code class="function">g_variant_ref_sink()</code></a>), the new
2705
2531
instance takes ownership of <em class="parameter"><code>child</code></em>.
2706
2532
</p>
2707
 
<div class="variablelist"><table border="0" class="variablelist">
2708
 
<colgroup>
 
2533
<div class="variablelist"><table border="0">
2709
2534
<col align="left" valign="top">
2710
 
<col>
2711
 
</colgroup>
2712
2535
<tbody>
2713
2536
<tr>
2714
2537
<td><p><span class="term"><em class="parameter"><code>child_type</code></em> :</span></p></td>
2756
2579
If the <em class="parameter"><code>children</code></em> are floating references (see <a class="link" href="glib-GVariant.html#g-variant-ref-sink" title="g_variant_ref_sink ()"><code class="function">g_variant_ref_sink()</code></a>), the
2757
2580
new instance takes ownership of them as if via <a class="link" href="glib-GVariant.html#g-variant-ref-sink" title="g_variant_ref_sink ()"><code class="function">g_variant_ref_sink()</code></a>.
2758
2581
</p>
2759
 
<div class="variablelist"><table border="0" class="variablelist">
2760
 
<colgroup>
 
2582
<div class="variablelist"><table border="0">
2761
2583
<col align="left" valign="top">
2762
 
<col>
2763
 
</colgroup>
2764
2584
<tbody>
2765
2585
<tr>
2766
2586
<td><p><span class="term"><em class="parameter"><code>child_type</code></em> :</span></p></td>
2804
2624
If the <em class="parameter"><code>children</code></em> are floating references (see <a class="link" href="glib-GVariant.html#g-variant-ref-sink" title="g_variant_ref_sink ()"><code class="function">g_variant_ref_sink()</code></a>), the
2805
2625
new instance takes ownership of them as if via <a class="link" href="glib-GVariant.html#g-variant-ref-sink" title="g_variant_ref_sink ()"><code class="function">g_variant_ref_sink()</code></a>.
2806
2626
</p>
2807
 
<div class="variablelist"><table border="0" class="variablelist">
2808
 
<colgroup>
 
2627
<div class="variablelist"><table border="0">
2809
2628
<col align="left" valign="top">
2810
 
<col>
2811
 
</colgroup>
2812
2629
<tbody>
2813
2630
<tr>
2814
2631
<td><p><span class="term"><em class="parameter"><code>children</code></em> :</span></p></td>
2842
2659
If the <em class="parameter"><code>key</code></em> or <em class="parameter"><code>value</code></em> are floating references (see <a class="link" href="glib-GVariant.html#g-variant-ref-sink" title="g_variant_ref_sink ()"><code class="function">g_variant_ref_sink()</code></a>),
2843
2660
the new instance takes ownership of them as if via <a class="link" href="glib-GVariant.html#g-variant-ref-sink" title="g_variant_ref_sink ()"><code class="function">g_variant_ref_sink()</code></a>.
2844
2661
</p>
2845
 
<div class="variablelist"><table border="0" class="variablelist">
2846
 
<colgroup>
 
2662
<div class="variablelist"><table border="0">
2847
2663
<col align="left" valign="top">
2848
 
<col>
2849
 
</colgroup>
2850
2664
<tbody>
2851
2665
<tr>
2852
2666
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
2891
2705
<em class="parameter"><code>n_elements</code></em>, which must be non-<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> is set equal to the number of
2892
2706
items in the array.
2893
2707
</p>
2894
 
<div class="variablelist"><table border="0" class="variablelist">
2895
 
<colgroup>
 
2708
<div class="variablelist"><table border="0">
2896
2709
<col align="left" valign="top">
2897
 
<col>
2898
 
</colgroup>
2899
2710
<tbody>
2900
2711
<tr>
2901
2712
<td><p><span class="term"><em class="parameter"><code>element_type</code></em> :</span></p></td>
2930
2741
Given a maybe-typed <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance, extract its value.  If the
2931
2742
value is Nothing, then this function returns <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
2932
2743
</p>
2933
 
<div class="variablelist"><table border="0" class="variablelist">
2934
 
<colgroup>
 
2744
<div class="variablelist"><table border="0">
2935
2745
<col align="left" valign="top">
2936
 
<col>
2937
 
</colgroup>
2938
2746
<tbody>
2939
2747
<tr>
2940
2748
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
2968
2776
<p>
2969
2777
This function is O(1).
2970
2778
</p>
2971
 
<div class="variablelist"><table border="0" class="variablelist">
2972
 
<colgroup>
 
2779
<div class="variablelist"><table border="0">
2973
2780
<col align="left" valign="top">
2974
 
<col>
2975
 
</colgroup>
2976
2781
<tbody>
2977
2782
<tr>
2978
2783
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3009
2814
<p>
3010
2815
This function is O(1).
3011
2816
</p>
3012
 
<div class="variablelist"><table border="0" class="variablelist">
3013
 
<colgroup>
 
2817
<div class="variablelist"><table border="0">
3014
2818
<col align="left" valign="top">
3015
 
<col>
3016
 
</colgroup>
3017
2819
<tbody>
3018
2820
<tr>
3019
2821
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3052
2854
see the section on
3053
2855
<a href="gvariant-format-strings.html#gvariant-format-strings-pointers">GVariant Format Strings</a>.
3054
2856
</p>
3055
 
<div class="variablelist"><table border="0" class="variablelist">
3056
 
<colgroup>
 
2857
<div class="variablelist"><table border="0">
3057
2858
<col align="left" valign="top">
3058
 
<col>
3059
 
</colgroup>
3060
2859
<tbody>
3061
2860
<tr>
3062
2861
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3113
2912
returned.  If <em class="parameter"><code>expected_type</code></em> was specified then any non-<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> return
3114
2913
value will have this type.
3115
2914
</p>
3116
 
<div class="variablelist"><table border="0" class="variablelist">
3117
 
<colgroup>
 
2915
<div class="variablelist"><table border="0">
3118
2916
<col align="left" valign="top">
3119
 
<col>
3120
 
</colgroup>
3121
2917
<tbody>
3122
2918
<tr>
3123
2919
<td><p><span class="term"><em class="parameter"><code>dictionary</code></em> :</span></p></td>
3164
2960
see the section on
3165
2961
<a href="gvariant-format-strings.html#gvariant-format-strings-pointers">GVariant Format Strings</a>.
3166
2962
</p>
3167
 
<div class="variablelist"><table border="0" class="variablelist">
3168
 
<colgroup>
 
2963
<div class="variablelist"><table border="0">
3169
2964
<col align="left" valign="top">
3170
 
<col>
3171
 
</colgroup>
3172
2965
<tbody>
3173
2966
<tr>
3174
2967
<td><p><span class="term"><em class="parameter"><code>dictionary</code></em> :</span></p></td>
3270
3063
<em class="parameter"><code>n_elements</code></em>, which must be non-<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> is set equal to the number of
3271
3064
items in the array.
3272
3065
</p>
3273
 
<div class="variablelist"><table border="0" class="variablelist">
3274
 
<colgroup>
 
3066
<div class="variablelist"><table border="0">
3275
3067
<col align="left" valign="top">
3276
 
<col>
3277
 
</colgroup>
3278
3068
<tbody>
3279
3069
<tr>
3280
3070
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3318
3108
operation which is approximately O(n) in the number of values
3319
3109
involved.
3320
3110
</p>
3321
 
<div class="variablelist"><table border="0" class="variablelist">
3322
 
<colgroup>
 
3111
<div class="variablelist"><table border="0">
3323
3112
<col align="left" valign="top">
3324
 
<col>
3325
 
</colgroup>
3326
3113
<tbody>
3327
3114
<tr>
3328
3115
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3371
3158
explicitly (by storing the type and/or endianness in addition to the
3372
3159
serialised data).
3373
3160
</p>
3374
 
<div class="variablelist"><table border="0" class="variablelist">
3375
 
<colgroup>
 
3161
<div class="variablelist"><table border="0">
3376
3162
<col align="left" valign="top">
3377
 
<col>
3378
 
</colgroup>
3379
3163
<tbody>
3380
3164
<tr>
3381
3165
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3412
3196
<p>
3413
3197
This function is approximately O(n) in the size of <em class="parameter"><code>data</code></em>.
3414
3198
</p>
3415
 
<div class="variablelist"><table border="0" class="variablelist">
3416
 
<colgroup>
 
3199
<div class="variablelist"><table border="0">
3417
3200
<col align="left" valign="top">
3418
 
<col>
3419
 
</colgroup>
3420
3201
<tbody>
3421
3202
<tr>
3422
3203
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3470
3251
needed.  The exact time of this call is unspecified and might even be
3471
3252
before this function returns.
3472
3253
</p>
3473
 
<div class="variablelist"><table border="0" class="variablelist">
3474
 
<colgroup>
 
3254
<div class="variablelist"><table border="0">
3475
3255
<col align="left" valign="top">
3476
 
<col>
3477
 
</colgroup>
3478
3256
<tbody>
3479
3257
<tr>
3480
3258
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
3534
3312
<p>
3535
3313
The returned value is always in normal form and is marked as trusted.
3536
3314
</p>
3537
 
<div class="variablelist"><table border="0" class="variablelist">
3538
 
<colgroup>
 
3315
<div class="variablelist"><table border="0">
3539
3316
<col align="left" valign="top">
3540
 
<col>
3541
 
</colgroup>
3542
3317
<tbody>
3543
3318
<tr>
3544
3319
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3580
3355
data from untrusted sources and you want to ensure your serialised
3581
3356
output is definitely in normal form.
3582
3357
</p>
3583
 
<div class="variablelist"><table border="0" class="variablelist">
3584
 
<colgroup>
 
3358
<div class="variablelist"><table border="0">
3585
3359
<col align="left" valign="top">
3586
 
<col>
3587
 
</colgroup>
3588
3360
<tbody>
3589
3361
<tr>
3590
3362
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3618
3390
being trusted.  If the value was already marked as being trusted then
3619
3391
this function will immediately return <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>.
3620
3392
</p>
3621
 
<div class="variablelist"><table border="0" class="variablelist">
3622
 
<colgroup>
 
3393
<div class="variablelist"><table border="0">
3623
3394
<col align="left" valign="top">
3624
 
<col>
3625
 
</colgroup>
3626
3395
<tbody>
3627
3396
<tr>
3628
3397
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3654
3423
The type of <em class="parameter"><code>value</code></em> is <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> only to allow use of this
3655
3424
function with <a class="link" href="glib-Hash-Tables.html#GHashTable" title="GHashTable"><span class="type">GHashTable</span></a>.  <em class="parameter"><code>value</code></em> must be a <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a>.
3656
3425
</p>
3657
 
<div class="variablelist"><table border="0" class="variablelist">
3658
 
<colgroup>
 
3426
<div class="variablelist"><table border="0">
3659
3427
<col align="left" valign="top">
3660
 
<col>
3661
 
</colgroup>
3662
3428
<tbody>
3663
3429
<tr>
3664
3430
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3665
 
<td>a basic <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> value as a <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a>. <span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GVariant]</span>
 
3431
<td>a basic <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> value as a <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a>. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GVariant]</span>
3666
3432
</td>
3667
3433
</tr>
3668
3434
<tr>
3686
3452
The types of <em class="parameter"><code>one</code></em> and <em class="parameter"><code>two</code></em> are <a class="link" href="glib-Basic-Types.html#gconstpointer" title="gconstpointer"><span class="type">gconstpointer</span></a> only to allow use of
3687
3453
this function with <a class="link" href="glib-Hash-Tables.html#GHashTable" title="GHashTable"><span class="type">GHashTable</span></a>.  They must each be a <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a>.
3688
3454
</p>
3689
 
<div class="variablelist"><table border="0" class="variablelist">
3690
 
<colgroup>
 
3455
<div class="variablelist"><table border="0">
3691
3456
<col align="left" valign="top">
3692
 
<col>
3693
 
</colgroup>
3694
3457
<tbody>
3695
3458
<tr>
3696
3459
<td><p><span class="term"><em class="parameter"><code>one</code></em> :</span></p></td>
3697
 
<td>a <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance. <span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GVariant]</span>
 
3460
<td>a <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GVariant]</span>
3698
3461
</td>
3699
3462
</tr>
3700
3463
<tr>
3701
3464
<td><p><span class="term"><em class="parameter"><code>two</code></em> :</span></p></td>
3702
 
<td>a <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance. <span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GVariant]</span>
 
3465
<td>a <a class="link" href="glib-GVariant.html#GVariant" title="GVariant"><span class="type">GVariant</span></a> instance. <span class="annotation">[<acronym title="Override the parsed C type with given type"><span class="acronym">type</span></acronym> GVariant]</span>
3703
3466
</td>
3704
3467
</tr>
3705
3468
<tr>
3726
3489
If <em class="parameter"><code>type_annotate</code></em> is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>, then type information is included in
3727
3490
the output.
3728
3491
</p>
3729
 
<div class="variablelist"><table border="0" class="variablelist">
3730
 
<colgroup>
 
3492
<div class="variablelist"><table border="0">
3731
3493
<col align="left" valign="top">
3732
 
<col>
3733
 
</colgroup>
3734
3494
<tbody>
3735
3495
<tr>
3736
3496
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3765
3525
If <em class="parameter"><code>string</code></em> is non-<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> then it is appended to and returned.  Else,
3766
3526
a new empty <a class="link" href="glib-Strings.html#GString" title="struct GString"><span class="type">GString</span></a> is allocated and it is returned.
3767
3527
</p>
3768
 
<div class="variablelist"><table border="0" class="variablelist">
3769
 
<colgroup>
 
3528
<div class="variablelist"><table border="0">
3770
3529
<col align="left" valign="top">
3771
 
<col>
3772
 
</colgroup>
3773
3530
<tbody>
3774
3531
<tr>
3775
3532
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3824
3581
A reference is taken to the container that <em class="parameter"><code>iter</code></em> is iterating over
3825
3582
and will be releated only when <a class="link" href="glib-GVariant.html#g-variant-iter-free" title="g_variant_iter_free ()"><code class="function">g_variant_iter_free()</code></a> is called.
3826
3583
</p>
3827
 
<div class="variablelist"><table border="0" class="variablelist">
3828
 
<colgroup>
 
3584
<div class="variablelist"><table border="0">
3829
3585
<col align="left" valign="top">
3830
 
<col>
3831
 
</colgroup>
3832
3586
<tbody>
3833
3587
<tr>
3834
3588
<td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
3853
3607
iterators that were returned by <a class="link" href="glib-GVariant.html#g-variant-iter-new" title="g_variant_iter_new ()"><code class="function">g_variant_iter_new()</code></a> or
3854
3608
<a class="link" href="glib-GVariant.html#g-variant-iter-copy" title="g_variant_iter_copy ()"><code class="function">g_variant_iter_copy()</code></a>.
3855
3609
</p>
3856
 
<div class="variablelist"><table border="0" class="variablelist">
3857
 
<colgroup>
 
3610
<div class="variablelist"><table border="0">
3858
3611
<col align="left" valign="top">
3859
 
<col>
3860
 
</colgroup>
3861
3612
<tbody><tr>
3862
3613
<td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
3863
3614
<td>a heap-allocated <a class="link" href="glib-GVariant.html#GVariantIter" title="struct GVariantIter"><span class="type">GVariantIter</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
3880
3631
The iterator remains valid for as long as <em class="parameter"><code>value</code></em> exists, and need not
3881
3632
be freed in any way.
3882
3633
</p>
3883
 
<div class="variablelist"><table border="0" class="variablelist">
3884
 
<colgroup>
 
3634
<div class="variablelist"><table border="0">
3885
3635
<col align="left" valign="top">
3886
 
<col>
3887
 
</colgroup>
3888
3636
<tbody>
3889
3637
<tr>
3890
3638
<td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
3917
3665
<p>
3918
3666
This function might be useful for preallocation of arrays.
3919
3667
</p>
3920
 
<div class="variablelist"><table border="0" class="variablelist">
3921
 
<colgroup>
 
3668
<div class="variablelist"><table border="0">
3922
3669
<col align="left" valign="top">
3923
 
<col>
3924
 
</colgroup>
3925
3670
<tbody>
3926
3671
<tr>
3927
3672
<td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
3952
3697
A reference is taken to <em class="parameter"><code>value</code></em> and will be released only when
3953
3698
<a class="link" href="glib-GVariant.html#g-variant-iter-free" title="g_variant_iter_free ()"><code class="function">g_variant_iter_free()</code></a> is called.
3954
3699
</p>
3955
 
<div class="variablelist"><table border="0" class="variablelist">
3956
 
<colgroup>
 
3700
<div class="variablelist"><table border="0">
3957
3701
<col align="left" valign="top">
3958
 
<col>
3959
 
</colgroup>
3960
3702
<tbody>
3961
3703
<tr>
3962
3704
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
3987
3729
<p>
3988
3730
</p>
3989
3731
<div class="example">
3990
 
<a name="id1050618"></a><p class="title"><b>Example 18. Iterating with <a class="link" href="glib-GVariant.html#g-variant-iter-next-value" title="g_variant_iter_next_value ()"><code class="function">g_variant_iter_next_value()</code></a></b></p>
3991
 
<div class="example-contents">
3992
 
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
3993
 
    <tbody>
3994
 
      <tr>
3995
 
        <td class="listing_lines" align="right"><pre>1
3996
 
2
3997
 
3
3998
 
4
3999
 
5
4000
 
6
4001
 
7
4002
 
8
4003
 
9
4004
 
10
4005
 
11
4006
 
12
4007
 
13
4008
 
14
4009
 
15
4010
 
16
4011
 
17
4012
 
18</pre></td>
4013
 
        <td class="listing_code"><pre class="programlisting"><span class="comment">/* recursively iterate a container */</span>
4014
 
<span class="type">void</span>
4015
 
<span class="function">iterate_container_recursive</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">container</span><span class="symbol">)</span>
4016
 
<span class="cbracket">{</span>
4017
 
<span class="normal">  </span><span class="usertype">GVariantIter</span><span class="normal"> iter</span><span class="symbol">;</span>
4018
 
<span class="normal">  </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">child</span><span class="symbol">;</span>
4019
 
 
4020
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-iter-init">g_variant_iter_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> container</span><span class="symbol">);</span>
4021
 
<span class="normal">  </span><span class="keyword">while</span><span class="normal"> </span><span class="symbol">((</span><span class="normal">child </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-GVariant.html#g-variant-iter-next-value">g_variant_iter_next_value</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">)))</span>
4022
 
<span class="normal">    </span><span class="cbracket">{</span>
4023
 
<span class="normal">      </span><span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"type '%s'</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="glib-GVariant.html#g-variant-get-type-string">g_variant_get_type_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">child</span><span class="symbol">));</span>
4024
 
 
4025
 
<span class="normal">      </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="glib-GVariant.html#g-variant-is-container">g_variant_is_container</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">child</span><span class="symbol">))</span>
4026
 
<span class="normal">        </span><span class="function">iterate_container_recursive</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">child</span><span class="symbol">);</span>
4027
 
 
4028
 
<span class="normal">      </span><span class="function"><a href="glib-GVariant.html#g-variant-unref">g_variant_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">child</span><span class="symbol">);</span>
4029
 
<span class="normal">    </span><span class="cbracket">}</span>
4030
 
<span class="cbracket">}</span></pre></td>
4031
 
      </tr>
4032
 
    </tbody>
4033
 
  </table>
4034
 
</div>
4035
 
 
 
3732
<a name="idp65061328"></a><p class="title"><b>Example 18. Iterating with <a class="link" href="glib-GVariant.html#g-variant-iter-next-value" title="g_variant_iter_next_value ()"><code class="function">g_variant_iter_next_value()</code></a></b></p>
 
3733
<div class="example-contents"><pre class="programlisting">
 
3734
  /* recursively iterate a container */
 
3735
  void
 
3736
  iterate_container_recursive (GVariant *container)
 
3737
  {
 
3738
    GVariantIter iter;
 
3739
    GVariant *child;
 
3740
 
 
3741
    g_variant_iter_init (&amp;iter, container);
 
3742
    while ((child = g_variant_iter_next_value (&amp;iter)))
 
3743
      {
 
3744
        g_print ("type '%s'\n", g_variant_get_type_string (child));
 
3745
 
 
3746
        if (g_variant_is_container (child))
 
3747
          iterate_container_recursive (child);
 
3748
 
 
3749
        g_variant_unref (child);
 
3750
      }
 
3751
  }
 
3752
</pre></div>
4036
3753
</div>
4037
3754
<p><br class="example-break">
4038
3755
</p>
4039
 
<div class="variablelist"><table border="0" class="variablelist">
4040
 
<colgroup>
 
3756
<div class="variablelist"><table border="0">
4041
3757
<col align="left" valign="top">
4042
 
<col>
4043
 
</colgroup>
4044
3758
<tbody>
4045
3759
<tr>
4046
3760
<td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
4082
3796
<p>
4083
3797
</p>
4084
3798
<div class="example">
4085
 
<a name="id1050855"></a><p class="title"><b>Example 19. Memory management with <a class="link" href="glib-GVariant.html#g-variant-iter-next" title="g_variant_iter_next ()"><code class="function">g_variant_iter_next()</code></a></b></p>
4086
 
<div class="example-contents">
4087
 
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
4088
 
    <tbody>
4089
 
      <tr>
4090
 
        <td class="listing_lines" align="right"><pre>1
4091
 
2
4092
 
3
4093
 
4
4094
 
5
4095
 
6
4096
 
7
4097
 
8
4098
 
9
4099
 
10
4100
 
11
4101
 
12
4102
 
13
4103
 
14
4104
 
15
4105
 
16
4106
 
17
4107
 
18
4108
 
19</pre></td>
4109
 
        <td class="listing_code"><pre class="programlisting"><span class="comment">/* Iterates a dictionary of type 'a{sv}' */</span>
4110
 
<span class="type">void</span>
4111
 
<span class="function">iterate_dictionary</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">dictionary</span><span class="symbol">)</span>
4112
 
<span class="cbracket">{</span>
4113
 
<span class="normal">  </span><span class="usertype">GVariantIter</span><span class="normal"> iter</span><span class="symbol">;</span>
4114
 
<span class="normal">  </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">value</span><span class="symbol">;</span>
4115
 
<span class="normal">  </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">key</span><span class="symbol">;</span>
4116
 
 
4117
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-iter-init">g_variant_iter_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> dictionary</span><span class="symbol">);</span>
4118
 
<span class="normal">  </span><span class="keyword">while</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="glib-GVariant.html#g-variant-iter-next">g_variant_iter_next</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"{sv}"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">key</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">value</span><span class="symbol">))</span>
4119
 
<span class="normal">    </span><span class="cbracket">{</span>
4120
 
<span class="normal">      </span><span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Item '%s' has type '%s'</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> key</span><span class="symbol">,</span>
4121
 
<span class="normal">               </span><span class="function"><a href="glib-GVariant.html#g-variant-get-type-string">g_variant_get_type_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">));</span>
4122
 
 
4123
 
<span class="normal">      </span><span class="comment">/* must free data for ourselves */</span>
4124
 
<span class="normal">      </span><span class="function"><a href="glib-GVariant.html#g-variant-unref">g_variant_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">);</span>
4125
 
<span class="normal">      </span><span class="function"><a href="glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">key</span><span class="symbol">);</span>
4126
 
<span class="normal">    </span><span class="cbracket">}</span>
4127
 
<span class="cbracket">}</span></pre></td>
4128
 
      </tr>
4129
 
    </tbody>
4130
 
  </table>
4131
 
</div>
4132
 
 
 
3799
<a name="idp65089792"></a><p class="title"><b>Example 19. Memory management with <a class="link" href="glib-GVariant.html#g-variant-iter-next" title="g_variant_iter_next ()"><code class="function">g_variant_iter_next()</code></a></b></p>
 
3800
<div class="example-contents"><pre class="programlisting">
 
3801
  /* Iterates a dictionary of type 'a{sv}' */
 
3802
  void
 
3803
  iterate_dictionary (GVariant *dictionary)
 
3804
  {
 
3805
    GVariantIter iter;
 
3806
    GVariant *value;
 
3807
    gchar *key;
 
3808
 
 
3809
    g_variant_iter_init (&amp;iter, dictionary);
 
3810
    while (g_variant_iter_next (&amp;iter, "{sv}", &amp;key, &amp;value))
 
3811
      {
 
3812
        g_print ("Item '%s' has type '%s'\n", key,
 
3813
                 g_variant_get_type_string (value));
 
3814
 
 
3815
        /* must free data for ourselves */
 
3816
        g_variant_unref (value);
 
3817
        g_free (key);
 
3818
      }
 
3819
  }
 
3820
 </pre></div>
4133
3821
</div>
4134
3822
<p><br class="example-break">
4135
3823
</p>
4143
3831
see the section on
4144
3832
<a href="gvariant-format-strings.html#gvariant-format-strings-pointers">GVariant Format Strings</a>.
4145
3833
</p>
4146
 
<div class="variablelist"><table border="0" class="variablelist">
4147
 
<colgroup>
 
3834
<div class="variablelist"><table border="0">
4148
3835
<col align="left" valign="top">
4149
 
<col>
4150
 
</colgroup>
4151
3836
<tbody>
4152
3837
<tr>
4153
3838
<td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
4213
3898
<p>
4214
3899
</p>
4215
3900
<div class="example">
4216
 
<a name="id1051207"></a><p class="title"><b>Example 20. Memory management with <a class="link" href="glib-GVariant.html#g-variant-iter-loop" title="g_variant_iter_loop ()"><code class="function">g_variant_iter_loop()</code></a></b></p>
4217
 
<div class="example-contents">
4218
 
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
4219
 
    <tbody>
4220
 
      <tr>
4221
 
        <td class="listing_lines" align="right"><pre>1
4222
 
2
4223
 
3
4224
 
4
4225
 
5
4226
 
6
4227
 
7
4228
 
8
4229
 
9
4230
 
10
4231
 
11
4232
 
12
4233
 
13
4234
 
14
4235
 
15
4236
 
16
4237
 
17
4238
 
18</pre></td>
4239
 
        <td class="listing_code"><pre class="programlisting"><span class="comment">/* Iterates a dictionary of type 'a{sv}' */</span>
4240
 
<span class="type">void</span>
4241
 
<span class="function">iterate_dictionary</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">dictionary</span><span class="symbol">)</span>
4242
 
<span class="cbracket">{</span>
4243
 
<span class="normal">  </span><span class="usertype">GVariantIter</span><span class="normal"> iter</span><span class="symbol">;</span>
4244
 
<span class="normal">  </span><span class="usertype">GVariant</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">value</span><span class="symbol">;</span>
4245
 
<span class="normal">  </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">key</span><span class="symbol">;</span>
4246
 
 
4247
 
<span class="normal">  </span><span class="function"><a href="glib-GVariant.html#g-variant-iter-init">g_variant_iter_init</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> dictionary</span><span class="symbol">);</span>
4248
 
<span class="normal">  </span><span class="keyword">while</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="glib-GVariant.html#g-variant-iter-loop">g_variant_iter_loop</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">iter</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"{sv}"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">key</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">value</span><span class="symbol">))</span>
4249
 
<span class="normal">    </span><span class="cbracket">{</span>
4250
 
<span class="normal">      </span><span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Item '%s' has type '%s'</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> key</span><span class="symbol">,</span>
4251
 
<span class="normal">               </span><span class="function"><a href="glib-GVariant.html#g-variant-get-type-string">g_variant_get_type_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">));</span>
4252
 
 
4253
 
<span class="normal">      </span><span class="comment">/* no need to free 'key' and 'value' here */</span>
4254
 
<span class="normal">      </span><span class="comment">/* unless breaking out of this loop */</span>
4255
 
<span class="normal">    </span><span class="cbracket">}</span>
4256
 
<span class="cbracket">}</span></pre></td>
4257
 
      </tr>
4258
 
    </tbody>
4259
 
  </table>
4260
 
</div>
4261
 
 
 
3901
<a name="idp65132000"></a><p class="title"><b>Example 20. Memory management with <a class="link" href="glib-GVariant.html#g-variant-iter-loop" title="g_variant_iter_loop ()"><code class="function">g_variant_iter_loop()</code></a></b></p>
 
3902
<div class="example-contents"><pre class="programlisting">
 
3903
  /* Iterates a dictionary of type 'a{sv}' */
 
3904
  void
 
3905
  iterate_dictionary (GVariant *dictionary)
 
3906
  {
 
3907
    GVariantIter iter;
 
3908
    GVariant *value;
 
3909
    gchar *key;
 
3910
 
 
3911
    g_variant_iter_init (&amp;iter, dictionary);
 
3912
    while (g_variant_iter_loop (&amp;iter, "{sv}", &amp;key, &amp;value))
 
3913
      {
 
3914
        g_print ("Item '%s' has type '%s'\n", key,
 
3915
                 g_variant_get_type_string (value));
 
3916
 
 
3917
        /* no need to free 'key' and 'value' here */
 
3918
        /* unless breaking out of this loop */
 
3919
      }
 
3920
  }
 
3921
 </pre></div>
4262
3922
</div>
4263
3923
<p><br class="example-break">
4264
3924
</p>
4282
3942
see the section on
4283
3943
<a href="gvariant-format-strings.html#gvariant-format-strings-pointers">GVariant Format Strings</a>.
4284
3944
</p>
4285
 
<div class="variablelist"><table border="0" class="variablelist">
4286
 
<colgroup>
 
3945
<div class="variablelist"><table border="0">
4287
3946
<col align="left" valign="top">
4288
 
<col>
4289
 
</colgroup>
4290
3947
<tbody>
4291
3948
<tr>
4292
3949
<td><p><span class="term"><em class="parameter"><code>iter</code></em> :</span></p></td>
4344
4001
Don't call this on stack-allocated <a class="link" href="glib-GVariant.html#GVariantBuilder" title="struct GVariantBuilder"><span class="type">GVariantBuilder</span></a> instances or bad
4345
4002
things will happen.
4346
4003
</p>
4347
 
<div class="variablelist"><table border="0" class="variablelist">
4348
 
<colgroup>
 
4004
<div class="variablelist"><table border="0">
4349
4005
<col align="left" valign="top">
4350
 
<col>
4351
 
</colgroup>
4352
4006
<tbody><tr>
4353
4007
<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
4354
4008
<td>a <a class="link" href="glib-GVariant.html#GVariantBuilder" title="struct GVariantBuilder"><span class="type">GVariantBuilder</span></a> allocated by <a class="link" href="glib-GVariant.html#g-variant-builder-new" title="g_variant_builder_new ()"><code class="function">g_variant_builder_new()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
4368
4022
Don't call this on stack-allocated <a class="link" href="glib-GVariant.html#GVariantBuilder" title="struct GVariantBuilder"><span class="type">GVariantBuilder</span></a> instances or bad
4369
4023
things will happen.
4370
4024
</p>
4371
 
<div class="variablelist"><table border="0" class="variablelist">
4372
 
<colgroup>
 
4025
<div class="variablelist"><table border="0">
4373
4026
<col align="left" valign="top">
4374
 
<col>
4375
 
</colgroup>
4376
4027
<tbody>
4377
4028
<tr>
4378
4029
<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
4405
4056
the stack of the calling function and initialise it with
4406
4057
<a class="link" href="glib-GVariant.html#g-variant-builder-init" title="g_variant_builder_init ()"><code class="function">g_variant_builder_init()</code></a>.
4407
4058
</p>
4408
 
<div class="variablelist"><table border="0" class="variablelist">
4409
 
<colgroup>
 
4059
<div class="variablelist"><table border="0">
4410
4060
<col align="left" valign="top">
4411
 
<col>
4412
 
</colgroup>
4413
4061
<tbody>
4414
4062
<tr>
4415
4063
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
4465
4113
reference counting; you should use <a class="link" href="glib-GVariant.html#g-variant-builder-new" title="g_variant_builder_new ()"><code class="function">g_variant_builder_new()</code></a> instead of
4466
4114
this function.
4467
4115
</p>
4468
 
<div class="variablelist"><table border="0" class="variablelist">
4469
 
<colgroup>
 
4116
<div class="variablelist"><table border="0">
4470
4117
<col align="left" valign="top">
4471
 
<col>
4472
 
</colgroup>
4473
4118
<tbody>
4474
4119
<tr>
4475
4120
<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
4506
4151
<a class="link" href="glib-GVariant.html#GVariantBuilder" title="struct GVariantBuilder"><span class="type">GVariantBuilder</span></a> or one that is set to all-zeros but it is not valid
4507
4152
to call this function on uninitialised memory.
4508
4153
</p>
4509
 
<div class="variablelist"><table border="0" class="variablelist">
4510
 
<colgroup>
 
4154
<div class="variablelist"><table border="0">
4511
4155
<col align="left" valign="top">
4512
 
<col>
4513
 
</colgroup>
4514
4156
<tbody><tr>
4515
4157
<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
4516
4158
<td>a <a class="link" href="glib-GVariant.html#GVariantBuilder" title="struct GVariantBuilder"><span class="type">GVariantBuilder</span></a>
4538
4180
If <em class="parameter"><code>value</code></em> is a floating reference (see <a class="link" href="glib-GVariant.html#g-variant-ref-sink" title="g_variant_ref_sink ()"><code class="function">g_variant_ref_sink()</code></a>),
4539
4181
the <em class="parameter"><code>builder</code></em> instance takes ownership of <em class="parameter"><code>value</code></em>.
4540
4182
</p>
4541
 
<div class="variablelist"><table border="0" class="variablelist">
4542
 
<colgroup>
 
4183
<div class="variablelist"><table border="0">
4543
4184
<col align="left" valign="top">
4544
 
<col>
4545
 
</colgroup>
4546
4185
<tbody>
4547
4186
<tr>
4548
4187
<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
4597
4236
</pre>
4598
4237
<p>
4599
4238
</p>
4600
 
<div class="variablelist"><table border="0" class="variablelist">
4601
 
<colgroup>
 
4239
<div class="variablelist"><table border="0">
4602
4240
<col align="left" valign="top">
4603
 
<col>
4604
 
</colgroup>
4605
4241
<tbody>
4606
4242
<tr>
4607
4243
<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
4656
4292
</pre>
4657
4293
<p>
4658
4294
</p>
4659
 
<div class="variablelist"><table border="0" class="variablelist">
4660
 
<colgroup>
 
4295
<div class="variablelist"><table border="0">
4661
4296
<col align="left" valign="top">
4662
 
<col>
4663
 
</colgroup>
4664
4297
<tbody>
4665
4298
<tr>
4666
4299
<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
4703
4336
have been added; in this case it is impossible to infer the type of
4704
4337
the empty array.
4705
4338
</p>
4706
 
<div class="variablelist"><table border="0" class="variablelist">
4707
 
<colgroup>
 
4339
<div class="variablelist"><table border="0">
4708
4340
<col align="left" valign="top">
4709
 
<col>
4710
 
</colgroup>
4711
4341
<tbody>
4712
4342
<tr>
4713
4343
<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
4737
4367
inconsistent value to be constructed (ie: adding too many values or
4738
4368
a value of an incorrect type).
4739
4369
</p>
4740
 
<div class="variablelist"><table border="0" class="variablelist">
4741
 
<colgroup>
 
4370
<div class="variablelist"><table border="0">
4742
4371
<col align="left" valign="top">
4743
 
<col>
4744
 
</colgroup>
4745
4372
<tbody>
4746
4373
<tr>
4747
4374
<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
4770
4397
inconsistent value to be constructed (ie: too few values added to the
4771
4398
subcontainer).
4772
4399
</p>
4773
 
<div class="variablelist"><table border="0" class="variablelist">
4774
 
<colgroup>
 
4400
<div class="variablelist"><table border="0">
4775
4401
<col align="left" valign="top">
4776
 
<col>
4777
 
</colgroup>
4778
4402
<tbody><tr>
4779
4403
<td><p><span class="term"><em class="parameter"><code>builder</code></em> :</span></p></td>
4780
4404
<td>a <a class="link" href="glib-GVariant.html#GVariantBuilder" title="struct GVariantBuilder"><span class="type">GVariantBuilder</span></a>
4810
4434
<p>
4811
4435
Error codes returned by parsing text-format GVariants.
4812
4436
</p>
4813
 
<div class="variablelist"><table border="0" class="variablelist">
4814
 
<colgroup>
 
4437
<div class="variablelist"><table border="0">
4815
4438
<col align="left" valign="top">
4816
 
<col>
4817
 
</colgroup>
4818
4439
<tbody>
4819
4440
<tr>
4820
4441
<td><p><a name="G-VARIANT-PARSE-ERROR-FAILED:CAPS"></a><span class="term"><code class="literal">G_VARIANT_PARSE_ERROR_FAILED</code></span></p></td>
4968
4589
Officially, the language understood by the parser is "any string
4969
4590
produced by <a class="link" href="glib-GVariant.html#g-variant-print" title="g_variant_print ()"><code class="function">g_variant_print()</code></a>".
4970
4591
</p>
4971
 
<div class="variablelist"><table border="0" class="variablelist">
4972
 
<colgroup>
 
4592
<div class="variablelist"><table border="0">
4973
4593
<col align="left" valign="top">
4974
 
<col>
4975
 
</colgroup>
4976
4594
<tbody>
4977
4595
<tr>
4978
4596
<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
5033
4651
result.  This can also be done by adding the result to a container,
5034
4652
or by passing it to another <a class="link" href="glib-GVariant.html#g-variant-new" title="g_variant_new ()"><code class="function">g_variant_new()</code></a> call.
5035
4653
</p>
5036
 
<div class="variablelist"><table border="0" class="variablelist">
5037
 
<colgroup>
 
4654
<div class="variablelist"><table border="0">
5038
4655
<col align="left" valign="top">
5039
 
<col>
5040
 
</colgroup>
5041
4656
<tbody>
5042
4657
<tr>
5043
4658
<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
5077
4692
</p>
5078
4693
<p>
5079
4694
</p>
5080
 
<div class="informalexample">
5081
 
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
5082
 
    <tbody>
5083
 
      <tr>
5084
 
        <td class="listing_lines" align="right"><pre>1</pre></td>
5085
 
        <td class="listing_code"><pre class="programlisting"><span class="function"><a href="glib-GVariant.html#g-variant-new-parsed">g_variant_new_parsed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"[('one', 1), ('two', %i), (%s, 3)]"</span><span class="symbol">,</span><span class="normal"> </span><span class="number">2</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"three"</span><span class="symbol">);</span></pre></td>
5086
 
      </tr>
5087
 
    </tbody>
5088
 
  </table>
5089
 
</div>
5090
 
 
 
4695
<div class="informalexample"><pre class="programlisting">
 
4696
 g_variant_new_parsed ("[('one', 1), ('two', %i), (%s, 3)]", 2, "three");
 
4697
</pre></div>
5091
4698
<p>
5092
4699
</p>
5093
4700
<p>
5106
4713
be anything along the lines of "%*", "%?", "%r", or anything starting
5107
4714
with "%@".
5108
4715
</p>
5109
 
<div class="variablelist"><table border="0" class="variablelist">
5110
 
<colgroup>
 
4716
<div class="variablelist"><table border="0">
5111
4717
<col align="left" valign="top">
5112
 
<col>
5113
 
</colgroup>
5114
4718
<tbody>
5115
4719
<tr>
5116
4720
<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
5137
4741
</div>
5138
4742
<div class="footer">
5139
4743
<hr>
5140
 
          Generated by GTK-Doc V1.18.1</div>
 
4744
          Generated by GTK-Doc V1.18</div>
5141
4745
</body>
5142
4746
</html>
 
 
b'\\ No newline at end of file'