00001 #ifndef ZIPINPUTSTREAM_H 00002 #define ZIPINPUTSTREAM_H 00003 00004 #include "zipios-config.h" 00005 00006 #include "meta-iostreams.h" 00007 #include <string> 00008 00009 #include "ziphead.h" 00010 #include "zipinputstreambuf.h" 00011 00012 namespace zipios { 00013 00014 using std::ifstream ; 00015 00020 class BaseExport ZipInputStream : public istream { 00021 public: 00022 00026 explicit ZipInputStream( std::istream &is, std::streampos pos = 0 ) ; 00027 00032 explicit ZipInputStream( const std::string &filename, std::streampos pos = 0 ) ; 00033 00034 int available() ; 00037 void closeEntry() ; 00038 00040 void close() ; 00041 00042 // ZipLocalEntry *createZipCDirEntry( const string &name ) ; 00043 00050 ConstEntryPointer getNextEntry() ; 00051 00053 virtual ~ZipInputStream() ; 00054 00055 private: 00056 ifstream *ifs ; 00057 ZipInputStreambuf *izf ; 00058 00060 ZipInputStream( const ZipInputStream &src ) ; 00061 00063 const ZipInputStream &operator= ( const ZipInputStream &src ) ; 00064 00065 }; 00066 00067 } // namespace. 00068 00069 #endif 00070 00075 /* 00076 Zipios++ - a small C++ library that provides easy access to .zip files. 00077 Copyright (C) 2000 Thomas Søndergaard 00078 00079 This library is free software; you can redistribute it and/or 00080 modify it under the terms of the GNU Lesser General Public 00081 License as published by the Free Software Foundation; either 00082 version 2 of the License, or (at your option) any later version. 00083 00084 This library is distributed in the hope that it will be useful, 00085 but WITHOUT ANY WARRANTY; without even the implied warranty of 00086 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00087 Lesser General Public License for more details. 00088 00089 You should have received a copy of the GNU Lesser General Public 00090 License along with this library; if not, write to the Free Software 00091 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00092 */