Linux multi-monitor fullscreen support
[ryzomcore.git] / nel / tools / 3d / pipeline_max / storage_stream.h
blobe50a611d016ae0b8dbc0603acac2499a528fba2b
1 /**
2 * \file storage_stream.h
3 * \brief CStorageStream
4 * \date 2012-08-16 22:06GMT
5 * \author Jan Boon (Kaetemi)
6 * CStorageStream
7 */
9 /*
10 * Copyright (C) 2012 by authors
12 * This file is part of RYZOM CORE PIPELINE.
13 * RYZOM CORE PIPELINE is free software: you can redistribute it
14 * and/or modify it under the terms of the GNU Affero General Public
15 * License as published by the Free Software Foundation, either
16 * version 3 of the License, or (at your option) any later version.
18 * RYZOM CORE PIPELINE is distributed in the hope that it will be
19 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
20 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Affero General Public License for more details.
23 * You should have received a copy of the GNU Affero General Public
24 * License along with RYZOM CORE PIPELINE. If not, see
25 * <http://www.gnu.org/licenses/>.
28 #ifndef PIPELINE_STORAGE_STREAM_H
29 #define PIPELINE_STORAGE_STREAM_H
30 #include <nel/misc/types_nl.h>
32 // STL includes
33 #include <map>
35 // 3rd Party includes
36 #include <gsf/gsf-infile.h>
37 #include <gsf/gsf-outfile.h>
39 // NeL includes
40 #include <nel/misc/stream.h>
42 // Project includes
44 namespace PIPELINE {
45 namespace MAX {
47 /**
48 * \brief CStorageStream
49 * \date 2012-08-16 22:06GMT
50 * \author Jan Boon (Kaetemi)
51 * CStorageStream
53 class CStorageStream : public NLMISC::IStream
55 public:
56 CStorageStream(GsfInput *input);
57 CStorageStream(GsfOutput *output);
58 virtual ~CStorageStream();
60 virtual bool seek(sint32 offset, TSeekOrigin origin) const;
61 virtual sint32 getPos() const;
62 // virtual std::string getStreamName() const; // char const * gsf_input_name (GsfInput *input);
63 virtual void serialBuffer(uint8 *buf, uint len);
64 virtual void serialBit(bool &bit);
66 sint32 size();
67 bool eof();
69 private:
70 GsfInput *m_Input;
71 GsfOutput *m_Output;
73 /* there exist compressed max files, so maybe we will need this at some point
74 GsfInput * gsf_input_uncompress (GsfInput *src);
77 }; /* class CStorageStream */
79 } /* namespace MAX */
80 } /* namespace PIPELINE */
82 #endif /* #ifndef PIPELINE_STORAGE_STREAM_H */
84 /* end of file */