X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/be38a31d378be07b10c97786074e8f813ddf6fcb..75ce4cb180dfbe5f6ee1ad6927929b43d04edcd1:/include/wx/fs_arc.h?ds=sidebyside diff --git a/include/wx/fs_arc.h b/include/wx/fs_arc.h index e98b3f82ad..53e83fa2ee 100644 --- a/include/wx/fs_arc.h +++ b/include/wx/fs_arc.h @@ -1,56 +1,56 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: fs_zip.h -// Purpose: ZIP file system -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik +// Name: wx/fs_arc.h +// Purpose: Archive file system +// Author: Vaclav Slavik, Mike Wetherell +// Copyright: (c) 1999 Vaclav Slavik, (c) 2006 Mike Wetherell // CVS-ID: $Id$ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_FS_ZIP_H_ -#define _WX_FS_ZIP_H_ +#ifndef _WX_FS_ARC_H_ +#define _WX_FS_ARC_H_ #include "wx/defs.h" -#if wxUSE_FILESYSTEM && wxUSE_FS_ZIP && wxUSE_STREAMS +#if wxUSE_FS_ARCHIVE #include "wx/filesys.h" #include "wx/hashmap.h" - -WX_DECLARE_STRING_HASH_MAP(int, wxZipFilenameHashMap); - +WX_DECLARE_STRING_HASH_MAP(int, wxArchiveFilenameHashMap); //--------------------------------------------------------------------------- -// wxZipFSHandler +// wxArchiveFSHandler //--------------------------------------------------------------------------- -class WXDLLIMPEXP_BASE wxZipFSHandler : public wxFileSystemHandler +class WXDLLIMPEXP_BASE wxArchiveFSHandler : public wxFileSystemHandler { - public: - wxZipFSHandler(); - virtual bool CanOpen(const wxString& location); - virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location); - virtual wxString FindFirst(const wxString& spec, int flags = 0); - virtual wxString FindNext(); - void Cleanup(); - virtual ~wxZipFSHandler(); - - private: - // these vars are used by FindFirst/Next: - class wxZipInputStream *m_Archive; - wxString m_Pattern, m_BaseDir, m_ZipFile; - bool m_AllowDirs, m_AllowFiles; - wxZipFilenameHashMap *m_DirsFound; - - wxString DoFind(); - - DECLARE_NO_COPY_CLASS(wxZipFSHandler) +public: + wxArchiveFSHandler(); + virtual bool CanOpen(const wxString& location); + virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location); + virtual wxString FindFirst(const wxString& spec, int flags = 0); + virtual wxString FindNext(); + void Cleanup(); + virtual ~wxArchiveFSHandler(); + +private: + class wxArchiveFSCache *m_cache; + wxFileSystem m_fs; + + // these vars are used by FindFirst/Next: + class wxArchiveFSCacheData *m_Archive; + struct wxArchiveFSEntry *m_FindEntry; + wxString m_Pattern, m_BaseDir, m_ZipFile; + bool m_AllowDirs, m_AllowFiles; + wxArchiveFilenameHashMap *m_DirsFound; + + wxString DoFind(); + + DECLARE_NO_COPY_CLASS(wxArchiveFSHandler) + DECLARE_DYNAMIC_CLASS(wxArchiveFSHandler) }; +#endif // wxUSE_FS_ARCHIVE -#endif - // wxUSE_FILESYSTEM && wxUSE_FS_ZIP && wxUSE_STREAMS - -#endif // _WX_FS_ZIP_H_ - +#endif // _WX_FS_ARC_H_