#include "wx/defs.h"
+#if wxUSE_FILESYSTEM
+
#if !wxUSE_STREAMS
#error You cannot compile virtual file systems without wxUSE_STREAMS
#endif
#error You cannot compile wxHTML without virtual file systems
#endif
-#if wxUSE_FILESYSTEM
-
#include "wx/stream.h"
#include "wx/datetime.h"
#include "wx/filename.h"
#endif // wxUSE_DATETIME
DECLARE_ABSTRACT_CLASS(wxFSFile)
- DECLARE_NO_COPY_CLASS(wxFSFile)
+ wxDECLARE_NO_COPY_CLASS(wxFSFile);
};
//--------------------------------------------------------------------------------
// Open Bit Flags
-enum {
+enum wxFileSystemOpenFlags
+{
wxFS_READ = 1, // Open for reading
wxFS_SEEKABLE = 4 // Returned stream will be seekable
};
// Handlers local to this instance
DECLARE_DYNAMIC_CLASS(wxFileSystem)
- DECLARE_NO_COPY_CLASS(wxFileSystem)
+ wxDECLARE_NO_COPY_CLASS(wxFileSystem);
};
static wxString ms_root;
};
+// Stream reading data from wxFSFile: this allows to use virtual files with any
+// wx functions accepting streams.
+class WXDLLIMPEXP_BASE wxFSInputStream : public wxWrapperInputStream
+{
+public:
+ // Notice that wxFS_READ is implied in flags.
+ wxFSInputStream(const wxString& filename, int flags = 0);
+ virtual ~wxFSInputStream();
+private:
+ wxFSFile* m_file;
+
+ wxDECLARE_NO_COPY_CLASS(wxFSInputStream);
+};
#endif
// wxUSE_FILESYSTEM