1
<refentry id="camel-CamelStreamMem">
3
<refentrytitle role="top_of_page" id="camel-CamelStreamMem.top_of_page">CamelStreamMem</refentrytitle>
4
<manvolnum>3</manvolnum>
5
<refmiscinfo>CAMEL Library</refmiscinfo>
9
<refname>CamelStreamMem</refname>
10
<refpurpose></refpurpose>
13
<refsynopsisdiv id="camel-CamelStreamMem.synopsis" role="synopsis">
14
<title role="synopsis.title">Synopsis</title>
17
struct <link linkend="CamelStreamMem">CamelStreamMem</link>;
18
<link linkend="CamelStream">CamelStream</link> * <link linkend="camel-stream-mem-new">camel_stream_mem_new</link> (void);
19
<link linkend="CamelStream">CamelStream</link> * <link linkend="camel-stream-mem-new-with-byte-array">camel_stream_mem_new_with_byte_array</link>
20
(<link linkend="GByteArray">GByteArray</link> *buffer);
21
<link linkend="CamelStream">CamelStream</link> * <link linkend="camel-stream-mem-new-with-buffer">camel_stream_mem_new_with_buffer</link> (const <link linkend="gchar">gchar</link> *buffer,
22
<link linkend="gsize">gsize</link> len);
23
<link linkend="void">void</link> <link linkend="camel-stream-mem-set-secure">camel_stream_mem_set_secure</link> (<link linkend="CamelStreamMem">CamelStreamMem</link> *mem);
24
<link linkend="void">void</link> <link linkend="camel-stream-mem-set-byte-array">camel_stream_mem_set_byte_array</link> (<link linkend="CamelStreamMem">CamelStreamMem</link> *mem,
25
<link linkend="GByteArray">GByteArray</link> *buffer);
26
<link linkend="void">void</link> <link linkend="camel-stream-mem-set-buffer">camel_stream_mem_set_buffer</link> (<link linkend="CamelStreamMem">CamelStreamMem</link> *mem,
27
const <link linkend="gchar">gchar</link> *buffer,
28
<link linkend="gsize">gsize</link> len);
40
<refsect1 id="camel-CamelStreamMem.description" role="desc">
41
<title role="desc.title">Description</title>
46
<refsect1 id="camel-CamelStreamMem.details" role="details">
47
<title role="details.title">Details</title>
48
<refsect2 id="CamelStreamMem" role="struct">
49
<title>struct CamelStreamMem</title>
50
<indexterm zone="CamelStreamMem"><primary sortas="CamelStreamMem">CamelStreamMem</primary></indexterm><programlisting>struct CamelStreamMem {
51
CamelSeekableStream parent_object;
53
guint owner:1; /* do we own the buffer? */
54
guint secure:1; /* do we clear the buffer on finalise (if we own it) */
60
<refsect2 id="camel-stream-mem-new" role="function">
61
<title>camel_stream_mem_new ()</title>
62
<indexterm zone="camel-stream-mem-new"><primary sortas="camel_stream_mem_new">camel_stream_mem_new</primary></indexterm><programlisting><link linkend="CamelStream">CamelStream</link> * camel_stream_mem_new (void);</programlisting>
64
Create a new <link linkend="CamelStreamMem"><type>CamelStreamMem</type></link> object.</para>
66
</para><variablelist role="params">
67
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new <link linkend="CamelStreamMem"><type>CamelStreamMem</type></link>
68
</simpara></listitem></varlistentry>
69
</variablelist></refsect2>
70
<refsect2 id="camel-stream-mem-new-with-byte-array" role="function">
71
<title>camel_stream_mem_new_with_byte_array ()</title>
72
<indexterm zone="camel-stream-mem-new-with-byte-array"><primary sortas="camel_stream_mem_new_with_byte_array">camel_stream_mem_new_with_byte_array</primary></indexterm><programlisting><link linkend="CamelStream">CamelStream</link> * camel_stream_mem_new_with_byte_array
73
(<link linkend="GByteArray">GByteArray</link> *buffer);</programlisting>
75
Create a new <link linkend="CamelStreamMem"><type>CamelStreamMem</type></link> using <parameter>buffer</parameter> as the stream data.
78
Note: The newly created <link linkend="CamelStreamMem"><type>CamelStreamMem</type></link> will destroy <parameter>buffer</parameter>
79
when destroyed.</para>
81
</para><variablelist role="params">
82
<varlistentry><term><parameter>buffer</parameter> :</term>
83
<listitem><simpara> a <link linkend="GByteArray"><type>GByteArray</type></link> to use as the stream data
84
</simpara></listitem></varlistentry>
85
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new <link linkend="CamelStreamMem"><type>CamelStreamMem</type></link>
86
</simpara></listitem></varlistentry>
87
</variablelist></refsect2>
88
<refsect2 id="camel-stream-mem-new-with-buffer" role="function">
89
<title>camel_stream_mem_new_with_buffer ()</title>
90
<indexterm zone="camel-stream-mem-new-with-buffer"><primary sortas="camel_stream_mem_new_with_buffer">camel_stream_mem_new_with_buffer</primary></indexterm><programlisting><link linkend="CamelStream">CamelStream</link> * camel_stream_mem_new_with_buffer (const <link linkend="gchar">gchar</link> *buffer,
91
<link linkend="gsize">gsize</link> len);</programlisting>
93
Create a new memory stream using <parameter>buffer</parameter> as the stream data.
96
Note: <parameter>buffer</parameter> will be copied into an internal <link linkend="GByteArray"><type>GByteArray</type></link> structure
97
for use as the stream backing. This may have resource implications
98
you may wish to consider.</para>
100
</para><variablelist role="params">
101
<varlistentry><term><parameter>buffer</parameter> :</term>
102
<listitem><simpara> a memory buffer to use as the stream data
103
</simpara></listitem></varlistentry>
104
<varlistentry><term><parameter>len</parameter> :</term>
105
<listitem><simpara> length of <parameter>buffer</parameter>
106
</simpara></listitem></varlistentry>
107
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> a new <link linkend="CamelStreamMem"><type>CamelStreamMem</type></link>
108
</simpara></listitem></varlistentry>
109
</variablelist></refsect2>
110
<refsect2 id="camel-stream-mem-set-secure" role="function">
111
<title>camel_stream_mem_set_secure ()</title>
112
<indexterm zone="camel-stream-mem-set-secure"><primary sortas="camel_stream_mem_set_secure">camel_stream_mem_set_secure</primary></indexterm><programlisting><link linkend="void">void</link> camel_stream_mem_set_secure (<link linkend="CamelStreamMem">CamelStreamMem</link> *mem);</programlisting>
114
Mark the memory stream as secure. At the very least this means the
115
data in the buffer will be cleared when the buffer is finalised.
116
This only applies to buffers owned by the stream.</para>
118
</para><variablelist role="params">
119
<varlistentry><term><parameter>mem</parameter> :</term>
120
<listitem><simpara> a <link linkend="CamelStreamMem"><type>CamelStreamMem</type></link> object
121
</simpara></listitem></varlistentry>
122
</variablelist></refsect2>
123
<refsect2 id="camel-stream-mem-set-byte-array" role="function">
124
<title>camel_stream_mem_set_byte_array ()</title>
125
<indexterm zone="camel-stream-mem-set-byte-array"><primary sortas="camel_stream_mem_set_byte_array">camel_stream_mem_set_byte_array</primary></indexterm><programlisting><link linkend="void">void</link> camel_stream_mem_set_byte_array (<link linkend="CamelStreamMem">CamelStreamMem</link> *mem,
126
<link linkend="GByteArray">GByteArray</link> *buffer);</programlisting>
128
Set <parameter>buffer</parameter> to be the backing data to the existing <link linkend="CamelStreamMem"><type>CamelStreamMem</type></link>, <parameter>mem</parameter>.
131
Note: <parameter>mem</parameter> will not take ownership of <parameter>buffer</parameter> and so will need to
132
be freed separately from <parameter>mem</parameter>.</para>
134
</para><variablelist role="params">
135
<varlistentry><term><parameter>mem</parameter> :</term>
136
<listitem><simpara> a <link linkend="CamelStreamMem"><type>CamelStreamMem</type></link> object
137
</simpara></listitem></varlistentry>
138
<varlistentry><term><parameter>buffer</parameter> :</term>
139
<listitem><simpara> a <link linkend="GByteArray"><type>GByteArray</type></link>
140
</simpara></listitem></varlistentry>
141
</variablelist></refsect2>
142
<refsect2 id="camel-stream-mem-set-buffer" role="function">
143
<title>camel_stream_mem_set_buffer ()</title>
144
<indexterm zone="camel-stream-mem-set-buffer"><primary sortas="camel_stream_mem_set_buffer">camel_stream_mem_set_buffer</primary></indexterm><programlisting><link linkend="void">void</link> camel_stream_mem_set_buffer (<link linkend="CamelStreamMem">CamelStreamMem</link> *mem,
145
const <link linkend="gchar">gchar</link> *buffer,
146
<link linkend="gsize">gsize</link> len);</programlisting>
148
Set <parameter>buffer</parameter> to be the backing data to the existing <link linkend="CamelStreamMem"><type>CamelStreamMem</type></link>, <parameter>mem</parameter>.
151
Note: <parameter>buffer</parameter> will be copied into an internal <link linkend="GByteArray"><type>GByteArray</type></link> structure
152
and so may have resource implications to consider.</para>
154
</para><variablelist role="params">
155
<varlistentry><term><parameter>mem</parameter> :</term>
156
<listitem><simpara> a <link linkend="CamelStreamMem"><type>CamelStreamMem</type></link> object
157
</simpara></listitem></varlistentry>
158
<varlistentry><term><parameter>buffer</parameter> :</term>
159
<listitem><simpara> a memory buffer
160
</simpara></listitem></varlistentry>
161
<varlistentry><term><parameter>len</parameter> :</term>
162
<listitem><simpara> length of <parameter>buffer</parameter>
163
</simpara></listitem></varlistentry>
164
</variablelist></refsect2>