2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
4
<refentry id="RBStringValueMap">
6
<refentrytitle role="top_of_page" id="RBStringValueMap.top_of_page">RBStringValueMap</refentrytitle>
7
<manvolnum>3</manvolnum>
8
<refmiscinfo>RHYTHMBOX Library</refmiscinfo>
12
<refname>RBStringValueMap</refname>
13
<refpurpose>specialized hash table for storing string to GValue mappings</refpurpose>
16
<refsynopsisdiv id="RBStringValueMap.synopsis" role="synopsis">
17
<title role="synopsis.title">Synopsis</title>
20
<link linkend="RBStringValueMap-struct">RBStringValueMap</link>;
21
<link linkend="RBStringValueMapClass">RBStringValueMapClass</link>;
22
<link linkend="RBStringValueMap">RBStringValueMap</link> * <link linkend="rb-string-value-map-new">rb_string_value_map_new</link> (void);
23
<link linkend="void">void</link> <link linkend="rb-string-value-map-set">rb_string_value_map_set</link> (<link linkend="RBStringValueMap">RBStringValueMap</link> *map,
24
const <link linkend="char">char</link> *key,
25
const <link linkend="GValue">GValue</link> *value);
26
<link linkend="gboolean">gboolean</link> <link linkend="rb-string-value-map-get">rb_string_value_map_get</link> (<link linkend="RBStringValueMap">RBStringValueMap</link> *map,
27
const <link linkend="char">char</link> *key,
28
<link linkend="GValue">GValue</link> *out);
29
const <link linkend="GValue">GValue</link>* <link linkend="rb-string-value-map-peek">rb_string_value_map_peek</link> (<link linkend="RBStringValueMap">RBStringValueMap</link> *map,
30
const <link linkend="char">char</link> *key);
31
<link linkend="gboolean">gboolean</link> <link linkend="rb-string-value-map-remove">rb_string_value_map_remove</link> (<link linkend="RBStringValueMap">RBStringValueMap</link> *map,
32
const <link linkend="char">char</link> *key);
33
<link linkend="guint">guint</link> <link linkend="rb-string-value-map-size">rb_string_value_map_size</link> (<link linkend="RBStringValueMap">RBStringValueMap</link> *map);
34
<link linkend="GHashTable">GHashTable</link>* <link linkend="rb-string-value-map-steal-hashtable">rb_string_value_map_steal_hashtable</link> (<link linkend="RBStringValueMap">RBStringValueMap</link> *map);
38
<refsect1 id="RBStringValueMap.object-hierarchy" role="object_hierarchy">
39
<title role="object_hierarchy.title">Object Hierarchy</title>
41
<link linkend="GObject">GObject</link>
53
<refsect1 id="RBStringValueMap.description" role="desc">
54
<title role="desc.title">Description</title>
56
Simplifies the use of string:GValue maps with respect to copying of the values
57
inserted into the map. Except for rb_string_value_map_peek, the caller retains
58
ownership of values passed in, and assumes ownership of all values returned.</para>
63
<refsect1 id="RBStringValueMap.details" role="details">
64
<title role="details.title">Details</title>
65
<refsect2 id="RBStringValueMap-struct" role="struct">
66
<title>RBStringValueMap</title>
67
<indexterm zone="RBStringValueMap-struct"><primary sortas="RBStringValueMap">RBStringValueMap</primary></indexterm><programlisting>typedef struct _RBStringValueMap RBStringValueMap;</programlisting>
70
<refsect2 id="RBStringValueMapClass" role="struct">
71
<title>RBStringValueMapClass</title>
72
<indexterm zone="RBStringValueMapClass"><primary sortas="RBStringValueMapClass">RBStringValueMapClass</primary></indexterm><programlisting>typedef struct {
74
} RBStringValueMapClass;
78
<refsect2 id="rb-string-value-map-new" role="function">
79
<title>rb_string_value_map_new ()</title>
80
<indexterm zone="rb-string-value-map-new"><primary sortas="rb_string_value_map_new">rb_string_value_map_new</primary></indexterm><programlisting><link linkend="RBStringValueMap">RBStringValueMap</link> * rb_string_value_map_new (void);</programlisting>
82
Creates a new <link linkend="RBStringValueMap"><type>RBStringValueMap</type></link></para>
84
</para><variablelist role="params">
85
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> new empty <link linkend="RBStringValueMap"><type>RBStringValueMap</type></link>
86
</simpara></listitem></varlistentry>
87
</variablelist></refsect2>
88
<refsect2 id="rb-string-value-map-set" role="function">
89
<title>rb_string_value_map_set ()</title>
90
<indexterm zone="rb-string-value-map-set"><primary sortas="rb_string_value_map_set">rb_string_value_map_set</primary></indexterm><programlisting><link linkend="void">void</link> rb_string_value_map_set (<link linkend="RBStringValueMap">RBStringValueMap</link> *map,
91
const <link linkend="char">char</link> *key,
92
const <link linkend="GValue">GValue</link> *value);</programlisting>
94
Inserts a value into the map. The value is copied.</para>
96
</para><variablelist role="params">
97
<varlistentry><term><parameter>map</parameter> :</term>
98
<listitem><simpara> a <link linkend="RBStringValueMap"><type>RBStringValueMap</type></link>
99
</simpara></listitem></varlistentry>
100
<varlistentry><term><parameter>key</parameter> :</term>
101
<listitem><simpara> key to set
102
</simpara></listitem></varlistentry>
103
<varlistentry><term><parameter>value</parameter> :</term>
104
<listitem><simpara> value to store
105
</simpara></listitem></varlistentry>
106
</variablelist></refsect2>
107
<refsect2 id="rb-string-value-map-get" role="function">
108
<title>rb_string_value_map_get ()</title>
109
<indexterm zone="rb-string-value-map-get"><primary sortas="rb_string_value_map_get">rb_string_value_map_get</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> rb_string_value_map_get (<link linkend="RBStringValueMap">RBStringValueMap</link> *map,
110
const <link linkend="char">char</link> *key,
111
<link linkend="GValue">GValue</link> *out);</programlisting>
113
Locates and copies the value associated with the key.</para>
115
</para><variablelist role="params">
116
<varlistentry><term><parameter>map</parameter> :</term>
117
<listitem><simpara> a <link linkend="RBStringValueMap"><type>RBStringValueMap</type></link>
118
</simpara></listitem></varlistentry>
119
<varlistentry><term><parameter>key</parameter> :</term>
120
<listitem><simpara> key to retrieve
121
</simpara></listitem></varlistentry>
122
<varlistentry><term><parameter>out</parameter> :</term>
123
<listitem><simpara> returns a copy of the value in the map
124
</simpara></listitem></varlistentry>
125
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the value was found
126
</simpara></listitem></varlistentry>
127
</variablelist></refsect2>
128
<refsect2 id="rb-string-value-map-peek" role="function">
129
<title>rb_string_value_map_peek ()</title>
130
<indexterm zone="rb-string-value-map-peek"><primary sortas="rb_string_value_map_peek">rb_string_value_map_peek</primary></indexterm><programlisting>const <link linkend="GValue">GValue</link>* rb_string_value_map_peek (<link linkend="RBStringValueMap">RBStringValueMap</link> *map,
131
const <link linkend="char">char</link> *key);</programlisting>
133
Locates the value associated with the key. This returns the
134
GValue stored in the map, so it cannot be modified.</para>
136
</para><variablelist role="params">
137
<varlistentry><term><parameter>map</parameter> :</term>
138
<listitem><simpara> a <link linkend="RBStringValueMap"><type>RBStringValueMap</type></link>
139
</simpara></listitem></varlistentry>
140
<varlistentry><term><parameter>key</parameter> :</term>
141
<listitem><simpara> key to retrieve
142
</simpara></listitem></varlistentry>
143
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> the GValue associated with the key
144
</simpara></listitem></varlistentry>
145
</variablelist></refsect2>
146
<refsect2 id="rb-string-value-map-remove" role="function">
147
<title>rb_string_value_map_remove ()</title>
148
<indexterm zone="rb-string-value-map-remove"><primary sortas="rb_string_value_map_remove">rb_string_value_map_remove</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> rb_string_value_map_remove (<link linkend="RBStringValueMap">RBStringValueMap</link> *map,
149
const <link linkend="char">char</link> *key);</programlisting>
151
Removes a value from the map.</para>
153
</para><variablelist role="params">
154
<varlistentry><term><parameter>map</parameter> :</term>
155
<listitem><simpara> a <link linkend="RBStringValueMap"><type>RBStringValueMap</type></link>
156
</simpara></listitem></varlistentry>
157
<varlistentry><term><parameter>key</parameter> :</term>
158
<listitem><simpara> key to remove
159
</simpara></listitem></varlistentry>
160
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="TRUE--CAPS"><literal>TRUE</literal></link> if the value was found and removed
161
</simpara></listitem></varlistentry>
162
</variablelist></refsect2>
163
<refsect2 id="rb-string-value-map-size" role="function">
164
<title>rb_string_value_map_size ()</title>
165
<indexterm zone="rb-string-value-map-size"><primary sortas="rb_string_value_map_size">rb_string_value_map_size</primary></indexterm><programlisting><link linkend="guint">guint</link> rb_string_value_map_size (<link linkend="RBStringValueMap">RBStringValueMap</link> *map);</programlisting>
167
Returns the number of entries in the map.</para>
169
</para><variablelist role="params">
170
<varlistentry><term><parameter>map</parameter> :</term>
171
<listitem><simpara> a <link linkend="RBStringValueMap"><type>RBStringValueMap</type></link>
172
</simpara></listitem></varlistentry>
173
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> number of entries
174
</simpara></listitem></varlistentry>
175
</variablelist></refsect2>
176
<refsect2 id="rb-string-value-map-steal-hashtable" role="function">
177
<title>rb_string_value_map_steal_hashtable ()</title>
178
<indexterm zone="rb-string-value-map-steal-hashtable"><primary sortas="rb_string_value_map_steal_hashtable">rb_string_value_map_steal_hashtable</primary></indexterm><programlisting><link linkend="GHashTable">GHashTable</link>* rb_string_value_map_steal_hashtable (<link linkend="RBStringValueMap">RBStringValueMap</link> *map);</programlisting>
180
Extracts and returns the underlying hash table from the map,
181
and creates a new empty map.</para>
183
</para><variablelist role="params">
184
<varlistentry><term><parameter>map</parameter> :</term>
185
<listitem><simpara> a <link linkend="RBStringValueMap"><type>RBStringValueMap</type></link>
186
</simpara></listitem></varlistentry>
187
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> <link linkend="GHashTable"><type>GHashTable</type></link> from the map
188
</simpara></listitem></varlistentry>
189
</variablelist></refsect2>