]>
git.saurik.com Git - wxWidgets.git/blob - include/wx/mstream.h
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Memory stream classes
4 // Author: Guilhem Lavaux
8 // Copyright: (c) Guilhem Lavaux
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11 #ifndef __WXMMSTREAM_H__
12 #define __WXMMSTREAM_H__
14 #include <wx/stream.h>
16 class wxMemoryStreamBase
{
19 virtual ~wxMemoryStreamBase();
21 bool ChangeBufferSize(size_t new_length
);
30 class wxMemoryInputStream
: virtual public wxMemoryStreamBase
, public wxInputStream
{
32 wxMemoryInputStream(const char *data
, size_t length
);
33 virtual ~wxMemoryInputStream();
35 wxInputStream
& Read(void *buffer
, size_t size
);
36 off_t
SeekI(off_t pos
, wxSeekMode mode
);
37 off_t
TellI() const { return m_position_i
; }
39 bool Eof() const { return m_eof
; }
40 size_t LastRead() const { return m_lastread
; }
48 class wxMemoryOutputStream
: virtual public wxMemoryStreamBase
, public wxOutputStream
{
50 wxMemoryOutputStream(char *data
= NULL
, size_t length
= 0);
51 virtual ~wxMemoryOutputStream();
53 wxOutputStream
& Write(const void *buffer
, size_t size
);
54 off_t
SeekO(off_t pos
, wxSeekMode mode
);
55 off_t
TellO() const { return m_position_o
; }
57 bool Bad() const { return m_bad
; }
58 size_t LastWrite() const { return m_lastwrite
; }
60 char *GetData() { return m_buffer
; }
61 size_t GetLength() { return m_length
; }
69 class wxMemoryStream
: public wxMemoryInputStream
, public wxMemoryOutputStream
{
71 wxMemoryStream(char *data
= NULL
, size_t length
= 0);
72 virtual ~wxMemoryStream();