libwpg: WPGStreamImplementation.h Source File documentation

- Main Page
- Namespaces
- Classes
- Files

# WPGStreamImplementation.h

Go to the documentation of this file.

    00001 /* libwpg
    00002  * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
    00003  *
    00004  * This library is free software; you can redistribute it and/or
    00005  * modify it under the terms of the GNU Library General Public
    00006  * License as published by the Free Software Foundation; either
    00007  * version 2 of the License, or (at your option) any later version.
    00008  *
    00009  * This library is distributed in the hope that it will be useful,
    00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00012  * Library General Public License for more details.
    00013  *
    00014  * You should have received a copy of the GNU Library General Public
    00015  * License along with this library; if not, write to the
    00016  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    00017  * Boston, MA  02111-1301 USA
    00018  *
    00019  * For further information visit http://libwpg.sourceforge.net
    00020  */
    00021
    00022 #ifndef __WPGSTREAMIMPLEMENTATION_H__
    00023 #define __WPGSTREAMIMPLEMENTATION_H__
    00024
    00025 #include <libwpd/WPXStream.h>
    00026
    00027 namespace libwpg
    00028 {
    00029
    00030 class WPGFileStreamPrivate;
    00031
    00032 class WPGFileStream: public WPXInputStream
    00033 {
    00034 public:
    00035         explicit WPGFileStream(const char* filename);
    00036         ~WPGFileStream();
    00037
    00038         const uint8_t *read(size_t numBytes, size_t &numBytesRead);
    00039         long tell();
    00040         int seek(long offset, WPX_SEEK_TYPE seekType);
    00041         bool atEOS();
    00042
    00043         bool isOLEStream();
    00044         WPXInputStream *getDocumentOLEStream(const char * name);
    00045         WPXInputStream *getDocumentOLEStream();
    00046
    00047 private:
    00048         WPGFileStreamPrivate* d;
    00049         WPGFileStream(const WPGFileStream&); // copy is not allowed
    00050         WPGFileStream& operator=(const WPGFileStream&); // assignment is not allowed
    00051 };
    00052
    00053 class WPGMemoryStreamPrivate;
    00054
    00055 class WPGMemoryStream: public WPXInputStream
    00056 {
    00057 public:
    00058         WPGMemoryStream(const char *data, const unsigned int dataSize);
    00059         ~WPGMemoryStream();
    00060
    00061         const uint8_t *read(size_t numBytes, size_t &numBytesRead);
    00062         long tell();
    00063         int seek(long offset, WPX_SEEK_TYPE seekType);
    00064         bool atEOS();
    00065
    00066         bool isOLEStream();
    00067         WPXInputStream *getDocumentOLEStream(const char * name);
    00068         WPXInputStream *getDocumentOLEStream();
    00069
    00070 private:
    00071         WPGMemoryStreamPrivate* d;
    00072         WPGMemoryStream(const WPGMemoryStream&); // copy is not allowed
    00073         WPGMemoryStream& operator=(const WPGMemoryStream&); // assignment is not allowed
    00074 };
    00075
    00076 } // namespace libwpg
    00077
    00078 #endif // __WPGSTREAMIMPLEMENTATION_H__