~ubuntu-branches/ubuntu/utopic/glib2.0/utopic

« back to all changes in this revision

Viewing changes to docs/reference/glib/xml/trash_stack.xml

Tags: upstream-2.12.12
ImportĀ upstreamĀ versionĀ 2.12.12

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<refentry id="glib-Trash-Stacks">
 
2
<refmeta>
 
3
<refentrytitle role="top_of_page">Trash Stacks</refentrytitle>
 
4
<manvolnum>3</manvolnum>
 
5
<refmiscinfo>GLIB Library</refmiscinfo>
 
6
</refmeta>
 
7
 
 
8
<refnamediv>
 
9
<refname>Trash Stacks</refname>
 
10
<refpurpose>maintain a stack of unused allocated memory chunks.</refpurpose>
 
11
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
 
12
</refnamediv>
 
13
 
 
14
<refsynopsisdiv role="synopsis">
 
15
<title role="synopsis.title">Synopsis</title>
 
16
 
 
17
<synopsis>
 
18
 
 
19
#include &lt;glib.h&gt;
 
20
 
 
21
 
 
22
                    <link linkend="GTrashStack">GTrashStack</link>;
 
23
<link linkend="void">void</link>                <link linkend="g-trash-stack-push">g_trash_stack_push</link>                  (<link linkend="GTrashStack">GTrashStack</link> **stack_p,
 
24
                                                         <link linkend="gpointer">gpointer</link> data_p);
 
25
<link linkend="gpointer">gpointer</link>            <link linkend="g-trash-stack-pop">g_trash_stack_pop</link>                   (<link linkend="GTrashStack">GTrashStack</link> **stack_p);
 
26
<link linkend="gpointer">gpointer</link>            <link linkend="g-trash-stack-peek">g_trash_stack_peek</link>                  (<link linkend="GTrashStack">GTrashStack</link> **stack_p);
 
27
<link linkend="guint">guint</link>               <link linkend="g-trash-stack-height">g_trash_stack_height</link>                (<link linkend="GTrashStack">GTrashStack</link> **stack_p);
 
28
</synopsis>
 
29
</refsynopsisdiv>
 
30
 
 
31
 
 
32
 
 
33
 
 
34
 
 
35
 
 
36
 
 
37
 
 
38
 
 
39
<refsect1 role="desc">
 
40
<title role="desc.title">Description</title>
 
41
<para>
 
42
A <link linkend="GTrashStack"><type>GTrashStack</type></link> is an efficient way to keep a stack of unused allocated
 
43
memory chunks. Each memory chunk is required to be large enough to hold
 
44
a <link linkend="gpointer"><type>gpointer</type></link>. This allows the stack to be maintained without any space
 
45
overhead, since the stack pointers can be stored inside the memory chunks.
 
46
</para>
 
47
<para>
 
48
There is no function to create a <link linkend="GTrashStack"><type>GTrashStack</type></link>. A <link linkend="NULL:CAPS"><literal>NULL</literal></link> <link linkend="GTrashStack"><type>GTrashStack</type></link>* 
 
49
is a perfectly valid empty stack.
 
50
</para>
 
51
</refsect1>
 
52
 
 
53
<refsect1 role="details">
 
54
<title role="details.title">Details</title>
 
55
<refsect2>
 
56
<title><anchor id="GTrashStack" role="struct"/>GTrashStack</title>
 
57
<indexterm><primary>GTrashStack</primary></indexterm><programlisting>typedef struct {
 
58
  GTrashStack *next;
 
59
} GTrashStack;
 
60
</programlisting>
 
61
<para>
 
62
Each piece of memory that is pushed onto the stack
 
63
is cast to a <structname>GTrashStack*</structname>.
 
64
</para><variablelist role="struct">
 
65
<varlistentry>
 
66
<term><link linkend="GTrashStack">GTrashStack</link>&nbsp;*<structfield>next</structfield>;</term>
 
67
<listitem><simpara>pointer to the previous element of the stack,
 
68
gets stored in the first <literal>sizeof (gpointer)</literal>
 
69
bytes of the element.
 
70
 
 
71
</simpara></listitem>
 
72
</varlistentry>
 
73
</variablelist></refsect2>
 
74
<refsect2>
 
75
<title><anchor id="g-trash-stack-push" role="function"/>g_trash_stack_push ()</title>
 
76
<indexterm><primary>g_trash_stack_push</primary></indexterm><programlisting><link linkend="void">void</link>                g_trash_stack_push                  (<link linkend="GTrashStack">GTrashStack</link> **stack_p,
 
77
                                                         <link linkend="gpointer">gpointer</link> data_p);</programlisting>
 
78
<para>
 
79
Pushes a piece of memory onto a <link linkend="GTrashStack"><type>GTrashStack</type></link>.
 
80
</para><variablelist role="params">
 
81
<varlistentry><term><parameter>stack_p</parameter>&nbsp;:</term>
 
82
<listitem><simpara>a pointer to a <link linkend="GTrashStack"><type>GTrashStack</type></link>.
 
83
</simpara></listitem></varlistentry>
 
84
<varlistentry><term><parameter>data_p</parameter>&nbsp;:</term>
 
85
<listitem><simpara>the piece of memory to push on the stack.
 
86
 
 
87
 
 
88
</simpara></listitem></varlistentry>
 
89
</variablelist></refsect2>
 
90
<refsect2>
 
91
<title><anchor id="g-trash-stack-pop" role="function"/>g_trash_stack_pop ()</title>
 
92
<indexterm><primary>g_trash_stack_pop</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link>            g_trash_stack_pop                   (<link linkend="GTrashStack">GTrashStack</link> **stack_p);</programlisting>
 
93
<para>
 
94
Pops a piece of memory off a <link linkend="GTrashStack"><type>GTrashStack</type></link>.
 
95
</para><variablelist role="params">
 
96
<varlistentry><term><parameter>stack_p</parameter>&nbsp;:</term>
 
97
<listitem><simpara>a pointer to a <link linkend="GTrashStack"><type>GTrashStack</type></link>.
 
98
</simpara></listitem></varlistentry>
 
99
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>the element at the top of the stack.
 
100
 
 
101
 
 
102
</simpara></listitem></varlistentry>
 
103
</variablelist></refsect2>
 
104
<refsect2>
 
105
<title><anchor id="g-trash-stack-peek" role="function"/>g_trash_stack_peek ()</title>
 
106
<indexterm><primary>g_trash_stack_peek</primary></indexterm><programlisting><link linkend="gpointer">gpointer</link>            g_trash_stack_peek                  (<link linkend="GTrashStack">GTrashStack</link> **stack_p);</programlisting>
 
107
<para>
 
108
Returns the element at the top of a <link linkend="GTrashStack"><type>GTrashStack</type></link> which may be <link linkend="NULL:CAPS"><literal>NULL</literal></link>.
 
109
</para><variablelist role="params">
 
110
<varlistentry><term><parameter>stack_p</parameter>&nbsp;:</term>
 
111
<listitem><simpara>a pointer to a <link linkend="GTrashStack"><type>GTrashStack</type></link>.
 
112
</simpara></listitem></varlistentry>
 
113
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>the element at the top of the stack.
 
114
 
 
115
 
 
116
</simpara></listitem></varlistentry>
 
117
</variablelist></refsect2>
 
118
<refsect2>
 
119
<title><anchor id="g-trash-stack-height" role="function"/>g_trash_stack_height ()</title>
 
120
<indexterm><primary>g_trash_stack_height</primary></indexterm><programlisting><link linkend="guint">guint</link>               g_trash_stack_height                (<link linkend="GTrashStack">GTrashStack</link> **stack_p);</programlisting>
 
121
<para>
 
122
Returns the height of a <link linkend="GTrashStack"><type>GTrashStack</type></link>.
 
123
Note that execution of this function is of O(N) complexity
 
124
where N denotes the number of items on the stack.
 
125
</para><variablelist role="params">
 
126
<varlistentry><term><parameter>stack_p</parameter>&nbsp;:</term>
 
127
<listitem><simpara>a pointer to a <link linkend="GTrashStack"><type>GTrashStack</type></link>.
 
128
</simpara></listitem></varlistentry>
 
129
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>the height of the stack.
 
130
 
 
131
 
 
132
</simpara></listitem></varlistentry>
 
133
</variablelist></refsect2>
 
134
 
 
135
</refsect1>
 
136
 
 
137
 
 
138
 
 
139
 
 
140
</refentry>