RVNGStream.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2 /* librevenge
3 * Version: MPL 2.0 / LGPLv2.1+
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * Major Contributor(s):
10 * Copyright (C) 2004-2005 William Lachance (wrlach@gmail.com)
11 *
12 * For minor contributions see the git repository.
13 *
14 * Alternatively, the contents of this file may be used under the terms
15 * of the GNU Lesser General Public License Version 2.1 or later
16 * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
17 * applicable instead of those above.
18 */
19
20 #ifndef RVNGSTREAM_H
21 #define RVNGSTREAM_H
22
23 namespace librevenge
24 {
25
26 enum RVNG_SEEK_TYPE
27 {
28 RVNG_SEEK_CUR,
29 RVNG_SEEK_SET,
30 RVNG_SEEK_END
31 };
32
33 class RVNGInputStream
34 {
35 public:
36 RVNGInputStream() {}
37 virtual ~RVNGInputStream() {}
38
44 virtual bool isStructured() = 0;
45
46 virtual unsigned subStreamCount() = 0;
47
48 virtual const char *subStreamName(unsigned id) = 0;
49
50 virtual bool existsSubStream(const char *name) = 0;
51
58 virtual RVNGInputStream *getSubStreamByName(const char *name) = 0;
59
60 virtual RVNGInputStream *getSubStreamById(unsigned id) = 0;
61
69 virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead) = 0;
70
81 virtual int seek(long offset, RVNG_SEEK_TYPE seekType) = 0;
82
87 virtual long tell() = 0;
88
94 virtual bool isEnd() = 0;
95 };
96
97 }
98
99 #endif
100 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
librevenge::RVNGInputStream::RVNGInputStream
RVNGInputStream()
Definition: RVNGStream.h:36
librevenge
Definition: RVNGBinaryData.cpp:38
librevenge::RVNGInputStream::seek
virtual int seek(long offset, RVNG_SEEK_TYPE seekType)=0
Moves to the next location inside the input stream.
librevenge::RVNGInputStream::read
virtual const unsigned char * read(unsigned long numBytes, unsigned long &numBytesRead)=0
Tries to read a given number of bytes starting from the current position inside the input stream...
librevenge::RVNGInputStream::getSubStreamByName
virtual RVNGInputStream * getSubStreamByName(const char *name)=0
Extracts a named stream from an OLE2 storage.
librevenge::RVNG_SEEK_SET
Definition: RVNGStream.h:29
offset
unsigned offset
Definition: RVNGZipStream.cpp:77
librevenge::RVNGInputStream::isStructured
virtual bool isStructured()=0
Analyses the content of the input stream to see whether it is an OLE2 storage.
librevenge::RVNGInputStream::getSubStreamById
virtual RVNGInputStream * getSubStreamById(unsigned id)=0
librevenge::RVNG_SEEK_CUR
Definition: RVNGStream.h:28
librevenge::RVNGInputStream::subStreamName
virtual const char * subStreamName(unsigned id)=0
librevenge::RVNG_SEEK_TYPE
RVNG_SEEK_TYPE
Definition: RVNGStream.h:26
librevenge::RVNGInputStream::isEnd
virtual bool isEnd()=0
Determines whether the current position is at the end of the stream.
librevenge::RVNGInputStream::tell
virtual long tell()=0
Returns the actual position inside the input stream.
librevenge::RVNGInputStream::~RVNGInputStream
virtual ~RVNGInputStream()
Definition: RVNGStream.h:37
librevenge::RVNGInputStream
Definition: RVNGStream.h:33
librevenge::RVNGInputStream::subStreamCount
virtual unsigned subStreamCount()=0
librevenge::RVNG_SEEK_END
Definition: RVNGStream.h:30
librevenge::RVNGInputStream::existsSubStream
virtual bool existsSubStream(const char *name)=0