Line data Source code
1 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* libcdr
3 : * Version: MPL 1.1 / GPLv2+ / LGPLv2+
4 : *
5 : * The contents of this file are subject to the Mozilla Public License Version
6 : * 1.1 (the "License"); you may not use this file except in compliance with
7 : * the License or as specified alternatively below. You may obtain a copy of
8 : * the License at http://www.mozilla.org/MPL/
9 : *
10 : * Software distributed under the License is distributed on an "AS IS" basis,
11 : * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 : * for the specific language governing rights and limitations under the
13 : * License.
14 : *
15 : * Major Contributor(s):
16 : * Copyright (C) 2011 Fridrich Strba <fridrich.strba@bluewin.ch>
17 : * Copyright (C) 2011 Eilidh McAdam <tibbylickle@gmail.com>
18 : *
19 : *
20 : * All Rights Reserved.
21 : *
22 : * For minor contributions see the git repository.
23 : *
24 : * Alternatively, the contents of this file may be used under the terms of
25 : * either the GNU General Public License Version 2 or later (the "GPLv2+"), or
26 : * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
27 : * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
28 : * instead of those above.
29 : */
30 :
31 :
32 : #ifndef __CDRINTERNALSTREAM_H__
33 : #define __CDRINTERNALSTREAM_H__
34 :
35 : #include <vector>
36 :
37 : #include <libwpd-stream/libwpd-stream.h>
38 :
39 : namespace libcdr
40 : {
41 :
42 : class CDRInternalStream : public WPXInputStream
43 : {
44 : public:
45 : CDRInternalStream(WPXInputStream *input, unsigned long size, bool compressed=false);
46 : CDRInternalStream(const std::vector<unsigned char> &buffer);
47 0 : ~CDRInternalStream() {}
48 :
49 0 : bool isOLEStream()
50 : {
51 0 : return false;
52 : }
53 0 : WPXInputStream *getDocumentOLEStream(const char *)
54 : {
55 0 : return 0;
56 : }
57 :
58 : const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead);
59 : int seek(long offset, WPX_SEEK_TYPE seekType);
60 : long tell();
61 : bool atEOS();
62 : unsigned long getSize() const
63 : {
64 : return m_buffer.size();
65 : }
66 :
67 : private:
68 : volatile long m_offset;
69 : std::vector<unsigned char> m_buffer;
70 : CDRInternalStream(const CDRInternalStream &);
71 : CDRInternalStream &operator=(const CDRInternalStream &);
72 : };
73 :
74 : } // namespace libcdr
75 :
76 : #endif
77 : /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
|