00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 00002 /* 00003 * This file is part of the libetonyek project. 00004 * 00005 * This Source Code Form is subject to the terms of the Mozilla Public 00006 * License, v. 2.0. If a copy of the MPL was not distributed with this 00007 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 00008 */ 00009 00010 #ifndef KEYZIPSTREAM_H_INCLUDED 00011 #define KEYZIPSTREAM_H_INCLUDED 00012 00013 #include <vector> 00014 00015 #include "libetonyek_utils.h" 00016 00017 namespace libetonyek 00018 { 00019 00020 struct KEYZipStreamImpl; 00021 00022 class KEYZipStream : public WPXInputStream 00023 { 00024 public: 00025 KEYZipStream(const WPXInputStreamPtr_t &input); 00026 ~KEYZipStream(); 00027 00028 bool isOLEStream(); 00029 WPXInputStream *getDocumentOLEStream(const char *); 00030 00031 const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead); 00032 int seek(long offset, WPX_SEEK_TYPE seekType); 00033 long tell(); 00034 bool atEOS(); 00035 00036 private: 00037 KEYZipStream(const KEYZipStream &); 00038 KEYZipStream &operator=(const KEYZipStream &); 00039 KEYZipStreamImpl *m_pImpl; 00040 }; 00041 00042 } // namespace libetonyek 00043 00044 #endif // KEYZIPSTREAM_H_INCLUDED 00045 00046 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */