X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8907154c1a8a6882c6797d1f16393ddfb23e7f3a..ce4b7808ca940be201422a066de141ca12f13863:/include/wx/zipstrm.h?ds=inline diff --git a/include/wx/zipstrm.h b/include/wx/zipstrm.h index c2963a9e6b..8d704a001a 100644 --- a/include/wx/zipstrm.h +++ b/include/wx/zipstrm.h @@ -12,10 +12,9 @@ #include "wx/defs.h" -#if wxUSE_ZLIB && wxUSE_STREAMS && wxUSE_ZIPSTREAM +#if wxUSE_ZIPSTREAM #include "wx/archive.h" -#include "wx/hashmap.h" #include "wx/filename.h" // some methods from wxZipInputStream and wxZipOutputStream stream do not get @@ -270,7 +269,7 @@ private: ///////////////////////////////////////////////////////////////////////////// // wxZipOutputStream -WX_DECLARE_LIST_WITH_DECL(wxZipEntry, wx__ZipEntryList, class WXDLLIMPEXP_BASE); +WX_DECLARE_LIST_WITH_DECL(wxZipEntry, wxZipEntryList_, class WXDLLIMPEXP_BASE); class WXDLLIMPEXP_BASE wxZipOutputStream : public wxArchiveOutputStream { @@ -278,6 +277,9 @@ public: wxZipOutputStream(wxOutputStream& stream, int level = -1, wxMBConv& conv = wxConvLocal); + wxZipOutputStream(wxOutputStream *stream, + int level = -1, + wxMBConv& conv = wxConvLocal); virtual WXZIPFIX ~wxZipOutputStream(); bool PutNextEntry(wxZipEntry *entry) { return DoCreate(entry); } @@ -316,6 +318,8 @@ protected: { return m_offsetAdjustment != wxInvalidOffset; } private: + void Init(int level); + bool WXZIPFIX PutNextEntry(wxArchiveEntry *entry); bool WXZIPFIX CopyEntry(wxArchiveEntry *entry, wxArchiveInputStream& stream); bool WXZIPFIX CopyArchiveMetaData(wxArchiveInputStream& stream); @@ -329,7 +333,7 @@ private: class wxStoredOutputStream *m_store; class wxZlibOutputStream2 *m_deflate; class wxZipStreamLink *m_backlink; - wx__ZipEntryList m_entries; + wxZipEntryList_ m_entries; char *m_initialData; size_t m_initialSize; wxZipEntry *m_pending; @@ -356,8 +360,9 @@ public: typedef wxZipEntry entry_type; wxZipInputStream(wxInputStream& stream, wxMBConv& conv = wxConvLocal); + wxZipInputStream(wxInputStream *stream, wxMBConv& conv = wxConvLocal); -#if 1 //WXWIN_COMPATIBILITY_2_6 +#if WXWIN_COMPATIBILITY_2_6 && wxUSE_FFILE wxZipInputStream(const wxString& archive, const wxString& file) : wxArchiveInputStream(OpenFile(archive), wxConvLocal) { Init(file); } #endif @@ -378,7 +383,7 @@ protected: size_t WXZIPFIX OnSysRead(void *buffer, size_t size); wxFileOffset OnSysTell() const { return m_decomp ? m_decomp->TellI() : 0; } -#if 1 //WXWIN_COMPATIBILITY_2_6 +#if WXWIN_COMPATIBILITY_2_6 && wxUSE_FFILE wxFileOffset WXZIPFIX OnSysSeek(wxFileOffset seek, wxSeekMode mode); #endif @@ -389,7 +394,9 @@ protected: private: void Init(); void Init(const wxString& file); - wxInputStream& OpenFile(const wxString& archive); +#if WXWIN_COMPATIBILITY_2_6 && wxUSE_FFILE + static wxInputStream *OpenFile(const wxString& archive); +#endif wxArchiveEntry *DoGetNextEntry() { return GetNextEntry(); } @@ -414,7 +421,6 @@ private: class wxStoredInputStream *m_store; class wxZlibInputStream2 *m_inflate; class wxRawInputStream *m_rawin; - class wxFFileInputStream *m_ffile; wxZipEntry m_entry; bool m_raw; size_t m_headerSize; @@ -434,7 +440,7 @@ private: friend bool wxZipOutputStream::CopyArchiveMetaData( wxZipInputStream& inputStream); -#if 1 //WXWIN_COMPATIBILITY_2_6 +#if WXWIN_COMPATIBILITY_2_6 && wxUSE_FFILE bool m_allowSeeking; friend class wxZipFSInputStream; #endif @@ -468,17 +474,26 @@ public: typedef wxZipPairIter pairiter_type; #endif + wxZipClassFactory(); + wxZipEntry *NewEntry() const { return new wxZipEntry; } wxZipInputStream *NewStream(wxInputStream& stream) const { return new wxZipInputStream(stream, GetConv()); } wxZipOutputStream *NewStream(wxOutputStream& stream) const { return new wxZipOutputStream(stream, -1, GetConv()); } + wxZipInputStream *NewStream(wxInputStream *stream) const + { return new wxZipInputStream(stream, GetConv()); } + wxZipOutputStream *NewStream(wxOutputStream *stream) const + { return new wxZipOutputStream(stream, -1, GetConv()); } wxString GetInternalName(const wxString& name, wxPathFormat format = wxPATH_NATIVE) const { return wxZipEntry::GetInternalName(name, format); } + const wxChar * const *GetProtocols(wxStreamProtocolType type + = wxSTREAM_PROTOCOL) const; + protected: wxArchiveEntry *DoNewEntry() const { return NewEntry(); } @@ -486,6 +501,10 @@ protected: { return NewStream(stream); } wxArchiveOutputStream *DoNewStream(wxOutputStream& stream) const { return NewStream(stream); } + wxArchiveInputStream *DoNewStream(wxInputStream *stream) const + { return NewStream(stream); } + wxArchiveOutputStream *DoNewStream(wxOutputStream *stream) const + { return NewStream(stream); } private: DECLARE_DYNAMIC_CLASS(wxZipClassFactory) @@ -550,6 +569,6 @@ inline void wxZipEntry::SetName(const wxString& name, } -#endif // wxUSE_ZLIB && wxUSE_STREAMS && wxUSE_ZIPSTREAM +#endif // wxUSE_ZIPSTREAM #endif // _WX_WXZIPSTREAM_H__