]> git.saurik.com Git - wxWidgets.git/blob - include/wx/zipstrm.h
ad1e680b32719d1d13ca8d7b71b889c0d52dcf0e
[wxWidgets.git] / include / wx / zipstrm.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: zipstream.h
3 // Purpose: wxZipInputStream for reading files from ZIP archive
4 // Author: Vaclav Slavik
5 // Copyright: (c) 1999 Vaclav Slavik
6 // Licence: wxWindows Licence
7 /////////////////////////////////////////////////////////////////////////////
8
9 #ifndef __ZIPSTREAM_H__
10 #define __ZIPSTREAM_H__
11
12 #ifdef __GNUG__
13 #pragma interface
14 #endif
15
16 #include "wx/defs.h"
17
18 #if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB
19
20 #include "wx/stream.h"
21
22 //--------------------------------------------------------------------------------
23 // wxZipInputStream
24 // This class is input stream from ZIP archive. The archive
25 // must be local file (accessible via FILE*)
26 //--------------------------------------------------------------------------------
27
28
29 class WXDLLEXPORT wxZipInputStream : public wxInputStream
30 {
31 private:
32 size_t m_Size;
33 off_t m_Pos;
34 void *m_Archive;
35 // this void* is handle of archive .
36 // I'm sorry it is void and not proper type but I don't want
37 // to make unzip.h header public.
38
39 public:
40 wxZipInputStream(const wxString& archive, const wxString& file);
41 // archive is name of .zip archive, file is name of file to be extracted.
42 // Remember that archive must be local file accesible via fopen, fread functions!
43 ~wxZipInputStream();
44
45 protected:
46 virtual size_t GetSize() const {return m_Size;}
47 virtual size_t OnSysRead(void *buffer, size_t bufsize);
48 virtual off_t OnSysSeek(off_t seek, wxSeekMode mode);
49 virtual off_t OnSysTell() const {return m_Pos;}
50 };
51
52
53 #endif
54 // wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB
55
56 #endif
57 // __ZIPSTREAM_H__
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74