]> git.saurik.com Git - wxWidgets.git/blame - include/wx/mstream.h
DP: native wxTreeCtrl for GTK.
[wxWidgets.git] / include / wx / mstream.h
CommitLineData
32fc4afb
GL
1/////////////////////////////////////////////////////////////////////////////
2// Name: mstream.h
3// Purpose: Memory stream classes
4// Author: Guilhem Lavaux
5// Modified by:
6// Created: 11/07/98
7// RCS-ID: $Id$
8// Copyright: (c) Guilhem Lavaux
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11#ifndef __WXMMSTREAM_H__
12#define __WXMMSTREAM_H__
13
79c3e0e1 14#include <wx/stream.h>
32fc4afb 15
79c3e0e1
GL
16class wxMemoryStreamBase {
17 protected:
18 wxMemoryStreamBase();
32fc4afb
GL
19 virtual ~wxMemoryStreamBase();
20
32fc4afb
GL
21 bool ChangeBufferSize(size_t new_length);
22
23 protected:
79c3e0e1 24 bool m_persistent;
32fc4afb 25 size_t m_length;
32fc4afb
GL
26 char *m_buffer;
27 int m_iolimit;
28};
29
79c3e0e1 30class wxMemoryInputStream: virtual public wxMemoryStreamBase, public wxInputStream {
32fc4afb 31 public:
79c3e0e1
GL
32 wxMemoryInputStream(const char *data, size_t length);
33 virtual ~wxMemoryInputStream();
79c3e0e1 34
32a4b1d5
GL
35 char Peek();
36
1678ad78
GL
37 protected:
38
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; }
79c3e0e1
GL
42
43 protected:
79c3e0e1 44 off_t m_position_i;
32fc4afb
GL
45};
46
79c3e0e1 47class wxMemoryOutputStream: virtual public wxMemoryStreamBase, public wxOutputStream {
32fc4afb 48 public:
79c3e0e1
GL
49 wxMemoryOutputStream(char *data = NULL, size_t length = 0);
50 virtual ~wxMemoryOutputStream();
51
1678ad78
GL
52 char *GetData() { Sync(); return m_buffer; }
53 size_t GetLength() { Sync(); return m_length; }
79c3e0e1 54
1678ad78 55 protected:
79c3e0e1 56
1678ad78
GL
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; }
79c3e0e1
GL
60
61 protected:
79c3e0e1 62 off_t m_position_o;
32fc4afb
GL
63};
64
79c3e0e1 65class wxMemoryStream: public wxMemoryInputStream, public wxMemoryOutputStream {
32fc4afb 66 public:
79c3e0e1
GL
67 wxMemoryStream(char *data = NULL, size_t length = 0);
68 virtual ~wxMemoryStream();
32fc4afb
GL
69};
70
71#endif