// Name: wx/zipstrm.h
// Purpose: Streams for Zip files
// Author: Mike Wetherell
-// RCS-ID: $Id$
// Copyright: (c) Mike Wetherell
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// Forward decls
//
-class WXDLLIMPEXP_BASE wxZipEntry;
-class WXDLLIMPEXP_BASE wxZipInputStream;
+class WXDLLIMPEXP_FWD_BASE wxZipEntry;
+class WXDLLIMPEXP_FWD_BASE wxZipInputStream;
/////////////////////////////////////////////////////////////////////////////
void Notify();
+private:
wxArchiveEntry* DoClone() const { return ZipClone(); }
-private:
size_t ReadLocal(wxInputStream& stream, wxMBConv& conv);
size_t WriteLocal(wxOutputStream& stream, wxMBConv& conv) const;
virtual WXZIPFIX ~wxZipOutputStream();
bool PutNextEntry(wxZipEntry *entry) { return DoCreate(entry); }
- bool WXZIPFIX PutNextEntry(wxArchiveEntry *entry);
bool WXZIPFIX PutNextEntry(const wxString& name,
const wxDateTime& dt = wxDateTime::Now(),
const wxDateTime& dt = wxDateTime::Now());
bool WXZIPFIX CopyEntry(wxZipEntry *entry, wxZipInputStream& inputStream);
- bool WXZIPFIX CopyEntry(wxArchiveEntry *entry, wxArchiveInputStream& stream);
bool WXZIPFIX CopyArchiveMetaData(wxZipInputStream& inputStream);
- bool WXZIPFIX CopyArchiveMetaData(wxArchiveInputStream& stream);
void WXZIPFIX Sync();
bool WXZIPFIX CloseEntry();
private:
void Init(int level);
+ bool WXZIPFIX PutNextEntry(wxArchiveEntry *entry);
+ bool WXZIPFIX CopyEntry(wxArchiveEntry *entry, wxArchiveInputStream& stream);
+ bool WXZIPFIX CopyArchiveMetaData(wxArchiveInputStream& stream);
+
bool IsOpened() const { return m_comp || m_pending; }
bool DoCreate(wxZipEntry *entry, bool raw = false);
int m_level;
wxFileOffset m_offsetAdjustment;
wxString m_Comment;
+ bool m_endrecWritten;
- DECLARE_NO_COPY_CLASS(wxZipOutputStream)
+ wxDECLARE_NO_COPY_CLASS(wxZipOutputStream);
};
virtual WXZIPFIX ~wxZipInputStream();
bool OpenEntry(wxZipEntry& entry) { return DoOpen(&entry); }
- bool WXZIPFIX OpenEntry(wxArchiveEntry& entry);
bool WXZIPFIX CloseEntry();
wxZipEntry *GetNextEntry();
virtual wxInputStream* WXZIPFIX OpenDecompressor(wxInputStream& stream);
virtual bool WXZIPFIX CloseDecompressor(wxInputStream *decomp);
- wxArchiveEntry *DoGetNextEntry() { return GetNextEntry(); }
-
private:
void Init();
void Init(const wxString& file);
static wxInputStream *OpenFile(const wxString& archive);
#endif
+ wxArchiveEntry *DoGetNextEntry() { return GetNextEntry(); }
+
+ bool WXZIPFIX OpenEntry(wxArchiveEntry& entry);
+
wxStreamError ReadLocal(bool readEndRec = false);
wxStreamError ReadCentral();
friend class wxArchiveFSHandler;
#endif
- DECLARE_NO_COPY_CLASS(wxZipInputStream)
+ wxDECLARE_NO_COPY_CLASS(wxZipInputStream);
};