]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/mstream.h
wxUpdateUI events generation added
[wxWidgets.git] / include / wx / mstream.h
... / ...
CommitLineData
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
14#include <wx/stream.h>
15
16class wxMemoryStreamBase {
17 protected:
18 wxMemoryStreamBase();
19 virtual ~wxMemoryStreamBase();
20
21 bool ChangeBufferSize(size_t new_length);
22
23 protected:
24 bool m_persistent;
25 size_t m_length;
26 char *m_buffer;
27 int m_iolimit;
28};
29
30class wxMemoryInputStream: virtual public wxMemoryStreamBase, public wxInputStream {
31 public:
32 wxMemoryInputStream(const char *data, size_t length);
33 virtual ~wxMemoryInputStream();
34
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; }
38
39 bool Eof() const { return m_eof; }
40 size_t LastRead() const { return m_lastread; }
41
42 protected:
43 bool m_eof;
44 off_t m_position_i;
45 size_t m_lastread;
46};
47
48class wxMemoryOutputStream: virtual public wxMemoryStreamBase, public wxOutputStream {
49 public:
50 wxMemoryOutputStream(char *data = NULL, size_t length = 0);
51 virtual ~wxMemoryOutputStream();
52
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; }
56
57 bool Bad() const { return m_bad; }
58 size_t LastWrite() const { return m_lastwrite; }
59
60 char *GetData() { return m_buffer; }
61 size_t GetLength() { return m_length; }
62
63 protected:
64 bool m_bad;
65 off_t m_position_o;
66 size_t m_lastwrite;
67};
68
69class wxMemoryStream: public wxMemoryInputStream, public wxMemoryOutputStream {
70 public:
71 wxMemoryStream(char *data = NULL, size_t length = 0);
72 virtual ~wxMemoryStream();
73};
74
75#endif