man-pages/man3/Glib::Variant.3pm.html
2021-03-31 01:06:50 +01:00

685 lines
15 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>Man page of Glib::Variant</TITLE>
</HEAD><BODY>
<H1>Glib::Variant</H1>
Section: User Contributed Perl Documentation (3pm)<BR>Updated: 2020-02-18<BR><A HREF="#index">Index</A>
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
Glib::Variant - strongly typed value datatype
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
<PRE>
my $v = Glib::Variant-&gt;new ('as', ['GTK+', 'Perl']);
my $aref = $v-&gt;get ('as');
</PRE>
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>
There are two sets of APIs for creating and dealing with <TT>&quot;Glib::Variant&quot;</TT>s: the
low-level <FONT SIZE="-1">API</FONT> described below under ``<FONT SIZE="-1">METHODS''</FONT>, and the convenience <FONT SIZE="-1">API</FONT>
described in this section.
<A NAME="lbAE">&nbsp;</A>
<H3><FONT SIZE="-1">CONVENIENCE API</FONT></H3>
<DL COMPACT>
<DT id="1">variant = Glib::Variant-&gt;new ($format_string, $value)<DD>
<DT id="2">(variant1, ...) = Glib::Variant-&gt;new ($format_string, $value1, ...)<DD>
Constructs a variant from <TT>$format_string</TT> and <TT>$value</TT>. Also supports
constructing multiple variants when the format string is a concatenation of
multiple types.
<DT id="3">value = $variant-&gt;get ($format_string)<DD>
Deconstructs <TT>$variant</TT> according to <TT>$format_string</TT>.
</DL>
<P>
The following symbols are currently supported in format strings:
<P>
<PRE>
+------------------------------+---------------------------------+
| Symbol | Meaning |
+------------------------------+---------------------------------+
| b, y, n, q, i, u, x, t, h, d | Boolean, byte and numeric types |
| s, o, g | String types |
| v | Variant types |
| a | Arrays |
| m | Maybe types |
| () | Tuples |
| {} | Dictionary entries |
+------------------------------+---------------------------------+
</PRE>
<P>
Note that if a format string specifies an array, a tuple or a dictionary entry
(``a'', ``()'' or ``{}''), then array references are expected by <TT>&quot;new&quot;</TT> and produced
by <TT>&quot;get&quot;</TT>. For arrays of dictionary entries (``a{}''), hash references are also
supported by <TT>&quot;new&quot;</TT> and handled as you would expect.
<P>
For a complete specification, see the documentation at
<DL COMPACT>
<DT id="4">&lt;<A HREF="https://developer.gnome.org/glib/stable/glib-GVariantType.html">https://developer.gnome.org/glib/stable/glib-GVariantType.html</A>&gt;<DD>
<DT id="5">&lt;<A HREF="https://developer.gnome.org/glib/stable/glib-GVariant.html">https://developer.gnome.org/glib/stable/glib-GVariant.html</A>&gt;<DD>
<DT id="6">&lt;<A HREF="https://developer.gnome.org/glib/stable/gvariant-format-strings.html">https://developer.gnome.org/glib/stable/gvariant-format-strings.html</A>&gt;<DD>
<DT id="7">&lt;<A HREF="https://developer.gnome.org/glib/stable/gvariant-text.html">https://developer.gnome.org/glib/stable/gvariant-text.html</A>&gt;<DD>
</DL>
<A NAME="lbAF">&nbsp;</A>
<H2>HIERARCHY</H2>
<PRE>
Glib::Variant
</PRE>
<A NAME="lbAG">&nbsp;</A>
<H2>METHODS</H2>
<A NAME="lbAH">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_array</B> ($child_type, $children)</H3>
<DL COMPACT>
<DT id="8">&bull;<DD>
<TT>$child_type</TT> (Glib::VariantType)
<DT id="9">&bull;<DD>
<TT>$children</TT> (scalar)
</DL>
<A NAME="lbAI">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_boolean</B> ($value)</H3>
<DL COMPACT>
<DT id="10">&bull;<DD>
<TT>$value</TT> (boolean)
</DL>
<A NAME="lbAJ">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_byte</B> ($value)</H3>
<DL COMPACT>
<DT id="11">&bull;<DD>
<TT>$value</TT> (Glib::UChar)
</DL>
<A NAME="lbAK">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_bytestring</B> ($string)</H3>
<DL COMPACT>
<DT id="12">&bull;<DD>
<TT>$string</TT> (byte string)
</DL>
<P>
Since: glib 2.26
<A NAME="lbAL">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_dict_entry</B> ($key, $value)</H3>
<DL COMPACT>
<DT id="13">&bull;<DD>
<TT>$key</TT> (Glib::Variant)
<DT id="14">&bull;<DD>
<TT>$value</TT> (Glib::Variant)
</DL>
<A NAME="lbAM">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_double</B> ($value)</H3>
<DL COMPACT>
<DT id="15">&bull;<DD>
<TT>$value</TT> (double)
</DL>
<A NAME="lbAN">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_handle</B> ($value)</H3>
<DL COMPACT>
<DT id="16">&bull;<DD>
<TT>$value</TT> (integer)
</DL>
<A NAME="lbAO">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_int16</B> ($value)</H3>
<DL COMPACT>
<DT id="17">&bull;<DD>
<TT>$value</TT> (integer)
</DL>
<A NAME="lbAP">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_int32</B> ($value)</H3>
<DL COMPACT>
<DT id="18">&bull;<DD>
<TT>$value</TT> (integer)
</DL>
<A NAME="lbAQ">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_int64</B> ($value)</H3>
<DL COMPACT>
<DT id="19">&bull;<DD>
<TT>$value</TT> (64 bit integer)
</DL>
<A NAME="lbAR">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_maybe</B> ($child_type, $child)</H3>
<DL COMPACT>
<DT id="20">&bull;<DD>
<TT>$child_type</TT> (Glib::VariantType)
<DT id="21">&bull;<DD>
<TT>$child</TT> (Glib::Variant)
</DL>
<A NAME="lbAS">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_object_path</B> ($object_path)</H3>
<DL COMPACT>
<DT id="22">&bull;<DD>
<TT>$object_path</TT> (string)
</DL>
<A NAME="lbAT">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_signature</B> ($signature)</H3>
<DL COMPACT>
<DT id="23">&bull;<DD>
<TT>$signature</TT> (string)
</DL>
<A NAME="lbAU">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_string</B> ($string)</H3>
<DL COMPACT>
<DT id="24">&bull;<DD>
<TT>$string</TT> (string)
</DL>
<A NAME="lbAV">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_tuple</B> ($children)</H3>
<DL COMPACT>
<DT id="25">&bull;<DD>
<TT>$children</TT> (scalar)
</DL>
<A NAME="lbAW">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_uint16</B> ($value)</H3>
<DL COMPACT>
<DT id="26">&bull;<DD>
<TT>$value</TT> (unsigned)
</DL>
<A NAME="lbAX">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_uint32</B> ($value)</H3>
<DL COMPACT>
<DT id="27">&bull;<DD>
<TT>$value</TT> (unsigned)
</DL>
<A NAME="lbAY">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_uint64</B> ($value)</H3>
<DL COMPACT>
<DT id="28">&bull;<DD>
<TT>$value</TT> (64 bit unsigned)
</DL>
<A NAME="lbAZ">&nbsp;</A>
<H3>variant = Glib::Variant-&gt;<B>new_variant</B> ($value)</H3>
<DL COMPACT>
<DT id="29">&bull;<DD>
<TT>$value</TT> (Glib::Variant)
</DL>
<A NAME="lbBA">&nbsp;</A>
<H3>boolean = $value-&gt;<B>get_boolean</B></H3>
<A NAME="lbBB">&nbsp;</A>
<H3>uchar = $value-&gt;<B>get_byte</B></H3>
<A NAME="lbBC">&nbsp;</A>
<H3>string = $value-&gt;<B>get_bytestring</B></H3>
Since: glib 2.26
<A NAME="lbBD">&nbsp;</A>
<H3>variant = $value-&gt;<B>byteswap</B></H3>
<A NAME="lbBE">&nbsp;</A>
<H3>variant = $value-&gt;<B>get_child_value</B> ($index_)</H3>
<DL COMPACT>
<DT id="30">&bull;<DD>
<TT>$index_</TT> (unsigned)
</DL>
<A NAME="lbBF">&nbsp;</A>
<H3>string = $value-&gt;<B>classify</B></H3>
<A NAME="lbBG">&nbsp;</A>
<H3>integer = $one-&gt;<B>compare</B> ($two)</H3>
<DL COMPACT>
<DT id="31">&bull;<DD>
<TT>$two</TT> (Glib::Variant)
</DL>
<P>
Since: glib 2.26
<A NAME="lbBH">&nbsp;</A>
<H3>double = $value-&gt;<B>get_double</B></H3>
<A NAME="lbBI">&nbsp;</A>
<H3>boolean = $one-&gt;<B>equal</B> ($two)</H3>
<DL COMPACT>
<DT id="32">&bull;<DD>
<TT>$two</TT> (Glib::Variant)
</DL>
<A NAME="lbBJ">&nbsp;</A>
<H3>integer = $value-&gt;<B>get_handle</B></H3>
<A NAME="lbBK">&nbsp;</A>
<H3>integer = $value-&gt;<B>hash</B></H3>
<A NAME="lbBL">&nbsp;</A>
<H3>integer = $value-&gt;<B>get_int16</B></H3>
<A NAME="lbBM">&nbsp;</A>
<H3>integer = $value-&gt;<B>get_int32</B></H3>
<A NAME="lbBN">&nbsp;</A>
<H3>64 bit integer = $value-&gt;<B>get_int64</B></H3>
<A NAME="lbBO">&nbsp;</A>
<H3>boolean = $value-&gt;<B>is_container</B></H3>
<A NAME="lbBP">&nbsp;</A>
<H3>boolean = $value-&gt;<B>is_normal_form</B></H3>
<A NAME="lbBQ">&nbsp;</A>
<H3>boolean = $string-&gt;<B>is_object_path</B></H3>
<A NAME="lbBR">&nbsp;</A>
<H3>boolean = $value-&gt;<B>is_of_type</B> ($type)</H3>
<DL COMPACT>
<DT id="33">&bull;<DD>
<TT>$type</TT> (Glib::VariantType)
</DL>
<A NAME="lbBS">&nbsp;</A>
<H3>boolean = $string-&gt;<B>is_signature</B></H3>
<A NAME="lbBT">&nbsp;</A>
<H3>variant = $dictionary-&gt;<B>lookup_value</B> ($key, $expected_type)</H3>
<DL COMPACT>
<DT id="34">&bull;<DD>
<TT>$key</TT> (string)
<DT id="35">&bull;<DD>
<TT>$expected_type</TT> (Glib::VariantType)
</DL>
<P>
Since: glib 2.28
<A NAME="lbBU">&nbsp;</A>
<H3>variant = $value-&gt;<B>get_maybe</B></H3>
<A NAME="lbBV">&nbsp;</A>
<H3>unsigned = $value-&gt;<B>n_children</B></H3>
<A NAME="lbBW">&nbsp;</A>
<H3>variant = $value-&gt;<B>get_normal_form</B></H3>
<A NAME="lbBX">&nbsp;</A>
<H3>variant = Glib::Variant::parse ($type, $text)</H3>
<DL COMPACT>
<DT id="36">&bull;<DD>
<TT>$type</TT> (Glib::VariantType)
<DT id="37">&bull;<DD>
<TT>$text</TT> (string)
</DL>
<P>
May croak with a Glib::Error in $@ on failure.
<A NAME="lbBY">&nbsp;</A>
<H3>string = $value-&gt;<B>print</B> ($type_annotate)</H3>
<DL COMPACT>
<DT id="38">&bull;<DD>
<TT>$type_annotate</TT> (boolean)
</DL>
<A NAME="lbBZ">&nbsp;</A>
<H3>unsigned = $value-&gt;<B>get_size</B></H3>
<A NAME="lbCA">&nbsp;</A>
<H3>string = $value-&gt;<B>get_string</B></H3>
<A NAME="lbCB">&nbsp;</A>
<H3>varianttype = $value-&gt;<B>get_type</B></H3>
<A NAME="lbCC">&nbsp;</A>
<H3>string = $value-&gt;<B>get_type_string</B></H3>
<A NAME="lbCD">&nbsp;</A>
<H3>unsigned = $value-&gt;<B>get_uint16</B></H3>
<A NAME="lbCE">&nbsp;</A>
<H3>unsigned = $value-&gt;<B>get_uint32</B></H3>
<A NAME="lbCF">&nbsp;</A>
<H3>64 bit unsigned = $value-&gt;<B>get_uint64</B></H3>
<A NAME="lbCG">&nbsp;</A>
<H3>variant = $value-&gt;<B>get_variant</B></H3>
<A NAME="lbCH">&nbsp;</A>
<H2>SEE ALSO</H2>
Glib, Glib::VariantType, Glib::VariantDict
<A NAME="lbCI">&nbsp;</A>
<H2>COPYRIGHT</H2>
Copyright (C) 2003-2011 by the gtk2-perl team.
<P>
This software is licensed under the <FONT SIZE="-1">LGPL.</FONT> See Glib for a full notice.
<P>
<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT id="39"><A HREF="#lbAB">NAME</A><DD>
<DT id="40"><A HREF="#lbAC">SYNOPSIS</A><DD>
<DT id="41"><A HREF="#lbAD">DESCRIPTION</A><DD>
<DL>
<DT id="42"><A HREF="#lbAE"><FONT SIZE="-1">CONVENIENCE API</FONT></A><DD>
</DL>
<DT id="43"><A HREF="#lbAF">HIERARCHY</A><DD>
<DT id="44"><A HREF="#lbAG">METHODS</A><DD>
<DL>
<DT id="45"><A HREF="#lbAH">variant = Glib::Variant-&gt;<B>new_array</B> ($child_type, $children)</A><DD>
<DT id="46"><A HREF="#lbAI">variant = Glib::Variant-&gt;<B>new_boolean</B> ($value)</A><DD>
<DT id="47"><A HREF="#lbAJ">variant = Glib::Variant-&gt;<B>new_byte</B> ($value)</A><DD>
<DT id="48"><A HREF="#lbAK">variant = Glib::Variant-&gt;<B>new_bytestring</B> ($string)</A><DD>
<DT id="49"><A HREF="#lbAL">variant = Glib::Variant-&gt;<B>new_dict_entry</B> ($key, $value)</A><DD>
<DT id="50"><A HREF="#lbAM">variant = Glib::Variant-&gt;<B>new_double</B> ($value)</A><DD>
<DT id="51"><A HREF="#lbAN">variant = Glib::Variant-&gt;<B>new_handle</B> ($value)</A><DD>
<DT id="52"><A HREF="#lbAO">variant = Glib::Variant-&gt;<B>new_int16</B> ($value)</A><DD>
<DT id="53"><A HREF="#lbAP">variant = Glib::Variant-&gt;<B>new_int32</B> ($value)</A><DD>
<DT id="54"><A HREF="#lbAQ">variant = Glib::Variant-&gt;<B>new_int64</B> ($value)</A><DD>
<DT id="55"><A HREF="#lbAR">variant = Glib::Variant-&gt;<B>new_maybe</B> ($child_type, $child)</A><DD>
<DT id="56"><A HREF="#lbAS">variant = Glib::Variant-&gt;<B>new_object_path</B> ($object_path)</A><DD>
<DT id="57"><A HREF="#lbAT">variant = Glib::Variant-&gt;<B>new_signature</B> ($signature)</A><DD>
<DT id="58"><A HREF="#lbAU">variant = Glib::Variant-&gt;<B>new_string</B> ($string)</A><DD>
<DT id="59"><A HREF="#lbAV">variant = Glib::Variant-&gt;<B>new_tuple</B> ($children)</A><DD>
<DT id="60"><A HREF="#lbAW">variant = Glib::Variant-&gt;<B>new_uint16</B> ($value)</A><DD>
<DT id="61"><A HREF="#lbAX">variant = Glib::Variant-&gt;<B>new_uint32</B> ($value)</A><DD>
<DT id="62"><A HREF="#lbAY">variant = Glib::Variant-&gt;<B>new_uint64</B> ($value)</A><DD>
<DT id="63"><A HREF="#lbAZ">variant = Glib::Variant-&gt;<B>new_variant</B> ($value)</A><DD>
<DT id="64"><A HREF="#lbBA">boolean = $value-&gt;<B>get_boolean</B></A><DD>
<DT id="65"><A HREF="#lbBB">uchar = $value-&gt;<B>get_byte</B></A><DD>
<DT id="66"><A HREF="#lbBC">string = $value-&gt;<B>get_bytestring</B></A><DD>
<DT id="67"><A HREF="#lbBD">variant = $value-&gt;<B>byteswap</B></A><DD>
<DT id="68"><A HREF="#lbBE">variant = $value-&gt;<B>get_child_value</B> ($index_)</A><DD>
<DT id="69"><A HREF="#lbBF">string = $value-&gt;<B>classify</B></A><DD>
<DT id="70"><A HREF="#lbBG">integer = $one-&gt;<B>compare</B> ($two)</A><DD>
<DT id="71"><A HREF="#lbBH">double = $value-&gt;<B>get_double</B></A><DD>
<DT id="72"><A HREF="#lbBI">boolean = $one-&gt;<B>equal</B> ($two)</A><DD>
<DT id="73"><A HREF="#lbBJ">integer = $value-&gt;<B>get_handle</B></A><DD>
<DT id="74"><A HREF="#lbBK">integer = $value-&gt;<B>hash</B></A><DD>
<DT id="75"><A HREF="#lbBL">integer = $value-&gt;<B>get_int16</B></A><DD>
<DT id="76"><A HREF="#lbBM">integer = $value-&gt;<B>get_int32</B></A><DD>
<DT id="77"><A HREF="#lbBN">64 bit integer = $value-&gt;<B>get_int64</B></A><DD>
<DT id="78"><A HREF="#lbBO">boolean = $value-&gt;<B>is_container</B></A><DD>
<DT id="79"><A HREF="#lbBP">boolean = $value-&gt;<B>is_normal_form</B></A><DD>
<DT id="80"><A HREF="#lbBQ">boolean = $string-&gt;<B>is_object_path</B></A><DD>
<DT id="81"><A HREF="#lbBR">boolean = $value-&gt;<B>is_of_type</B> ($type)</A><DD>
<DT id="82"><A HREF="#lbBS">boolean = $string-&gt;<B>is_signature</B></A><DD>
<DT id="83"><A HREF="#lbBT">variant = $dictionary-&gt;<B>lookup_value</B> ($key, $expected_type)</A><DD>
<DT id="84"><A HREF="#lbBU">variant = $value-&gt;<B>get_maybe</B></A><DD>
<DT id="85"><A HREF="#lbBV">unsigned = $value-&gt;<B>n_children</B></A><DD>
<DT id="86"><A HREF="#lbBW">variant = $value-&gt;<B>get_normal_form</B></A><DD>
<DT id="87"><A HREF="#lbBX">variant = Glib::Variant::parse ($type, $text)</A><DD>
<DT id="88"><A HREF="#lbBY">string = $value-&gt;<B>print</B> ($type_annotate)</A><DD>
<DT id="89"><A HREF="#lbBZ">unsigned = $value-&gt;<B>get_size</B></A><DD>
<DT id="90"><A HREF="#lbCA">string = $value-&gt;<B>get_string</B></A><DD>
<DT id="91"><A HREF="#lbCB">varianttype = $value-&gt;<B>get_type</B></A><DD>
<DT id="92"><A HREF="#lbCC">string = $value-&gt;<B>get_type_string</B></A><DD>
<DT id="93"><A HREF="#lbCD">unsigned = $value-&gt;<B>get_uint16</B></A><DD>
<DT id="94"><A HREF="#lbCE">unsigned = $value-&gt;<B>get_uint32</B></A><DD>
<DT id="95"><A HREF="#lbCF">64 bit unsigned = $value-&gt;<B>get_uint64</B></A><DD>
<DT id="96"><A HREF="#lbCG">variant = $value-&gt;<B>get_variant</B></A><DD>
</DL>
<DT id="97"><A HREF="#lbCH">SEE ALSO</A><DD>
<DT id="98"><A HREF="#lbCI">COPYRIGHT</A><DD>
</DL>
<HR>
This document was created by
<A HREF="/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 00:05:45 GMT, March 31, 2021
</BODY>
</HTML>