Implement new features for finding class factories. Put seek inside 2.6 compat ifdef.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		| @@ -270,7 +270,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 +278,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 +319,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 +334,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 +361,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 +384,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 +395,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 +422,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 +441,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 +475,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 +502,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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user