]> git.saurik.com Git - wxWidgets.git/blame - include/wx/fs_arc.h
Don't define __STRICT_ANSI__, we should build both with and without it.
[wxWidgets.git] / include / wx / fs_arc.h
CommitLineData
be38a31d 1/////////////////////////////////////////////////////////////////////////////
ce7208d4 2// Name: wx/fs_arc.h
f068697b
MW
3// Purpose: Archive file system
4// Author: Vaclav Slavik, Mike Wetherell
5// Copyright: (c) 1999 Vaclav Slavik, (c) 2006 Mike Wetherell
be38a31d
MW
6// Licence: wxWindows licence
7/////////////////////////////////////////////////////////////////////////////
8
f068697b
MW
9#ifndef _WX_FS_ARC_H_
10#define _WX_FS_ARC_H_
be38a31d
MW
11
12#include "wx/defs.h"
13
f068697b 14#if wxUSE_FS_ARCHIVE
be38a31d
MW
15
16#include "wx/filesys.h"
17#include "wx/hashmap.h"
18
f068697b 19WX_DECLARE_STRING_HASH_MAP(int, wxArchiveFilenameHashMap);
be38a31d
MW
20
21//---------------------------------------------------------------------------
f068697b 22// wxArchiveFSHandler
be38a31d
MW
23//---------------------------------------------------------------------------
24
f068697b 25class WXDLLIMPEXP_BASE wxArchiveFSHandler : public wxFileSystemHandler
be38a31d 26{
f068697b
MW
27public:
28 wxArchiveFSHandler();
29 virtual bool CanOpen(const wxString& location);
30 virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location);
31 virtual wxString FindFirst(const wxString& spec, int flags = 0);
32 virtual wxString FindNext();
33 void Cleanup();
34 virtual ~wxArchiveFSHandler();
35
36private:
37 class wxArchiveFSCache *m_cache;
38 wxFileSystem m_fs;
39
40 // these vars are used by FindFirst/Next:
41 class wxArchiveFSCacheData *m_Archive;
e7fbaf0e 42 struct wxArchiveFSEntry *m_FindEntry;
f068697b
MW
43 wxString m_Pattern, m_BaseDir, m_ZipFile;
44 bool m_AllowDirs, m_AllowFiles;
45 wxArchiveFilenameHashMap *m_DirsFound;
46
47 wxString DoFind();
48
c0c133e1 49 wxDECLARE_NO_COPY_CLASS(wxArchiveFSHandler);
f068697b 50 DECLARE_DYNAMIC_CLASS(wxArchiveFSHandler)
be38a31d
MW
51};
52
f068697b 53#endif // wxUSE_FS_ARCHIVE
be38a31d 54
f068697b 55#endif // _WX_FS_ARC_H_