source: OGRE/trunk/ogrenew/Docs/api/html/OgreDataStream_8h-source.html @ 657

Revision 657, 19.6 KB checked in by mattausch, 18 years ago (diff)

added ogre dependencies and patched ogre sources

Line 
1<html>
2<head>
3<title>OgreDataStream.h Source File - OGRE Documentation</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
4<link type="text/css" rel="stylesheet" href="style.css">
5</head>
6
7<body>
8<!-- Generated by Doxygen 1.3.6 -->
9<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
10<h1>OgreDataStream.h</h1><a href="OgreDataStream_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
1100002 <span class="comment">-----------------------------------------------------------------------------</span>
1200003 <span class="comment">This source file is part of OGRE</span>
1300004 <span class="comment">(Object-oriented Graphics Rendering Engine)</span>
1400005 <span class="comment">For the latest info, see http://www.ogre3d.org/</span>
1500006 <span class="comment"></span>
1600007 <span class="comment">Copyright (c) 2000-2005 The OGRE Team</span>
1700008 <span class="comment">Also see acknowledgements in Readme.html</span>
1800009 <span class="comment"></span>
1900010 <span class="comment">This program is free software; you can redistribute it and/or modify it under</span>
2000011 <span class="comment">the terms of the GNU Lesser General Public License as published by the Free Software</span>
2100012 <span class="comment">Foundation; either version 2 of the License, or (at your option) any later</span>
2200013 <span class="comment">version.</span>
2300014 <span class="comment"></span>
2400015 <span class="comment">This program is distributed in the hope that it will be useful, but WITHOUT</span>
2500016 <span class="comment">ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span>
2600017 <span class="comment">FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</span>
2700018 <span class="comment"></span>
2800019 <span class="comment">You should have received a copy of the GNU Lesser General Public License along with</span>
2900020 <span class="comment">this program; if not, write to the Free Software Foundation, Inc., 59 Temple</span>
3000021 <span class="comment">Place - Suite 330, Boston, MA 02111-1307, USA, or go to</span>
3100022 <span class="comment">http://www.gnu.org/copyleft/lesser.txt.</span>
3200023 <span class="comment">-----------------------------------------------------------------------------</span>
3300024 <span class="comment">*/</span>
3400025 <span class="preprocessor">#ifndef __DataStream_H__</span>
3500026 <span class="preprocessor"></span><span class="preprocessor">#define __DataStream_H__</span>
3600027 <span class="preprocessor"></span>
3700028 <span class="preprocessor">#include "<a class="code" href="OgrePrerequisites_8h.html">OgrePrerequisites.h</a>"</span>
3800029 <span class="preprocessor">#include "<a class="code" href="OgreString_8h.html">OgreString.h</a>"</span>
3900030 <span class="preprocessor">#include "<a class="code" href="OgreSharedPtr_8h.html">OgreSharedPtr.h</a>"</span>
4000031 <span class="preprocessor">#include &lt;istream&gt;</span>
4100032
4200033 <span class="keyword">namespace </span>Ogre {
4300034
44<a name="l00054"></a><a class="code" href="classOgre_1_1DataStream.html">00054</a>     <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a16">_OgreExport</a> DataStream
4500055     {
4600056     <span class="keyword">protected</span>:
47<a name="l00058"></a><a class="code" href="classOgre_1_1DataStream.html#Ogre_1_1ZipDataStreamp2">00058</a>         <a class="code" href="namespaceOgre.html#a426">String</a> mName;       
48<a name="l00060"></a><a class="code" href="classOgre_1_1DataStream.html#Ogre_1_1ZipDataStreamp3">00060</a>         size_t mSize;
49<a name="l00061"></a><a class="code" href="OgreDataStream_8h.html#a0">00061</a> <span class="preprocessor">        #define OGRE_STREAM_TEMP_SIZE 128</span>
5000062 <span class="preprocessor"></span>
51<a name="l00063"></a><a class="code" href="classOgre_1_1DataStream.html#Ogre_1_1ZipDataStreamp4">00063</a>         <span class="keywordtype">char</span> mTmpArea[<a class="code" href="OgreDataStream_8h.html#a0">OGRE_STREAM_TEMP_SIZE</a>];
5200064     <span class="keyword">public</span>:
53<a name="l00066"></a><a class="code" href="classOgre_1_1DataStream.html#Ogre_1_1DataStreama0">00066</a>         DataStream() : mSize(0) {}
54<a name="l00068"></a><a class="code" href="classOgre_1_1DataStream.html#Ogre_1_1DataStreama1">00068</a>         DataStream(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name) : mName(name), mSize(0) {}
55<a name="l00070"></a><a class="code" href="classOgre_1_1DataStream.html#Ogre_1_1ZipDataStreama11">00070</a>         <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; getName(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> mName; }
56<a name="l00071"></a><a class="code" href="classOgre_1_1DataStream.html#Ogre_1_1DataStreama3">00071</a>         <span class="keyword">virtual</span> ~DataStream() {}
5700072         <span class="comment">// Streaming operators</span>
5800073         <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; DataStream&amp; operator&gt;&gt;(T&amp; val);
5900080         <span class="keyword">virtual</span> size_t read(<span class="keywordtype">void</span>* buf, size_t count) = 0;
6000092         <span class="keyword">virtual</span> size_t readLine(<span class="keywordtype">char</span>* buf, size_t maxCount, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; delim = <span class="stringliteral">"\n"</span>) = 0;
6100093         
6200105         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a426">String</a> getLine( <span class="keywordtype">bool</span> trimAfter = <span class="keyword">true</span> );
6300106
6400112         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a426">String</a> getAsString(<span class="keywordtype">void</span>);
6500113
6600118         <span class="keyword">virtual</span> size_t skipLine(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; delim = <span class="stringliteral">"\n"</span>) = 0;
6700119
6800122         <span class="keyword">virtual</span> <span class="keywordtype">void</span> skip(<span class="keywordtype">long</span> count) = 0;
6900123     
7000126         <span class="keyword">virtual</span> <span class="keywordtype">void</span> seek( size_t pos ) = 0;
7100127         
7200129         <span class="keyword">virtual</span> size_t tell(<span class="keywordtype">void</span>) <span class="keyword">const</span> = 0;
7300130
7400133         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> eof(<span class="keywordtype">void</span>) <span class="keyword">const</span> = 0;
7500134
76<a name="l00138"></a><a class="code" href="classOgre_1_1DataStream.html#Ogre_1_1ZipDataStreama15">00138</a>         size_t size(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mSize; }
7700139
7800141         <span class="keyword">virtual</span> <span class="keywordtype">void</span> close(<span class="keywordtype">void</span>) = 0;
7900142         
8000143
8100144     };
8200145
83<a name="l00149"></a><a class="code" href="namespaceOgre.html#a117">00149</a>     <span class="keyword">typedef</span> <a class="code" href="classOgre_1_1SharedPtr.html">SharedPtr&lt;DataStream&gt;</a> <a class="code" href="classOgre_1_1SharedPtr.html">DataStreamPtr</a>;
8400150
85<a name="l00152"></a><a class="code" href="namespaceOgre.html#a118">00152</a>     <span class="keyword">typedef</span> std::list&lt;DataStreamPtr&gt; <a class="code" href="namespaceOgre.html#a118">DataStreamList</a>;
86<a name="l00154"></a><a class="code" href="namespaceOgre.html#a119">00154</a>     <span class="keyword">typedef</span> <a class="code" href="classOgre_1_1SharedPtr.html">SharedPtr&lt;DataStreamList&gt;</a> <a class="code" href="classOgre_1_1SharedPtr.html">DataStreamListPtr</a>;
8700155
88<a name="l00158"></a><a class="code" href="classOgre_1_1MemoryDataStream.html">00158</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> MemoryDataStream : <span class="keyword">public</span> DataStream
8900159     {
9000160     <span class="keyword">protected</span>:
91<a name="l00162"></a><a class="code" href="classOgre_1_1MemoryDataStream.html#Ogre_1_1MemoryDataStreamp0">00162</a>         <a class="code" href="namespaceOgre.html#a421">uchar</a>* mData;
92<a name="l00164"></a><a class="code" href="classOgre_1_1MemoryDataStream.html#Ogre_1_1MemoryDataStreamp1">00164</a>         <a class="code" href="namespaceOgre.html#a421">uchar</a>* mPos;
93<a name="l00166"></a><a class="code" href="classOgre_1_1MemoryDataStream.html#Ogre_1_1MemoryDataStreamp2">00166</a>         <a class="code" href="namespaceOgre.html#a421">uchar</a>* mEnd;
94<a name="l00168"></a><a class="code" href="classOgre_1_1MemoryDataStream.html#Ogre_1_1MemoryDataStreamp3">00168</a>         <span class="keywordtype">bool</span> mFreeOnClose;         
9500169     <span class="keyword">public</span>:
9600170         
9700177         MemoryDataStream(<span class="keywordtype">void</span>* pMem, size_t size, <span class="keywordtype">bool</span> freeOnClose = <span class="keyword">false</span>);
9800178         
9900186         MemoryDataStream(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <span class="keywordtype">void</span>* pMem, size_t size,
10000187                 <span class="keywordtype">bool</span> freeOnClose = <span class="keyword">false</span>);
10100188
10200199         MemoryDataStream(DataStream&amp; sourceStream,
10300200                 <span class="keywordtype">bool</span> freeOnClose = <span class="keyword">true</span>);
10400201         
10500212         MemoryDataStream(<a class="code" href="classOgre_1_1SharedPtr.html">DataStreamPtr</a>&amp; sourceStream,
10600213                 <span class="keywordtype">bool</span> freeOnClose = <span class="keyword">true</span>);
10700214
10800227         MemoryDataStream(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, DataStream&amp; sourceStream,
10900228                 <span class="keywordtype">bool</span> freeOnClose = <span class="keyword">true</span>);
11000229
11100242         MemoryDataStream(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <span class="keyword">const</span> <a class="code" href="classOgre_1_1SharedPtr.html">DataStreamPtr</a>&amp; sourceStream,
11200243             <span class="keywordtype">bool</span> freeOnClose = <span class="keyword">true</span>);
11300244
11400250         MemoryDataStream(size_t size, <span class="keywordtype">bool</span> freeOnClose = <span class="keyword">true</span>);
11500257         MemoryDataStream(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, size_t size,
11600258                 <span class="keywordtype">bool</span> freeOnClose = <span class="keyword">true</span>);
11700259
11800260         ~MemoryDataStream();
11900261
120<a name="l00263"></a><a class="code" href="classOgre_1_1MemoryDataStream.html#Ogre_1_1MemoryDataStreama9">00263</a>         <a class="code" href="namespaceOgre.html#a421">uchar</a>* getPtr(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> mData; }
12100264         
122<a name="l00266"></a><a class="code" href="classOgre_1_1MemoryDataStream.html#Ogre_1_1MemoryDataStreama10">00266</a>         <a class="code" href="namespaceOgre.html#a421">uchar</a>* getCurrentPtr(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> mPos; }
12300267         
12400270         size_t read(<span class="keywordtype">void</span>* buf, size_t count);
12500273         size_t readLine(<span class="keywordtype">char</span>* buf, size_t maxCount, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; delim = <span class="stringliteral">"\n"</span>);
12600274         
12700277         size_t skipLine(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; delim = <span class="stringliteral">"\n"</span>);
12800278
12900281         <span class="keywordtype">void</span> skip(<span class="keywordtype">long</span> count);
13000282     
13100285         <span class="keywordtype">void</span> seek( size_t pos );
13200286         
13300289         size_t tell(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
13400290
13500293         <span class="keywordtype">bool</span> eof(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
13600294
13700297         <span class="keywordtype">void</span> close(<span class="keywordtype">void</span>);
13800298
139<a name="l00300"></a><a class="code" href="classOgre_1_1MemoryDataStream.html#Ogre_1_1MemoryDataStreama19">00300</a>         <span class="keywordtype">void</span> setFreeOnClose(<span class="keywordtype">bool</span> free) { mFreeOnClose = free; }
14000301     };
14100302
142<a name="l00306"></a><a class="code" href="namespaceOgre.html#a120">00306</a>     <span class="keyword">typedef</span> <a class="code" href="classOgre_1_1SharedPtr.html">SharedPtr&lt;MemoryDataStream&gt;</a> <a class="code" href="classOgre_1_1SharedPtr.html">MemoryDataStreamPtr</a>;
14300307
144<a name="l00311"></a><a class="code" href="classOgre_1_1FileStreamDataStream.html">00311</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> FileStreamDataStream : <span class="keyword">public</span> DataStream
14500312     {
14600313     <span class="keyword">protected</span>:
147<a name="l00315"></a><a class="code" href="classOgre_1_1FileStreamDataStream.html#Ogre_1_1FileStreamDataStreamp0">00315</a>         std::ifstream* mpStream;
148<a name="l00316"></a><a class="code" href="classOgre_1_1FileStreamDataStream.html#Ogre_1_1FileStreamDataStreamp1">00316</a>         <span class="keywordtype">bool</span> mFreeOnClose;         
14900317     <span class="keyword">public</span>:
15000323         FileStreamDataStream(std::ifstream* s,
15100324             <span class="keywordtype">bool</span> freeOnClose = <span class="keyword">true</span>);
15200331         FileStreamDataStream(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name,
15300332             std::ifstream* s,
15400333             <span class="keywordtype">bool</span> freeOnClose = <span class="keyword">true</span>);
15500334
15600347         FileStreamDataStream(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name,
15700348             std::ifstream* s,
15800349             size_t size,
15900350             <span class="keywordtype">bool</span> freeOnClose = <span class="keyword">true</span>);
16000351
16100352         ~FileStreamDataStream();
16200353
16300356         size_t read(<span class="keywordtype">void</span>* buf, size_t count);
16400359         size_t readLine(<span class="keywordtype">char</span>* buf, size_t maxCount, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; delim = <span class="stringliteral">"\n"</span>);
16500360         
16600363         size_t skipLine(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; delim = <span class="stringliteral">"\n"</span>);
16700364
16800367         <span class="keywordtype">void</span> skip(<span class="keywordtype">long</span> count);
16900368     
17000371         <span class="keywordtype">void</span> seek( size_t pos );
17100372
17200375         size_t tell(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
17300376
17400379         <span class="keywordtype">bool</span> eof(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
17500380
17600383         <span class="keywordtype">void</span> close(<span class="keywordtype">void</span>);
17700384         
17800385         
17900386     };
18000387
181<a name="l00397"></a><a class="code" href="classOgre_1_1FileHandleDataStream.html">00397</a>     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> FileHandleDataStream : <span class="keyword">public</span> DataStream
18200398     {
18300399     <span class="keyword">protected</span>:
184<a name="l00400"></a><a class="code" href="classOgre_1_1FileHandleDataStream.html#Ogre_1_1FileHandleDataStreamp0">00400</a>         FILE* mFileHandle;
18500401     <span class="keyword">public</span>:
18600403         FileHandleDataStream(FILE* handle);
18700405         FileHandleDataStream(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, FILE* handle);
18800406         ~FileHandleDataStream();
18900407
19000410         size_t read(<span class="keywordtype">void</span>* buf, size_t count);
19100413         size_t readLine(<span class="keywordtype">char</span>* buf, size_t maxCount, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; delim = <span class="stringliteral">"\n"</span>);
19200414         
19300417         size_t skipLine(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; delim = <span class="stringliteral">"\n"</span>);
19400418
19500421         <span class="keywordtype">void</span> skip(<span class="keywordtype">long</span> count);
19600422     
19700425         <span class="keywordtype">void</span> seek( size_t pos );
19800426
19900429         size_t tell(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
20000430
20100433         <span class="keywordtype">bool</span> eof(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
20200434
20300437         <span class="keywordtype">void</span> close(<span class="keywordtype">void</span>);
20400438
20500439     };
20600440 }
20700441 <span class="preprocessor">#endif</span>
20800442 <span class="preprocessor"></span>
209</pre></div><hr>
210<p>
211Copyright &copy; 2000-2005 by The OGRE Team<br />
212<!--Creative Commons License--><a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/"><img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights20.png"/></a><br/>
213This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License</a>.<br/>
214                <!--/Creative Commons License--><!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
215                <Work rdf:about="">
216                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
217        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
218                </Work>
219                <License rdf:about="http://creativecommons.org/licenses/by-sa/2.5/"><permits rdf:resource="http://web.resource.org/cc/Reproduction"/><permits rdf:resource="http://web.resource.org/cc/Distribution"/><requires rdf:resource="http://web.resource.org/cc/Notice"/><requires rdf:resource="http://web.resource.org/cc/Attribution"/><permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/><requires rdf:resource="http://web.resource.org/cc/ShareAlike"/></License></rdf:RDF> -->
220
221Last modified Sun Feb 12 12:59:44 2006
222</p>
223</body>
224</html>
Note: See TracBrowser for help on using the repository browser.