28#include <wx/wfstream.h>
36class wxCompressedFFileInputStream :
public wxInputStream {
38 wxCompressedFFileInputStream(
const wxString &fileName);
39 virtual ~wxCompressedFFileInputStream();
41 virtual bool IsOk()
const {
42 return wxStreamBase::IsOk() && m_file->IsOpened();
44 bool IsSeekable()
const {
return false; }
47 size_t OnSysRead(
void *buffer,
size_t size);
48 wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode);
49 wxFileOffset OnSysTell()
const;
57 uint8_t inbuf[BUFSIZ];
59 wxDECLARE_NO_COPY_CLASS(wxCompressedFFileInputStream);
63class ChartDataNonSeekableInputStream :
public wxInputStream {
65 ChartDataNonSeekableInputStream(
const wxString &fileName);
66 virtual ~ChartDataNonSeekableInputStream();
68 virtual bool IsOk()
const {
return m_stream->IsOk(); }
69 bool IsSeekable()
const {
return false; }
72 size_t OnSysRead(
void *buffer,
size_t size);
73 wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode);
74 wxFileOffset OnSysTell()
const;
77 wxInputStream *m_stream;
79 wxDECLARE_NO_COPY_CLASS(ChartDataNonSeekableInputStream);
84class ChartDataInputStream :
public wxInputStream {
86 ChartDataInputStream(
const wxString &fileName);
87 virtual ~ChartDataInputStream();
89 virtual bool IsOk()
const {
return m_stream->IsOk(); }
90 bool IsSeekable()
const {
return m_stream->IsSeekable(); }
92 wxString TempFileName()
const {
return m_tempfilename; }
95 size_t OnSysRead(
void *buffer,
size_t size);
96 wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode);
97 wxFileOffset OnSysTell()
const;
100 wxString m_tempfilename;
101 wxInputStream *m_stream;
103 wxDECLARE_NO_COPY_CLASS(ChartDataInputStream);
108typedef wxFFileInputStream ChartDataInputStream;
109typedef wxFFileInputStream ChartDataNonSeekableInputStream;
113bool DecompressXZFile(
const wxString &input_path,
const wxString &output_path);