]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/stream.h
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: "wxWindows stream" base classes
4 // Author: Guilhem Lavaux
8 // Copyright: (c) Guilhem Lavaux
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef __WXSTREAM_H__
13 #define __WXSTREAM_H__
20 #include <wx/object.h>
21 #include <wx/string.h>
24 * wxStream: base classes
28 wxFromStart
, wxFromCurrent
, wxFromEnd
32 class wxInputStream
: virtual public wxObject
{
33 DECLARE_ABSTRACT_CLASS(wxInputStream
)
36 virtual ~wxInputStream();
38 virtual wxInputStream
& Read(void *buffer
, size_t size
) = 0;
39 wxInputStream
& Read(wxOutputStream
& stream_out
);
41 virtual off_t
SeekI(off_t pos
, wxSeekMode mode
= wxFromStart
) = 0;
42 virtual off_t
TellI() const = 0;
44 virtual bool Eof() const = 0;
45 virtual size_t LastRead() const = 0;
47 wxInputStream
& operator>>(wxOutputStream
& out
) { return Read(out
); }
50 class wxOutputStream
: virtual public wxObject
{
51 DECLARE_ABSTRACT_CLASS(wxOutputStream
)
54 virtual ~wxOutputStream();
56 virtual wxOutputStream
& Write(const void *buffer
, size_t size
) = 0;
57 wxOutputStream
& Write(wxInputStream
& stream_in
);
59 virtual off_t
SeekO(off_t pos
, wxSeekMode mode
= wxFromStart
) = 0;
60 virtual off_t
TellO() const = 0;
62 virtual bool Bad() const = 0;
63 virtual size_t LastWrite() const = 0;
65 virtual void Sync() {}
72 class wxFilterInputStream
: public wxInputStream
{
73 DECLARE_CLASS(wxFilterInputStream
)
75 wxFilterInputStream(wxInputStream
& stream
);
76 virtual ~wxFilterInputStream();
78 virtual wxInputStream
& Read(void *buffer
, size_t size
)
79 { return m_parent_i_stream
->Read(buffer
, size
); }
80 virtual off_t
SeekI(off_t pos
, wxSeekMode mode
= wxFromStart
)
81 { return m_parent_i_stream
->SeekI(pos
, mode
); }
82 virtual off_t
TellI() const
83 { return m_parent_i_stream
->TellI(); }
85 virtual bool Eof() const { return m_parent_i_stream
->Eof(); }
86 virtual size_t LastRead() const { return m_parent_i_stream
->LastRead(); }
89 wxInputStream
*m_parent_i_stream
;
92 class wxFilterOutputStream
: public wxOutputStream
{
93 DECLARE_CLASS(wxFilterOutputStream
)
95 wxFilterOutputStream(wxOutputStream
& stream
);
96 virtual ~wxFilterOutputStream();
98 virtual wxOutputStream
& Write(const void *buffer
, size_t size
)
99 { return m_parent_o_stream
->Write(buffer
, size
); }
100 virtual off_t
SeekO(off_t pos
, wxSeekMode mode
= wxFromStart
)
101 { return m_parent_o_stream
->SeekO(pos
, mode
); }
102 virtual off_t
TellO() const
103 { return m_parent_o_stream
->TellO(); }
105 virtual bool Bad() const { return m_parent_o_stream
->Bad(); }
106 virtual size_t LastWrite() const { return m_parent_o_stream
->LastWrite(); }
109 wxOutputStream
*m_parent_o_stream
;