Zipios++
zipinputstreambuf.h
Go to the documentation of this file.
1 #ifndef ZIPINPUTSTREAMBUF_H
2 #define ZIPINPUTSTREAMBUF_H
3 
4 #include "zipios++/zipios-config.h"
5 
6 #include <vector>
7 
8 #include <zlib.h>
9 
10 #include "zipios++/fcoll.h"
12 #include "zipios++/ziphead.h"
13 
14 namespace zipios {
15 
19 public:
27  explicit ZipInputStreambuf( streambuf *inbuf, int s_pos = -1, bool del_inbuf = false ) ;
28 
31  void closeEntry() ;
33  void close() ;
34 
41 
43  virtual ~ZipInputStreambuf() ;
44 protected:
45  virtual int underflow() ;
46 private:
47  bool _open_entry ;
48  ZipLocalEntry _curr_entry ;
49  int _data_start ; // Don't forget entry header has a length too.
50  int _remain ; // For STORED entry only. the number of bytes that
51  // hasn't been put in the _outvec yet.
52 
54  ZipInputStreambuf( const ZipInputStreambuf &src ) ;
55 
57  const ZipInputStreambuf &operator= ( const ZipInputStreambuf &src ) ;
58 
59 };
60 
61 
62 } // namespace
63 
64 
65 
66 #endif
67 
72 /*
73  Zipios++ - a small C++ library that provides easy access to .zip files.
74  Copyright (C) 2000 Thomas Søndergaard
75 
76  This library is free software; you can redistribute it and/or
77  modify it under the terms of the GNU Lesser General Public
78  License as published by the Free Software Foundation; either
79  version 2 of the License, or (at your option) any later version.
80 
81  This library is distributed in the hope that it will be useful,
82  but WITHOUT ANY WARRANTY; without even the implied warranty of
83  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
84  Lesser General Public License for more details.
85 
86  You should have received a copy of the GNU Lesser General Public
87  License along with this library; if not, write to the Free Software
88  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
89 */
InflateInputStreambuf is an input stream filter, that inflates the input from the attached input stre...
Header file that defines InflateInputStreambuf.
Header file that defines FileCollection.
SimpleSmartPointer is a simple reference counting smart pointer template.
Header file containing classes and functions for reading the central directory and local header field...
void close()
Closes the streambuf.
ConstEntryPointer getNextEntry()
Opens the next entry in the zip archive and returns a const pointer to a FileEntry object for the ent...
A concrete implementation of the abstract FileEntry base class for ZipFile entries, specifically for representing the information present in the local headers of file entries in a zip file.
Definition: ziphead.h:22
ZipInputStreambuf is a zip input streambuf filter.
ZipInputStreambuf(streambuf *inbuf, int s_pos=-1, bool del_inbuf=false)
ZipInputStreambuf constructor.
void closeEntry()
Closes the current entry, and positions the stream read pointer at the beginning of the next entry (i...
virtual ~ZipInputStreambuf()
Destructor.