<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>RVNGStream.h Source File documentation</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.8.5 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> $(document).ready(function(){initNavTree('RVNGStream_8h_source.html','');}); </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <div class="title">RVNGStream.h</div> </div> </div><!--header--> <div class="contents"> <a href="RVNGStream_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">/* librevenge</span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * Version: MPL 2.0 / LGPLv2.1+</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> *</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * This Source Code Form is subject to the terms of the Mozilla Public</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * License, v. 2.0. If a copy of the MPL was not distributed with this</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * file, You can obtain one at http://mozilla.org/MPL/2.0/.</span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> *</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> * Major Contributor(s):</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * Copyright (C) 2004-2005 William Lachance (wrlach@gmail.com)</span></div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> *</span></div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * For minor contributions see the git repository.</span></div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> *</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * Alternatively, the contents of this file may be used under the terms</span></div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * of the GNU Lesser General Public License Version 2.1 or later</span></div> <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are</span></div> <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * applicable instead of those above.</span></div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> */</span></div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div> <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifndef RVNGSTREAM_H</span></div> <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"></span><span class="preprocessor">#define RVNGSTREAM_H</span></div> <div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span>librevenge</div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div> <div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11b"> 26</a></span> <span class="keyword">enum</span> <a class="code" href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11b">RVNG_SEEK_TYPE</a></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> {</div> <div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11ba79727f200c7fe19ee3a0c926e420e92c"> 28</a></span>  <a class="code" href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11ba79727f200c7fe19ee3a0c926e420e92c">RVNG_SEEK_CUR</a>,</div> <div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11ba92a41ebdc3bdbaf25ba9520e2f4ee2f5"> 29</a></span>  <a class="code" href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11ba92a41ebdc3bdbaf25ba9520e2f4ee2f5">RVNG_SEEK_SET</a>,</div> <div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11ba6ddcd1015b92e6446765b056ad12b89f"> 30</a></span>  <a class="code" href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11ba6ddcd1015b92e6446765b056ad12b89f">RVNG_SEEK_END</a></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> };</div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div> <div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="classlibrevenge_1_1RVNGInputStream.html"> 33</a></span> <span class="keyword">class </span><a class="code" href="classlibrevenge_1_1RVNGInputStream.html">RVNGInputStream</a></div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> {</div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classlibrevenge_1_1RVNGInputStream.html#afb27803c5d387e91e21b516a78f7feb8"> 36</a></span>  <a class="code" href="classlibrevenge_1_1RVNGInputStream.html#afb27803c5d387e91e21b516a78f7feb8">RVNGInputStream</a>() {}</div> <div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classlibrevenge_1_1RVNGInputStream.html#a1ef1f6cbc072fe8b1c350d8dcedd0220"> 37</a></span>  <span class="keyword">virtual</span> <a class="code" href="classlibrevenge_1_1RVNGInputStream.html#a1ef1f6cbc072fe8b1c350d8dcedd0220">~RVNGInputStream</a>() {}</div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classlibrevenge_1_1RVNGInputStream.html#a72f575b86a6659b5161e5752e93effe8">isStructured</a>() = 0;</div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="classlibrevenge_1_1RVNGInputStream.html#a325ad7693d383e59d16e6c1664f86fd9">subStreamCount</a>() = 0;</div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classlibrevenge_1_1RVNGInputStream.html#a3b230cb3c1047d6a5c496d3d10b89759">subStreamName</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>) = 0;</div> <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div> <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classlibrevenge_1_1RVNGInputStream.html#a5ac78bf9981a9d088793d1c1ecbd602e">existsSubStream</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name) = 0;</div> <div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div> <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">virtual</span> <a class="code" href="classlibrevenge_1_1RVNGInputStream.html">RVNGInputStream</a> *<a class="code" href="classlibrevenge_1_1RVNGInputStream.html#a3b87007012f97630c79c2dfe8a4137d6">getSubStreamByName</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name) = 0;</div> <div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div> <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">virtual</span> <a class="code" href="classlibrevenge_1_1RVNGInputStream.html">RVNGInputStream</a> *<a class="code" href="classlibrevenge_1_1RVNGInputStream.html#a81ef7a9c798ff8ea202afff387821908">getSubStreamById</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">id</span>) = 0;</div> <div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div> <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="classlibrevenge_1_1RVNGInputStream.html#a0f37667a80a156dae4d1a0d67f7a84b7">read</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> numBytes, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> &numBytesRead) = 0;</div> <div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div> <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classlibrevenge_1_1RVNGInputStream.html#a4571fd079c4646f6ed4ca88c5f94c8b2">seek</a>(<span class="keywordtype">long</span> <a class="code" href="RVNGZipStream_8cpp.html#a168f35d517cfce69f73ba48cfb43dbe4">offset</a>, <a class="code" href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11b">RVNG_SEEK_TYPE</a> seekType) = 0;</div> <div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div> <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classlibrevenge_1_1RVNGInputStream.html#a5b3364f9a28cf84d489e791333476723">tell</a>() = 0;</div> <div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div> <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classlibrevenge_1_1RVNGInputStream.html#aae8ddca8e84c15f975c8a7ab2f12ef11">isEnd</a>() = 0;</div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> };</div> <div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div> <div class="line"><a name="l00097"></a><span class="lineno"> 97</span> }</div> <div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div> <div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"></span><span class="comment">/* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */</span></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html_afb27803c5d387e91e21b516a78f7feb8"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html#afb27803c5d387e91e21b516a78f7feb8">librevenge::RVNGInputStream::RVNGInputStream</a></div><div class="ttdeci">RVNGInputStream()</div><div class="ttdef"><b>Definition:</b> RVNGStream.h:36</div></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html_a4571fd079c4646f6ed4ca88c5f94c8b2"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html#a4571fd079c4646f6ed4ca88c5f94c8b2">librevenge::RVNGInputStream::seek</a></div><div class="ttdeci">virtual int seek(long offset, RVNG_SEEK_TYPE seekType)=0</div><div class="ttdoc">Moves to the next location inside the input stream. </div></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html_a0f37667a80a156dae4d1a0d67f7a84b7"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html#a0f37667a80a156dae4d1a0d67f7a84b7">librevenge::RVNGInputStream::read</a></div><div class="ttdeci">virtual const unsigned char * read(unsigned long numBytes, unsigned long &numBytesRead)=0</div><div class="ttdoc">Tries to read a given number of bytes starting from the current position inside the input stream...</div></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html_a3b87007012f97630c79c2dfe8a4137d6"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html#a3b87007012f97630c79c2dfe8a4137d6">librevenge::RVNGInputStream::getSubStreamByName</a></div><div class="ttdeci">virtual RVNGInputStream * getSubStreamByName(const char *name)=0</div><div class="ttdoc">Extracts a named stream from an OLE2 storage. </div></div> <div class="ttc" id="namespacelibrevenge_html_af49cc92032bbbbf6baf6325f6ef2a11ba92a41ebdc3bdbaf25ba9520e2f4ee2f5"><div class="ttname"><a href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11ba92a41ebdc3bdbaf25ba9520e2f4ee2f5">librevenge::RVNG_SEEK_SET</a></div><div class="ttdef"><b>Definition:</b> RVNGStream.h:29</div></div> <div class="ttc" id="RVNGZipStream_8cpp_html_a168f35d517cfce69f73ba48cfb43dbe4"><div class="ttname"><a href="RVNGZipStream_8cpp.html#a168f35d517cfce69f73ba48cfb43dbe4">offset</a></div><div class="ttdeci">unsigned offset</div><div class="ttdef"><b>Definition:</b> RVNGZipStream.cpp:74</div></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html_a72f575b86a6659b5161e5752e93effe8"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html#a72f575b86a6659b5161e5752e93effe8">librevenge::RVNGInputStream::isStructured</a></div><div class="ttdeci">virtual bool isStructured()=0</div><div class="ttdoc">Analyses the content of the input stream to see whether it is an OLE2 storage. </div></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html_a81ef7a9c798ff8ea202afff387821908"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html#a81ef7a9c798ff8ea202afff387821908">librevenge::RVNGInputStream::getSubStreamById</a></div><div class="ttdeci">virtual RVNGInputStream * getSubStreamById(unsigned id)=0</div></div> <div class="ttc" id="namespacelibrevenge_html_af49cc92032bbbbf6baf6325f6ef2a11ba79727f200c7fe19ee3a0c926e420e92c"><div class="ttname"><a href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11ba79727f200c7fe19ee3a0c926e420e92c">librevenge::RVNG_SEEK_CUR</a></div><div class="ttdef"><b>Definition:</b> RVNGStream.h:28</div></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html_a3b230cb3c1047d6a5c496d3d10b89759"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html#a3b230cb3c1047d6a5c496d3d10b89759">librevenge::RVNGInputStream::subStreamName</a></div><div class="ttdeci">virtual const char * subStreamName(unsigned id)=0</div></div> <div class="ttc" id="namespacelibrevenge_html_af49cc92032bbbbf6baf6325f6ef2a11b"><div class="ttname"><a href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11b">librevenge::RVNG_SEEK_TYPE</a></div><div class="ttdeci">RVNG_SEEK_TYPE</div><div class="ttdef"><b>Definition:</b> RVNGStream.h:26</div></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html_aae8ddca8e84c15f975c8a7ab2f12ef11"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html#aae8ddca8e84c15f975c8a7ab2f12ef11">librevenge::RVNGInputStream::isEnd</a></div><div class="ttdeci">virtual bool isEnd()=0</div><div class="ttdoc">Determines whether the current position is at the end of the stream. </div></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html_a5b3364f9a28cf84d489e791333476723"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html#a5b3364f9a28cf84d489e791333476723">librevenge::RVNGInputStream::tell</a></div><div class="ttdeci">virtual long tell()=0</div><div class="ttdoc">Returns the actual position inside the input stream. </div></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html_a1ef1f6cbc072fe8b1c350d8dcedd0220"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html#a1ef1f6cbc072fe8b1c350d8dcedd0220">librevenge::RVNGInputStream::~RVNGInputStream</a></div><div class="ttdeci">virtual ~RVNGInputStream()</div><div class="ttdef"><b>Definition:</b> RVNGStream.h:37</div></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html">librevenge::RVNGInputStream</a></div><div class="ttdef"><b>Definition:</b> RVNGStream.h:33</div></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html_a325ad7693d383e59d16e6c1664f86fd9"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html#a325ad7693d383e59d16e6c1664f86fd9">librevenge::RVNGInputStream::subStreamCount</a></div><div class="ttdeci">virtual unsigned subStreamCount()=0</div></div> <div class="ttc" id="namespacelibrevenge_html_af49cc92032bbbbf6baf6325f6ef2a11ba6ddcd1015b92e6446765b056ad12b89f"><div class="ttname"><a href="namespacelibrevenge.html#af49cc92032bbbbf6baf6325f6ef2a11ba6ddcd1015b92e6446765b056ad12b89f">librevenge::RVNG_SEEK_END</a></div><div class="ttdef"><b>Definition:</b> RVNGStream.h:30</div></div> <div class="ttc" id="classlibrevenge_1_1RVNGInputStream_html_a5ac78bf9981a9d088793d1c1ecbd602e"><div class="ttname"><a href="classlibrevenge_1_1RVNGInputStream.html#a5ac78bf9981a9d088793d1c1ecbd602e">librevenge::RVNGInputStream::existsSubStream</a></div><div class="ttdeci">virtual bool existsSubStream(const char *name)=0</div></div> </div><!-- fragment --></div><!-- contents --> </div><!-- doc-content --> <hr size="1"><address style="align: right;"><small> Generated for librevenge by <a href="http://www.doxygen.org/index.html"> doxygen</a> 1.8.5</small></address> </body> </html>