]>
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 _WX_WXMMSTREAM_H__
12 #define _WX_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();
39 size_t DoRead(void *buffer
, size_t size
);
40 off_t
DoSeekInput(off_t pos
, wxSeekMode mode
);
41 off_t
DoTellInput() const { return m_position_i
; }
47 class wxMemoryOutputStream
: virtual public wxMemoryStreamBase
, public wxOutputStream
{
49 wxMemoryOutputStream(char *data
= NULL
, size_t length
= 0);
50 virtual ~wxMemoryOutputStream();
52 char *GetData() { Sync(); return m_buffer
; }
53 size_t GetLength() { Sync(); return m_length
; }
57 size_t DoWrite(const void *buffer
, size_t size
);
58 off_t
DoSeekOutput(off_t pos
, wxSeekMode mode
);
59 off_t
DoTellOutput() const { return m_position_o
; }
65 class wxMemoryStream
: public wxMemoryInputStream
, public wxMemoryOutputStream
{
67 wxMemoryStream(char *data
= NULL
, size_t length
= 0);
68 virtual ~wxMemoryStream();