30
40
Inheritance diagram for Exiv2::BasicIo:<p><center><img src="classExiv2_1_1BasicIo__inherit__graph.png" border="0" usemap="#Exiv2_1_1BasicIo__inherit__map" alt="Inheritance graph"></center>
31
41
<map name="Exiv2_1_1BasicIo__inherit__map">
32
<area href="classExiv2_1_1FileIo.html" shape="rect" coords="5,81,99,105" alt="">
33
<area href="classExiv2_1_1MemIo.html" shape="rect" coords="123,81,227,105" alt="">
42
<area href="classExiv2_1_1FileIo.html" shape="rect" coords="5,81,107,105" alt="">
43
<area href="classExiv2_1_1MemIo.html" shape="rect" coords="131,81,243,105" alt="">
35
45
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classExiv2_1_1BasicIo-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
37
47
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
38
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f8f989522925b884d8c9d3a257265fa1"></a><!-- doxytag: member="Exiv2::BasicIo::AutoPtr" ref="f8f989522925b884d8c9d3a257265fa1" args="" -->
39
typedef std::auto_ptr< <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#f8f989522925b884d8c9d3a257265fa1">AutoPtr</a></td></tr>
41
<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> auto_ptr type. <br></td></tr>
42
48
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#1d23c3bf7618f2ee6ebb5cf033b10911">Position</a> { <b>beg</b>,
47
53
<tr><td class="mdescLeft"> </td><td class="mdescRight">Seek starting positions. <br></td></tr>
54
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f8f989522925b884d8c9d3a257265fa1"></a><!-- doxytag: member="Exiv2::BasicIo::AutoPtr" ref="f8f989522925b884d8c9d3a257265fa1" args="" -->
55
typedef std::auto_ptr< <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#f8f989522925b884d8c9d3a257265fa1">AutoPtr</a></td></tr>
57
<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> auto_ptr type. <br></td></tr>
48
58
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
49
<tr><td colspan="2"><div class="groupHeader">Creators</div></td></tr>
50
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0c6658dc8caea27ac88def52ce0789bd"></a><!-- doxytag: member="Exiv2::BasicIo::~BasicIo" ref="0c6658dc8caea27ac88def52ce0789bd" args="()" -->
51
virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#0c6658dc8caea27ac88def52ce0789bd">~BasicIo</a> ()</td></tr>
53
<tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br></td></tr>
54
59
<tr><td colspan="2"><div class="groupHeader">Manipulators</div></td></tr>
55
60
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#1beff0dcdf03510bad13b6946379c5f2">open</a> ()=0</td></tr>
82
87
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#561221bbe1d215b4d6b5ceceaa2e9a97">seek</a> (long offset, <a class="el" href="classExiv2_1_1BasicIo.html#1d23c3bf7618f2ee6ebb5cf033b10911">Position</a> pos)=0</td></tr>
84
89
<tr><td class="mdescLeft"> </td><td class="mdescRight">Move the current IO position. <a href="#561221bbe1d215b4d6b5ceceaa2e9a97"></a><br></td></tr>
90
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#56dedc1898b73b376280fc9c9d656d9b">mmap</a> ()=0</td></tr>
92
<tr><td class="mdescLeft"> </td><td class="mdescRight">Direct access to the IO data. For files, this is done by mapping the file into the process's address space; for memory blocks, this allows direct access to the memory block. <a href="#56dedc1898b73b376280fc9c9d656d9b"></a><br></td></tr>
93
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="501ac3b9cdbcf80456d12b9db0e22c68"></a><!-- doxytag: member="Exiv2::BasicIo::munmap" ref="501ac3b9cdbcf80456d12b9db0e22c68" args="()=0" -->
94
virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#501ac3b9cdbcf80456d12b9db0e22c68">munmap</a> ()=0</td></tr>
96
<tr><td class="mdescLeft"> </td><td class="mdescRight">Remove a mapping established with <a class="el" href="classExiv2_1_1BasicIo.html#56dedc1898b73b376280fc9c9d656d9b">mmap()</a>. <br></td></tr>
85
97
<tr><td colspan="2"><div class="groupHeader">Accessors</div></td></tr>
86
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual long </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#eb9673a48a7af7376b7018998fb552e6">tell</a> () const =0</td></tr>
88
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the current IO position. <a href="#eb9673a48a7af7376b7018998fb552e6"></a><br></td></tr>
89
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual long </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#01903a1a2310197eb7e3fd41bedc3054">size</a> () const =0</td></tr>
91
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the current size of the IO source in bytes. <a href="#01903a1a2310197eb7e3fd41bedc3054"></a><br></td></tr>
92
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="17744832ee807c68f9c8d744692d9aaf"></a><!-- doxytag: member="Exiv2::BasicIo::isopen" ref="17744832ee807c68f9c8d744692d9aaf" args="() const =0" -->
93
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#17744832ee807c68f9c8d744692d9aaf">isopen</a> () const =0</td></tr>
98
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual long </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#7b30c5ec54f00bc2420f1e5482f4b5e2">tell</a> () const=0</td></tr>
100
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the current IO position. <a href="#7b30c5ec54f00bc2420f1e5482f4b5e2"></a><br></td></tr>
101
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual long </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#b30518eef26c1bbe29077ed804a39ee6">size</a> () const=0</td></tr>
103
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the current size of the IO source in bytes. <a href="#b30518eef26c1bbe29077ed804a39ee6"></a><br></td></tr>
104
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0638dcede159cd8d7fa4fb1b05096e39"></a><!-- doxytag: member="Exiv2::BasicIo::isopen" ref="0638dcede159cd8d7fa4fb1b05096e39" args="() const=0" -->
105
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#0638dcede159cd8d7fa4fb1b05096e39">isopen</a> () const=0</td></tr>
95
107
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true if the IO source is open, otherwise false. <br></td></tr>
96
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d674727cddbf9cea627423620a8bb3d0"></a><!-- doxytag: member="Exiv2::BasicIo::error" ref="d674727cddbf9cea627423620a8bb3d0" args="() const =0" -->
97
virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#d674727cddbf9cea627423620a8bb3d0">error</a> () const =0</td></tr>
108
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="65a4ac789d06fbe8b616bfb16bb66f23"></a><!-- doxytag: member="Exiv2::BasicIo::error" ref="65a4ac789d06fbe8b616bfb16bb66f23" args="() const=0" -->
109
virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#65a4ac789d06fbe8b616bfb16bb66f23">error</a> () const=0</td></tr>
99
111
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns 0 if the IO source is in a valid state, otherwise nonzero. <br></td></tr>
100
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="29b826f89a8aac3c83ece6f8f343ed72"></a><!-- doxytag: member="Exiv2::BasicIo::eof" ref="29b826f89a8aac3c83ece6f8f343ed72" args="() const =0" -->
101
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#29b826f89a8aac3c83ece6f8f343ed72">eof</a> () const =0</td></tr>
112
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5cfc84e22e556407570d418fece23338"></a><!-- doxytag: member="Exiv2::BasicIo::eof" ref="5cfc84e22e556407570d418fece23338" args="() const=0" -->
113
virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#5cfc84e22e556407570d418fece23338">eof</a> () const=0</td></tr>
103
115
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true if the IO position has reach the end, otherwise false. <br></td></tr>
104
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8c4af60d14039fd99d36c73ce8354c15"></a><!-- doxytag: member="Exiv2::BasicIo::path" ref="8c4af60d14039fd99d36c73ce8354c15" args="() const =0" -->
105
virtual std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#8c4af60d14039fd99d36c73ce8354c15">path</a> () const =0</td></tr>
116
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3ddfacd50a552191c8d14c1bc88995c5"></a><!-- doxytag: member="Exiv2::BasicIo::path" ref="3ddfacd50a552191c8d14c1bc88995c5" args="() const=0" -->
117
virtual std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#3ddfacd50a552191c8d14c1bc88995c5">path</a> () const=0</td></tr>
107
119
<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the path to the IO resource. Often used to form comprehensive error messages where only a <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> instance is available. <br></td></tr>
108
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classExiv2_1_1BasicIo.html#f8f989522925b884d8c9d3a257265fa1">BasicIo::AutoPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#ec9dd2dd223ce57650462c74a0770502">temporary</a> () const =0</td></tr>
110
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a temporary data storage location. This is often needed to rewrite an IO source. <a href="#ec9dd2dd223ce57650462c74a0770502"></a><br></td></tr>
111
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
112
<tr><td colspan="2"><div class="groupHeader">Creators</div></td></tr>
113
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c726bef377a5da282b0f2cadb5b779be"></a><!-- doxytag: member="Exiv2::BasicIo::BasicIo" ref="c726bef377a5da282b0f2cadb5b779be" args="()" -->
114
</td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#c726bef377a5da282b0f2cadb5b779be">BasicIo</a> ()</td></tr>
116
<tr><td class="mdescLeft"> </td><td class="mdescRight">Default Constructor. <br></td></tr>
120
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classExiv2_1_1BasicIo.html#f8f989522925b884d8c9d3a257265fa1">BasicIo::AutoPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classExiv2_1_1BasicIo.html#2c962d72689c040a04c18f9317b12497">temporary</a> () const=0</td></tr>
122
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a temporary data storage location. This is often needed to rewrite an IO source. <a href="#2c962d72689c040a04c18f9317b12497"></a><br></td></tr>
118
124
<hr><a name="_details"></a><h2>Detailed Description</h2>
119
125
An interface for simple binary IO.
121
127
Designed to have semantics and names similar to those of C style FILE* operations. Subclasses should all behave the same so that they can be interchanged.
123
129
<hr><h2>Member Function Documentation</h2>
124
<a class="anchor" name="67ae3ca0f8aece92a7b7749dfb02edde"></a><!-- doxytag: member="Exiv2::BasicIo::close" ref="67ae3ca0f8aece92a7b7749dfb02edde" args="()=0" --><p>
125
<table class="mdTable" cellpadding="2" cellspacing="0">
128
<table cellpadding="0" cellspacing="0" border="0">
130
<td class="md" nowrap valign="top">virtual int Exiv2::BasicIo::close </td>
131
<td class="md" valign="top">( </td>
132
<td class="mdname1" valign="top" nowrap> </td>
133
<td class="md" valign="top"> ) </td>
134
<td class="md" nowrap><code> [pure virtual]</code></td>
140
<table cellspacing="5" cellpadding="0" border="0">
148
Close the IO source. After closing a <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> instance can not be read or written. Closing flushes any unwritten data. It is safe to call close on a closed instance.
150
<dl compact><dt><b>Returns:</b></dt><dd>0 if successful;<br>
151
Nonzero if failure. </dd></dl>
154
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#e0a881364b273ff14fb90c9375e9378b">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#7c87d3a1b552a4a93fe38255b43d0fc5">Exiv2::MemIo</a>. </td>
157
<a class="anchor" name="648bc0d9b1a79e34684375074d806534"></a><!-- doxytag: member="Exiv2::BasicIo::getb" ref="648bc0d9b1a79e34684375074d806534" args="()=0" --><p>
158
<table class="mdTable" cellpadding="2" cellspacing="0">
161
<table cellpadding="0" cellspacing="0" border="0">
163
<td class="md" nowrap valign="top">virtual int Exiv2::BasicIo::getb </td>
164
<td class="md" valign="top">( </td>
165
<td class="mdname1" valign="top" nowrap> </td>
166
<td class="md" valign="top"> ) </td>
167
<td class="md" nowrap><code> [pure virtual]</code></td>
173
<table cellspacing="5" cellpadding="0" border="0">
181
Read one byte from the IO source. Current IO position is advanced by one byte.
183
<dl compact><dt><b>Returns:</b></dt><dd>The byte read from the IO source if successful;<br>
184
EOF if failure; </dd></dl>
187
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#7b211213f0c2e3b9153a69f67c15ab47">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#c3a53ab7bda3678eb813e505bad4e50a">Exiv2::MemIo</a>. </td>
190
<a class="anchor" name="1beff0dcdf03510bad13b6946379c5f2"></a><!-- doxytag: member="Exiv2::BasicIo::open" ref="1beff0dcdf03510bad13b6946379c5f2" args="()=0" --><p>
191
<table class="mdTable" cellpadding="2" cellspacing="0">
194
<table cellpadding="0" cellspacing="0" border="0">
196
<td class="md" nowrap valign="top">virtual int Exiv2::BasicIo::open </td>
197
<td class="md" valign="top">( </td>
198
<td class="mdname1" valign="top" nowrap> </td>
199
<td class="md" valign="top"> ) </td>
200
<td class="md" nowrap><code> [pure virtual]</code></td>
206
<table cellspacing="5" cellpadding="0" border="0">
130
<a class="anchor" name="1beff0dcdf03510bad13b6946379c5f2"></a><!-- doxytag: member="Exiv2::BasicIo::open" ref="1beff0dcdf03510bad13b6946379c5f2" args="()=0" -->
131
<div class="memitem">
132
<div class="memproto">
133
<table class="memname">
135
<td class="memname">virtual int Exiv2::BasicIo::open </td>
137
<td class="paramname"> </td>
138
<td> ) </td>
139
<td width="100%"><code> [pure virtual]</code></td>
214
146
Open the IO source using the default access mode. The default mode should allow for reading and writing.
216
148
This method can also be used to "reopen" an IO source which will flush any unwritten data and reset the IO position to the start. Subclasses may provide custom methods to allow for opening IO sources differently.<p>
217
<dl compact><dt><b>Returns:</b></dt><dd>0 if successful;<br>
218
Nonzero if failure. </dd></dl>
221
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#82a0cd197da227242ad8fcc50a70d29b">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#32f5d13aff64550f03dbc93692d27d16">Exiv2::MemIo</a>. </td>
224
<a class="anchor" name="d16a1fab0f122c8ca11b86d09b03b9a7"></a><!-- doxytag: member="Exiv2::BasicIo::putb" ref="d16a1fab0f122c8ca11b86d09b03b9a7" args="(byte data)=0" --><p>
225
<table class="mdTable" cellpadding="2" cellspacing="0">
228
<table cellpadding="0" cellspacing="0" border="0">
230
<td class="md" nowrap valign="top">virtual int Exiv2::BasicIo::putb </td>
231
<td class="md" valign="top">( </td>
232
<td class="md" nowrap valign="top"><a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> </td>
233
<td class="mdname1" valign="top" nowrap> <em>data</em> </td>
234
<td class="md" valign="top"> ) </td>
235
<td class="md" nowrap><code> [pure virtual]</code></td>
241
<table cellspacing="5" cellpadding="0" border="0">
149
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successful;<br>
150
Nonzero if failure. </dd></dl>
153
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#88b8ab582237647a4c28120c15030a71">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#cbc7726037d2eb0dbbdef649f30ebc5c">Exiv2::MemIo</a>.
156
<a class="anchor" name="67ae3ca0f8aece92a7b7749dfb02edde"></a><!-- doxytag: member="Exiv2::BasicIo::close" ref="67ae3ca0f8aece92a7b7749dfb02edde" args="()=0" -->
157
<div class="memitem">
158
<div class="memproto">
159
<table class="memname">
161
<td class="memname">virtual int Exiv2::BasicIo::close </td>
163
<td class="paramname"> </td>
164
<td> ) </td>
165
<td width="100%"><code> [pure virtual]</code></td>
172
Close the IO source. After closing a <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> instance can not be read or written. Closing flushes any unwritten data. It is safe to call close on a closed instance.
174
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successful;<br>
175
Nonzero if failure. </dd></dl>
178
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#794be686e28524d9eed2a0811d477d3b">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#f2263c6d49984da7ce38daed9f327b1e">Exiv2::MemIo</a>.
181
<a class="anchor" name="c548d52ef633ac425bd01d17ccd2e7e4"></a><!-- doxytag: member="Exiv2::BasicIo::write" ref="c548d52ef633ac425bd01d17ccd2e7e4" args="(const byte *data, long wcount)=0" -->
182
<div class="memitem">
183
<div class="memproto">
184
<table class="memname">
186
<td class="memname">virtual long Exiv2::BasicIo::write </td>
188
<td class="paramtype">const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> * </td>
189
<td class="paramname"> <em>data</em>, </td>
192
<td class="paramkey"></td>
194
<td class="paramtype">long </td>
195
<td class="paramname"> <em>wcount</em></td><td> </td>
200
<td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
207
Write data to the IO source. Current IO position is advanced by the number of bytes written.
209
<dl compact><dt><b>Parameters:</b></dt><dd>
210
<table border="0" cellspacing="2" cellpadding="0">
211
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>Pointer to data. Data must be at least <em>wcount</em> bytes long </td></tr>
212
<tr><td valign="top"></td><td valign="top"><em>wcount</em> </td><td>Number of bytes to be written. </td></tr>
215
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of bytes written to IO source successfully;<br>
216
0 if failure; </dd></dl>
219
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#1a576f408124d428d5c446a19e2a504d">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#79993ba49c24c36b30f444c218ce4579">Exiv2::MemIo</a>.
222
<a class="anchor" name="31334606e230bbe94d6b8768d3c6d75f"></a><!-- doxytag: member="Exiv2::BasicIo::write" ref="31334606e230bbe94d6b8768d3c6d75f" args="(BasicIo &src)=0" -->
223
<div class="memitem">
224
<div class="memproto">
225
<table class="memname">
227
<td class="memname">virtual long Exiv2::BasicIo::write </td>
229
<td class="paramtype"><a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> & </td>
230
<td class="paramname"> <em>src</em> </td>
231
<td> ) </td>
232
<td width="100%"><code> [pure virtual]</code></td>
239
Write data that is read from another <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> instance to the IO source. Current IO position is advanced by the number of bytes written.
241
<dl compact><dt><b>Parameters:</b></dt><dd>
242
<table border="0" cellspacing="2" cellpadding="0">
243
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Reference to another <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> instance. Reading start at the source's current IO position </td></tr>
246
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of bytes written to IO source successfully;<br>
247
0 if failure; </dd></dl>
250
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#7fd4444f019a2cfbd0e925e9b181c95c">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#84c854a02e45febea5c0dfc0192e4b6e">Exiv2::MemIo</a>.
253
<a class="anchor" name="d16a1fab0f122c8ca11b86d09b03b9a7"></a><!-- doxytag: member="Exiv2::BasicIo::putb" ref="d16a1fab0f122c8ca11b86d09b03b9a7" args="(byte data)=0" -->
254
<div class="memitem">
255
<div class="memproto">
256
<table class="memname">
258
<td class="memname">virtual int Exiv2::BasicIo::putb </td>
260
<td class="paramtype"><a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> </td>
261
<td class="paramname"> <em>data</em> </td>
262
<td> ) </td>
263
<td width="100%"><code> [pure virtual]</code></td>
249
270
Write one byte to the IO source. Current IO position is advanced by one byte.
253
274
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>The single byte to be written. </td></tr>
256
<dl compact><dt><b>Returns:</b></dt><dd>The value of the byte written if successful;<br>
277
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The value of the byte written if successful;<br>
257
278
EOF if failure; </dd></dl>
260
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#5d982468386b392b34b5ee8142b73396">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#2737a46ff783d3e9c66c6f8ce255d913">Exiv2::MemIo</a>. </td>
263
<a class="anchor" name="ec8cb20c86e72b87577370a28d66a0ca"></a><!-- doxytag: member="Exiv2::BasicIo::read" ref="ec8cb20c86e72b87577370a28d66a0ca" args="(byte *buf, long rcount)=0" --><p>
264
<table class="mdTable" cellpadding="2" cellspacing="0">
267
<table cellpadding="0" cellspacing="0" border="0">
269
<td class="md" nowrap valign="top">virtual long Exiv2::BasicIo::read </td>
270
<td class="md" valign="top">( </td>
271
<td class="md" nowrap valign="top"><a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> * </td>
272
<td class="mdname" nowrap> <em>buf</em>, </td>
275
<td class="md" nowrap align="right"></td>
277
<td class="md" nowrap>long </td>
278
<td class="mdname" nowrap> <em>rcount</em></td>
282
<td class="md">) </td>
283
<td class="md" colspan="2"><code> [pure virtual]</code></td>
289
<table cellspacing="5" cellpadding="0" border="0">
281
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#581c10115b42fc3a6c2b177337988922">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#5999ba245f79d581c9c5a16982d736b6">Exiv2::MemIo</a>.
284
<a class="anchor" name="8c9e6c7377b642afbb2c14a0e3896917"></a><!-- doxytag: member="Exiv2::BasicIo::read" ref="8c9e6c7377b642afbb2c14a0e3896917" args="(long rcount)=0" -->
285
<div class="memitem">
286
<div class="memproto">
287
<table class="memname">
289
<td class="memname">virtual <a class="el" href="classExiv2_1_1DataBuf.html">DataBuf</a> Exiv2::BasicIo::read </td>
291
<td class="paramtype">long </td>
292
<td class="paramname"> <em>rcount</em> </td>
293
<td> ) </td>
294
<td width="100%"><code> [pure virtual]</code></td>
301
Read data from the IO source. Reading starts at the current IO position and the position is advanced by the number of bytes read.
303
<dl compact><dt><b>Parameters:</b></dt><dd>
304
<table border="0" cellspacing="2" cellpadding="0">
305
<tr><td valign="top"></td><td valign="top"><em>rcount</em> </td><td>Maximum number of bytes to read. Fewer bytes may be read if <em>rcount</em> bytes are not available. </td></tr>
308
<dl class="return" compact><dt><b>Returns:</b></dt><dd><a class="el" href="classExiv2_1_1DataBuf.html">DataBuf</a> instance containing the bytes read. Use the <a class="el" href="classExiv2_1_1DataBuf.html#5e6028d5cdae2e149749667cf66c3e91">DataBuf::size_</a> member to find the number of bytes read. <a class="el" href="classExiv2_1_1DataBuf.html#5e6028d5cdae2e149749667cf66c3e91">DataBuf::size_</a> will be 0 on failure. </dd></dl>
311
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#48ed0700ccfb60a6a435ab7086734965">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#3d45d5be7b0e25c32d37d5055da0adc0">Exiv2::MemIo</a>.
314
<a class="anchor" name="ec8cb20c86e72b87577370a28d66a0ca"></a><!-- doxytag: member="Exiv2::BasicIo::read" ref="ec8cb20c86e72b87577370a28d66a0ca" args="(byte *buf, long rcount)=0" -->
315
<div class="memitem">
316
<div class="memproto">
317
<table class="memname">
319
<td class="memname">virtual long Exiv2::BasicIo::read </td>
321
<td class="paramtype"><a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> * </td>
322
<td class="paramname"> <em>buf</em>, </td>
325
<td class="paramkey"></td>
327
<td class="paramtype">long </td>
328
<td class="paramname"> <em>rcount</em></td><td> </td>
333
<td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
297
340
Read data from the IO source. Reading starts at the current IO position and the position is advanced by the number of bytes read.
302
345
<tr><td valign="top"></td><td valign="top"><em>rcount</em> </td><td>Maximum number of bytes to read. Fewer bytes may be read if <em>rcount</em> bytes are not available. </td></tr>
305
<dl compact><dt><b>Returns:</b></dt><dd>Number of bytes read from IO source successfully;<br>
348
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Number of bytes read from IO source successfully;<br>
306
349
0 if failure; </dd></dl>
309
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#23f598a52577e98be9f4292518ba6198">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#3c4d85990cf914c9c5475466ba522289">Exiv2::MemIo</a>. </td>
312
<a class="anchor" name="8c9e6c7377b642afbb2c14a0e3896917"></a><!-- doxytag: member="Exiv2::BasicIo::read" ref="8c9e6c7377b642afbb2c14a0e3896917" args="(long rcount)=0" --><p>
313
<table class="mdTable" cellpadding="2" cellspacing="0">
316
<table cellpadding="0" cellspacing="0" border="0">
318
<td class="md" nowrap valign="top">virtual <a class="el" href="classExiv2_1_1DataBuf.html">DataBuf</a> Exiv2::BasicIo::read </td>
319
<td class="md" valign="top">( </td>
320
<td class="md" nowrap valign="top">long </td>
321
<td class="mdname1" valign="top" nowrap> <em>rcount</em> </td>
322
<td class="md" valign="top"> ) </td>
323
<td class="md" nowrap><code> [pure virtual]</code></td>
329
<table cellspacing="5" cellpadding="0" border="0">
337
Read data from the IO source. Reading starts at the current IO position and the position is advanced by the number of bytes read.
352
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#a54d2b91db8ac2073fbe438ef19ac055">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#7de679e4366d070dc6604db1d22275ce">Exiv2::MemIo</a>.
355
<a class="anchor" name="648bc0d9b1a79e34684375074d806534"></a><!-- doxytag: member="Exiv2::BasicIo::getb" ref="648bc0d9b1a79e34684375074d806534" args="()=0" -->
356
<div class="memitem">
357
<div class="memproto">
358
<table class="memname">
360
<td class="memname">virtual int Exiv2::BasicIo::getb </td>
362
<td class="paramname"> </td>
363
<td> ) </td>
364
<td width="100%"><code> [pure virtual]</code></td>
371
Read one byte from the IO source. Current IO position is advanced by one byte.
373
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The byte read from the IO source if successful;<br>
374
EOF if failure; </dd></dl>
377
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#0741ebecd2ea70f86c40457c33cd6c66">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#b5d5467941f00e4bb47a411182955d44">Exiv2::MemIo</a>.
380
<a class="anchor" name="cb964ff603c96da8711baddb66a385a4"></a><!-- doxytag: member="Exiv2::BasicIo::transfer" ref="cb964ff603c96da8711baddb66a385a4" args="(BasicIo &src)=0" -->
381
<div class="memitem">
382
<div class="memproto">
383
<table class="memname">
385
<td class="memname">virtual void Exiv2::BasicIo::transfer </td>
387
<td class="paramtype"><a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> & </td>
388
<td class="paramname"> <em>src</em> </td>
389
<td> ) </td>
390
<td width="100%"><code> [pure virtual]</code></td>
397
Remove all data from this object's IO source and then transfer data from the <em>src</em> <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> object into this object.
399
The source object is invalidated by this operation and should not be used after this method returns. This method exists primarily to be used with the <a class="el" href="classExiv2_1_1BasicIo.html#2c962d72689c040a04c18f9317b12497">BasicIo::temporary()</a> method.<p>
339
400
<dl compact><dt><b>Parameters:</b></dt><dd>
340
401
<table border="0" cellspacing="2" cellpadding="0">
341
<tr><td valign="top"></td><td valign="top"><em>rcount</em> </td><td>Maximum number of bytes to read. Fewer bytes may be read if <em>rcount</em> bytes are not available. </td></tr>
344
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="classExiv2_1_1DataBuf.html">DataBuf</a> instance containing the bytes read. Use the <a class="el" href="classExiv2_1_1DataBuf.html#5e6028d5cdae2e149749667cf66c3e91">DataBuf::size_</a> member to find the number of bytes read. <a class="el" href="classExiv2_1_1DataBuf.html#5e6028d5cdae2e149749667cf66c3e91">DataBuf::size_</a> will be 0 on failure. </dd></dl>
402
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Reference to another <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> instance. The entire contents of src are transferred to this object. The <em>src</em> object is invalidated by the method. </td></tr>
405
<dl compact><dt><b>Exceptions:</b></dt><dd>
406
<table border="0" cellspacing="2" cellpadding="0">
407
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classExiv2_1_1Error.html">Error</a></em> </td><td>In case of failure </td></tr>
347
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#5c7364fbbdc740ec0736da33ad9a82f0">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#b5b0239fe9df1d515e581d318ccceb7c">Exiv2::MemIo</a>. </td>
350
<a class="anchor" name="561221bbe1d215b4d6b5ceceaa2e9a97"></a><!-- doxytag: member="Exiv2::BasicIo::seek" ref="561221bbe1d215b4d6b5ceceaa2e9a97" args="(long offset, Position pos)=0" --><p>
351
<table class="mdTable" cellpadding="2" cellspacing="0">
354
<table cellpadding="0" cellspacing="0" border="0">
356
<td class="md" nowrap valign="top">virtual int Exiv2::BasicIo::seek </td>
357
<td class="md" valign="top">( </td>
358
<td class="md" nowrap valign="top">long </td>
359
<td class="mdname" nowrap> <em>offset</em>, </td>
362
<td class="md" nowrap align="right"></td>
364
<td class="md" nowrap><a class="el" href="classExiv2_1_1BasicIo.html#1d23c3bf7618f2ee6ebb5cf033b10911">Position</a> </td>
365
<td class="mdname" nowrap> <em>pos</em></td>
369
<td class="md">) </td>
370
<td class="md" colspan="2"><code> [pure virtual]</code></td>
412
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#a860f63e95d227be73b86b2fe64ad7b8">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#223908a596491d75cebbb7a6f9c1559f">Exiv2::MemIo</a>.
415
<a class="anchor" name="561221bbe1d215b4d6b5ceceaa2e9a97"></a><!-- doxytag: member="Exiv2::BasicIo::seek" ref="561221bbe1d215b4d6b5ceceaa2e9a97" args="(long offset, Position pos)=0" -->
416
<div class="memitem">
417
<div class="memproto">
418
<table class="memname">
420
<td class="memname">virtual int Exiv2::BasicIo::seek </td>
422
<td class="paramtype">long </td>
423
<td class="paramname"> <em>offset</em>, </td>
426
<td class="paramkey"></td>
428
<td class="paramtype"><a class="el" href="classExiv2_1_1BasicIo.html#1d23c3bf7618f2ee6ebb5cf033b10911">Position</a> </td>
429
<td class="paramname"> <em>pos</em></td><td> </td>
434
<td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
376
<table cellspacing="5" cellpadding="0" border="0">
384
441
Move the current IO position.
389
446
<tr><td valign="top"></td><td valign="top"><em>pos</em> </td><td>Position from which the seek should start </td></tr>
392
<dl compact><dt><b>Returns:</b></dt><dd>0 if successful;<br>
449
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if successful;<br>
393
450
Nonzero if failure; </dd></dl>
397
<a class="anchor" name="01903a1a2310197eb7e3fd41bedc3054"></a><!-- doxytag: member="Exiv2::BasicIo::size" ref="01903a1a2310197eb7e3fd41bedc3054" args="() const =0" --><p>
398
<table class="mdTable" cellpadding="2" cellspacing="0">
401
<table cellpadding="0" cellspacing="0" border="0">
403
<td class="md" nowrap valign="top">virtual long Exiv2::BasicIo::size </td>
404
<td class="md" valign="top">( </td>
405
<td class="mdname1" valign="top" nowrap> </td>
406
<td class="md" valign="top"> ) </td>
407
<td class="md" nowrap> const<code> [pure virtual]</code></td>
413
<table cellspacing="5" cellpadding="0" border="0">
453
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#889840bb9764987ce7a13c10d3ddcf2e">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#b4a12d5b5ed6f8447c7167942c4aa4ae">Exiv2::MemIo</a>.
456
<a class="anchor" name="56dedc1898b73b376280fc9c9d656d9b"></a><!-- doxytag: member="Exiv2::BasicIo::mmap" ref="56dedc1898b73b376280fc9c9d656d9b" args="()=0" -->
457
<div class="memitem">
458
<div class="memproto">
459
<table class="memname">
461
<td class="memname">virtual const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a>* Exiv2::BasicIo::mmap </td>
463
<td class="paramname"> </td>
464
<td> ) </td>
465
<td width="100%"><code> [pure virtual]</code></td>
472
Direct access to the IO data. For files, this is done by mapping the file into the process's address space; for memory blocks, this allows direct access to the memory block.
474
Todo: This is currently only for read access.
476
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#262356ec3c52ccdba2862b289f8e5e37">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#b3e20f77251ba80e65cd6e6ac93efd76">Exiv2::MemIo</a>.
479
<a class="anchor" name="7b30c5ec54f00bc2420f1e5482f4b5e2"></a><!-- doxytag: member="Exiv2::BasicIo::tell" ref="7b30c5ec54f00bc2420f1e5482f4b5e2" args="() const=0" -->
480
<div class="memitem">
481
<div class="memproto">
482
<table class="memname">
484
<td class="memname">virtual long Exiv2::BasicIo::tell </td>
486
<td class="paramname"> </td>
487
<td> ) </td>
488
<td width="100%"> const<code> [pure virtual]</code></td>
495
Get the current IO position.
497
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Offset from the start of IO if successful;<br>
498
-1 if failure; </dd></dl>
501
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#3eae8ca1955b5e9c9e70e116b5af98df">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#b3a522e04b23cc17c2aadf126d4d222b">Exiv2::MemIo</a>.
504
<a class="anchor" name="b30518eef26c1bbe29077ed804a39ee6"></a><!-- doxytag: member="Exiv2::BasicIo::size" ref="b30518eef26c1bbe29077ed804a39ee6" args="() const=0" -->
505
<div class="memitem">
506
<div class="memproto">
507
<table class="memname">
509
<td class="memname">virtual long Exiv2::BasicIo::size </td>
511
<td class="paramname"> </td>
512
<td> ) </td>
513
<td width="100%"> const<code> [pure virtual]</code></td>
421
520
Get the current size of the IO source in bytes.
423
<dl compact><dt><b>Returns:</b></dt><dd>Size of the IO source in bytes;<br>
424
-1 if failure; </dd></dl>
427
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#661e30ac842bbbeedef11aa9e1454f6d">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#4cba82129b173367e5e987125d2a1635">Exiv2::MemIo</a>. </td>
430
<a class="anchor" name="eb9673a48a7af7376b7018998fb552e6"></a><!-- doxytag: member="Exiv2::BasicIo::tell" ref="eb9673a48a7af7376b7018998fb552e6" args="() const =0" --><p>
431
<table class="mdTable" cellpadding="2" cellspacing="0">
434
<table cellpadding="0" cellspacing="0" border="0">
436
<td class="md" nowrap valign="top">virtual long Exiv2::BasicIo::tell </td>
437
<td class="md" valign="top">( </td>
438
<td class="mdname1" valign="top" nowrap> </td>
439
<td class="md" valign="top"> ) </td>
440
<td class="md" nowrap> const<code> [pure virtual]</code></td>
446
<table cellspacing="5" cellpadding="0" border="0">
454
Get the current IO position.
456
<dl compact><dt><b>Returns:</b></dt><dd>Offset from the start of IO if successful;<br>
457
-1 if failure; </dd></dl>
460
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#bf285ea310f0c53d3107de6ba6e518db">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#832a61a8b49b570024068efb54d08955">Exiv2::MemIo</a>. </td>
463
<a class="anchor" name="ec9dd2dd223ce57650462c74a0770502"></a><!-- doxytag: member="Exiv2::BasicIo::temporary" ref="ec9dd2dd223ce57650462c74a0770502" args="() const =0" --><p>
464
<table class="mdTable" cellpadding="2" cellspacing="0">
467
<table cellpadding="0" cellspacing="0" border="0">
469
<td class="md" nowrap valign="top">virtual <a class="el" href="classExiv2_1_1BasicIo.html#f8f989522925b884d8c9d3a257265fa1">BasicIo::AutoPtr</a> Exiv2::BasicIo::temporary </td>
470
<td class="md" valign="top">( </td>
471
<td class="mdname1" valign="top" nowrap> </td>
472
<td class="md" valign="top"> ) </td>
473
<td class="md" nowrap> const<code> [pure virtual]</code></td>
479
<table cellspacing="5" cellpadding="0" border="0">
522
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Size of the IO source in bytes;<br>
523
-1 if failure; </dd></dl>
526
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#7f1b30a20c4478007079d4291872359b">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#b13e91650bd961bb7938290ffe100ec2">Exiv2::MemIo</a>.
529
<a class="anchor" name="2c962d72689c040a04c18f9317b12497"></a><!-- doxytag: member="Exiv2::BasicIo::temporary" ref="2c962d72689c040a04c18f9317b12497" args="() const=0" -->
530
<div class="memitem">
531
<div class="memproto">
532
<table class="memname">
534
<td class="memname">virtual <a class="el" href="classExiv2_1_1BasicIo.html#f8f989522925b884d8c9d3a257265fa1">BasicIo::AutoPtr</a> Exiv2::BasicIo::temporary </td>
536
<td class="paramname"> </td>
537
<td> ) </td>
538
<td width="100%"> const<code> [pure virtual]</code></td>
487
545
Returns a temporary data storage location. This is often needed to rewrite an IO source.
489
547
For example, data may be read from the original IO source, modified in some way, and then saved to the temporary instance. After the operation is complete, the <a class="el" href="classExiv2_1_1BasicIo.html#cb964ff603c96da8711baddb66a385a4">BasicIo::transfer</a> method can be used to replace the original IO source with the modified version. Subclasses are free to return any class that derives from <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a>.<p>
490
<dl compact><dt><b>Returns:</b></dt><dd>An instance of <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> on success </dd></dl>
491
<dl compact><dt><b>Exceptions:</b></dt><dd>
492
<table border="0" cellspacing="2" cellpadding="0">
493
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classExiv2_1_1Error.html">Error</a></em> </td><td>In case of failure </td></tr>
498
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#ffc1034970489c7734cfefed90b4d8d1">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#c3d6031a13b8a7eae6959178bb1301a0">Exiv2::MemIo</a>. </td>
501
<a class="anchor" name="cb964ff603c96da8711baddb66a385a4"></a><!-- doxytag: member="Exiv2::BasicIo::transfer" ref="cb964ff603c96da8711baddb66a385a4" args="(BasicIo &src)=0" --><p>
502
<table class="mdTable" cellpadding="2" cellspacing="0">
505
<table cellpadding="0" cellspacing="0" border="0">
507
<td class="md" nowrap valign="top">virtual void Exiv2::BasicIo::transfer </td>
508
<td class="md" valign="top">( </td>
509
<td class="md" nowrap valign="top"><a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> & </td>
510
<td class="mdname1" valign="top" nowrap> <em>src</em> </td>
511
<td class="md" valign="top"> ) </td>
512
<td class="md" nowrap><code> [pure virtual]</code></td>
518
<table cellspacing="5" cellpadding="0" border="0">
526
Remove all data from this object's IO source and then transfer data from the <em>src</em> <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> object into this object.
528
The source object is invalidated by this operation and should not be used after this method returns. This method exists primarily to be used with the <a class="el" href="classExiv2_1_1BasicIo.html#ec9dd2dd223ce57650462c74a0770502">BasicIo::temporary()</a> method.<p>
529
<dl compact><dt><b>Parameters:</b></dt><dd>
530
<table border="0" cellspacing="2" cellpadding="0">
531
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Reference to another <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> instance. The entire contents of src are transferred to this object. The <em>src</em> object is invalidated by the method. </td></tr>
534
<dl compact><dt><b>Exceptions:</b></dt><dd>
535
<table border="0" cellspacing="2" cellpadding="0">
536
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classExiv2_1_1Error.html">Error</a></em> </td><td>In case of failure </td></tr>
541
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#7820fe3bdac99ff4a78dccccba1eed10">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#c0c261a78dfeb097eacb51d14552389c">Exiv2::MemIo</a>. </td>
544
<a class="anchor" name="31334606e230bbe94d6b8768d3c6d75f"></a><!-- doxytag: member="Exiv2::BasicIo::write" ref="31334606e230bbe94d6b8768d3c6d75f" args="(BasicIo &src)=0" --><p>
545
<table class="mdTable" cellpadding="2" cellspacing="0">
548
<table cellpadding="0" cellspacing="0" border="0">
550
<td class="md" nowrap valign="top">virtual long Exiv2::BasicIo::write </td>
551
<td class="md" valign="top">( </td>
552
<td class="md" nowrap valign="top"><a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> & </td>
553
<td class="mdname1" valign="top" nowrap> <em>src</em> </td>
554
<td class="md" valign="top"> ) </td>
555
<td class="md" nowrap><code> [pure virtual]</code></td>
561
<table cellspacing="5" cellpadding="0" border="0">
569
Write data that is read from another <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> instance to the IO source. Current IO position is advanced by the number of bytes written.
571
<dl compact><dt><b>Parameters:</b></dt><dd>
572
<table border="0" cellspacing="2" cellpadding="0">
573
<tr><td valign="top"></td><td valign="top"><em>src</em> </td><td>Reference to another <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> instance. Reading start at the source's current IO position </td></tr>
576
<dl compact><dt><b>Returns:</b></dt><dd>Number of bytes written to IO source successfully;<br>
577
0 if failure; </dd></dl>
580
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#d388515b87717088238dca8d71e75470">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#0d22943b9f0f0cc399bd7616dd7dd695">Exiv2::MemIo</a>. </td>
583
<a class="anchor" name="c548d52ef633ac425bd01d17ccd2e7e4"></a><!-- doxytag: member="Exiv2::BasicIo::write" ref="c548d52ef633ac425bd01d17ccd2e7e4" args="(const byte *data, long wcount)=0" --><p>
584
<table class="mdTable" cellpadding="2" cellspacing="0">
587
<table cellpadding="0" cellspacing="0" border="0">
589
<td class="md" nowrap valign="top">virtual long Exiv2::BasicIo::write </td>
590
<td class="md" valign="top">( </td>
591
<td class="md" nowrap valign="top">const <a class="el" href="namespaceExiv2.html#16f60a5bd4207fe155f6cf93a15efa72">byte</a> * </td>
592
<td class="mdname" nowrap> <em>data</em>, </td>
595
<td class="md" nowrap align="right"></td>
597
<td class="md" nowrap>long </td>
598
<td class="mdname" nowrap> <em>wcount</em></td>
602
<td class="md">) </td>
603
<td class="md" colspan="2"><code> [pure virtual]</code></td>
609
<table cellspacing="5" cellpadding="0" border="0">
617
Write data to the IO source. Current IO position is advanced by the number of bytes written.
619
<dl compact><dt><b>Parameters:</b></dt><dd>
620
<table border="0" cellspacing="2" cellpadding="0">
621
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>Pointer to data. Data must be at least <em>wcount</em> bytes long </td></tr>
622
<tr><td valign="top"></td><td valign="top"><em>wcount</em> </td><td>Number of bytes to be written. </td></tr>
625
<dl compact><dt><b>Returns:</b></dt><dd>Number of bytes written to IO source successfully;<br>
626
0 if failure; </dd></dl>
629
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#5b3d5f5a5b4b7f9d3d8cec46a4ad95f7">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#b34c91ef04dd9b8f5faf51d380aa55b9">Exiv2::MemIo</a>. </td>
548
<dl class="return" compact><dt><b>Returns:</b></dt><dd>An instance of <a class="el" href="classExiv2_1_1BasicIo.html">BasicIo</a> on success </dd></dl>
549
<dl compact><dt><b>Exceptions:</b></dt><dd>
550
<table border="0" cellspacing="2" cellpadding="0">
551
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="classExiv2_1_1Error.html">Error</a></em> </td><td>In case of failure </td></tr>
556
Implemented in <a class="el" href="classExiv2_1_1FileIo.html#92ffc109765919436e59bf3031fb9483">Exiv2::FileIo</a>, and <a class="el" href="classExiv2_1_1MemIo.html#82a9fd278a45a7dd9f67a76d952ed1a8">Exiv2::MemIo</a>.
632
559
<hr>The documentation for this class was generated from the following file:<ul>
633
560
<li><a class="el" href="basicio_8hpp.html">basicio.hpp</a></ul>
634
<hr size="1"><address style="align: right;"><small>Generated on Fri Jun 2 23:54:45 2006 for Exiv2 by
561
<hr size="1"><address style="align: right;"><small>Generated on Mon Nov 27 20:16:24 2006 for Exiv2 by
635
562
<a href="http://www.doxygen.org/index.html">
636
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
563
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>