ABWZlibStream.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2/*
3 * This file is part of the libabw project.
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
10#ifndef __ABWZLIBSTREAM_H__
11#define __ABWZLIBSTREAM_H__
12
13#include <vector>
14#include <librevenge-stream/librevenge-stream.h>
15
16namespace libabw
17{
18
19class ABWZlibStream : public librevenge::RVNGInputStream
20{
21public:
22 ABWZlibStream(librevenge::RVNGInputStream *input);
23 ~ABWZlibStream() override {}
24
25 bool isStructured() override
26 {
27 return false;
28 }
29 unsigned subStreamCount() override
30 {
31 return 0;
32 }
33 const char *subStreamName(unsigned) override
34 {
35 return nullptr;
36 }
37 bool existsSubStream(const char *) override
38 {
39 return false;
40 }
41 librevenge::RVNGInputStream *getSubStreamByName(const char *) override
42 {
43 return nullptr;
44 }
45 librevenge::RVNGInputStream *getSubStreamById(unsigned) override
46 {
47 return nullptr;
48 }
49 const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead) override;
50 int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType) override;
51 long tell() override;
52 bool isEnd() override;
53 unsigned long getSize() const
54 {
55 return m_buffer.size();
56 }
57private:
58 librevenge::RVNGInputStream *m_input;
59 volatile long m_offset;
60 std::vector<unsigned char> m_buffer;
63};
64
65} // namespace libabw
66
67#endif // __ABWZLIBSTREAM_H__
68/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
Definition: ABWZlibStream.h:20
ABWZlibStream(const ABWZlibStream &)
bool isStructured() override
Definition: ABWZlibStream.h:25
librevenge::RVNGInputStream * getSubStreamByName(const char *) override
Definition: ABWZlibStream.h:41
std::vector< unsigned char > m_buffer
Definition: ABWZlibStream.h:60
unsigned subStreamCount() override
Definition: ABWZlibStream.h:29
ABWZlibStream & operator=(const ABWZlibStream &)
librevenge::RVNGInputStream * m_input
Definition: ABWZlibStream.h:58
~ABWZlibStream() override
Definition: ABWZlibStream.h:23
bool isEnd() override
Definition: ABWZlibStream.cpp:158
bool existsSubStream(const char *) override
Definition: ABWZlibStream.h:37
const char * subStreamName(unsigned) override
Definition: ABWZlibStream.h:33
int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType) override
Definition: ABWZlibStream.cpp:126
librevenge::RVNGInputStream * getSubStreamById(unsigned) override
Definition: ABWZlibStream.h:45
const unsigned char * read(unsigned long numBytes, unsigned long &numBytesRead) override
Definition: ABWZlibStream.cpp:98
unsigned long getSize() const
Definition: ABWZlibStream.h:53
long tell() override
Definition: ABWZlibStream.cpp:150
volatile long m_offset
Definition: ABWZlibStream.h:59
Definition: AbiDocument.cpp:17

Generated for libwpd by doxygen 1.9.6