Ooops ! I've forgotten the include files.

mmstream.cpp => mstream.cpp


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@235 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Guilhem Lavaux 1998-07-12 15:24:52 +00:00
parent 3d4c6a214a
commit 32fc4afbb2
4 changed files with 255 additions and 3 deletions

68
include/wx/fstream.h Normal file
View File

@ -0,0 +1,68 @@
/////////////////////////////////////////////////////////////////////////////
// Name: fstream.h
// Purpose: File stream classes
// Author: Guilhem Lavaux
// Modified by:
// Created: 11/07/98
// RCS-ID: $Id$
// Copyright: (c) Guilhem Lavaux
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __WXFSTREAM_H__
#define __WXFSTREAM_H__
#include <stdio.h>
#include <wx/object.h>
#include <wx/string.h>
#include <wx/stream.h>
class wxFileStreamBase: public wxStream {
DECLARE_CLASS(wxFileStreamBase)
public:
wxFileStreamBase(const wxString& fileName, int iolimit);
virtual ~wxFileStreamBase();
wxInputStream& Read(void *buffer, size_t size);
size_t SeekI(int pos, wxWhenceType whence = wxBeginPosition);
size_t TellI() const;
bool Eof() const { return m_eof; }
size_t LastRead() const { return m_lastread; }
wxOutputStream& Write(const void *buffer, size_t size);
size_t SeekO(int pos, wxWhenceType whence = wxBeginPosition);
size_t TellO() const;
bool Bad() const { return m_bad; }
size_t LastWrite() const { return m_lastwrite; }
void Sync();
protected:
size_t m_lastread, m_lastwrite;
bool m_eof, m_bad;
FILE *m_file;
};
class wxFileInputStream: public wxFileStreamBase {
DECLARE_CLASS(wxFileInputStream)
public:
wxFileInputStream(const wxString& fileName) : wxFileStreamBase(fileName, 1) {}
virtual ~wxFileInputStream() {}
};
class wxFileOutputStream: public wxFileStreamBase {
DECLARE_CLASS(wxFileOutputStream)
public:
wxFileOutputStream(const wxString& fileName) : wxFileStreamBase(fileName, 2) {}
virtual ~wxFileOutputStream() {}
};
class wxFileStream: public wxFileStreamBase {
DECLARE_CLASS(wxFileStream)
public:
wxFileStream(const wxString& fileName) : wxFileStreamBase(fileName, 0) {}
virtual ~wxFileStream() {}
};
#endif

72
include/wx/mstream.h Normal file
View File

@ -0,0 +1,72 @@
/////////////////////////////////////////////////////////////////////////////
// Name: mstream.h
// Purpose: Memory stream classes
// Author: Guilhem Lavaux
// Modified by:
// Created: 11/07/98
// RCS-ID: $Id$
// Copyright: (c) Guilhem Lavaux
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __WXMMSTREAM_H__
#define __WXMMSTREAM_H__
#include <wx/stream.h>
class wxMemoryStreamBase: public wxStream {
public:
wxMemoryStreamBase(char *data, size_t length, int iolimit);
virtual ~wxMemoryStreamBase();
// Input part
wxInputStream& Read(void *buffer, size_t size);
size_t SeekI(int pos, wxWhenceType whence = wxBeginPosition);
size_t TellI() const { return m_position_i; }
bool Eof() const { return m_eof; }
size_t LastRead() const { return m_lastread; }
// Output part
wxOutputStream& Write(const void *buffer, size_t size);
size_t SeekO(int pos, wxWhenceType whence = wxBeginPosition);
size_t TellO() const { return m_position_o; }
bool Bad() const { return m_bad; }
size_t LastWrite() const { return m_lastwrite; }
void Sync() {}
protected:
bool ChangeBufferSize(size_t new_length);
protected:
bool m_bad, m_eof, m_persistent;
size_t m_lastread, m_lastwrite;
size_t m_length;
size_t m_position_i, m_position_o;
char *m_buffer;
int m_iolimit;
};
class wxMemoryInputStream: public wxMemoryStreamBase {
public:
wxMemoryInputStream(char *data, size_t length)
: wxMemoryStreamBase(data, length, 1)
{}
};
class wxMemoryOutputStream: public wxMemoryStreamBase {
public:
wxMemoryOutputStream(char *data = NULL, size_t length = 0)
: wxMemoryStreamBase(data, length, 2)
{}
};
class wxMemoryStream: public wxMemoryStreamBase {
public:
wxMemoryStream(char *data = NULL, size_t length = 0)
: wxMemoryStreamBase(data, length, 0)
{}
};
#endif

112
include/wx/stream.h Normal file
View File

@ -0,0 +1,112 @@
/////////////////////////////////////////////////////////////////////////////
// Name: stream.h
// Purpose: "wxWindows stream" base classes
// Author: Guilhem Lavaux
// Modified by:
// Created: 11/07/98
// RCS-ID: $Id$
// Copyright: (c) Guilhem Lavaux
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#ifndef __WXSTREAM_H__
#define __WXSTREAM_H__
#ifdef __GNUG__
#pragma interface
#endif
#include <stdio.h>
#include <wx/object.h>
#include <wx/string.h>
/*
* wxStream: base classes
*/
typedef enum {
wxBeginPosition = 0, wxCurrentPosition = 1, wxEndPosition = 2
} wxWhenceType;
class wxOutputStream;
class wxInputStream: public wxObject {
DECLARE_ABSTRACT_CLASS(wxInputStream);
public:
wxInputStream();
virtual ~wxInputStream();
virtual wxInputStream& Read(void *buffer, size_t size) = 0;
wxInputStream& Read(wxOutputStream& stream_out);
virtual size_t SeekI(int pos, wxWhenceType whence = wxBeginPosition) = 0;
virtual size_t TellI() const = 0;
virtual bool Eof() const = 0;
virtual size_t LastRead() const = 0;
};
class wxOutputStream: public wxObject {
DECLARE_ABSTRACT_CLASS(wxOutputStream);
public:
wxOutputStream();
virtual ~wxOutputStream();
virtual wxOutputStream& Write(const void *buffer, size_t size) = 0;
wxOutputStream& Write(wxInputStream& stream_in);
virtual size_t SeekO(int pos, wxWhenceType whence = wxBeginPosition) = 0;
virtual size_t TellO() const = 0;
virtual bool Bad() const = 0;
virtual size_t LastWrite() const = 0;
virtual void Sync() {}
};
class wxStream: public wxInputStream, public wxOutputStream {
DECLARE_ABSTRACT_CLASS(wxStream)
public:
wxStream() : wxInputStream(), wxOutputStream() {}
virtual ~wxStream() {}
};
/*
* "Filter" streams
*/
class wxFilterInputStream: public wxInputStream {
DECLARE_CLASS(wxFilterInputStream)
public:
wxFilterInputStream(wxInputStream& stream);
virtual ~wxFilterInputStream();
virtual wxInputStream& Read(void *buffer, size_t size)
{ return m_parent_i_stream->Read(buffer, size); }
virtual size_t SeekI(int pos, wxWhenceType whence = wxBeginPosition)
{ return m_parent_i_stream->SeekI(pos, whence); }
virtual bool Eof() const { return m_parent_i_stream->Eof(); }
virtual size_t LastRead() const { return m_parent_i_stream->LastRead(); }
protected:
wxInputStream *m_parent_i_stream;
};
class wxFilterOuputStream: pubilc wxOutputStream {
DECLARE_CLASS(wxFilterOutputStream)
public:
wxFilterOutputStream(wxOutputStream& stream);
virtual ~wxFilterOutputStream();
virtual wxOutputStream& Write(const void *buffer, size_t size)
{ return m_parent_o_stream->Write(buffer, size); }
virtual size_t SeekO(int pos, wxWhenceType whence = wxBeginPosition)
{ return m_parent_o_stream->SeekO(pos, whence); }
virtual bool Eof() const { return m_parent_o_sream->Eof(); }
virtual size_t LastRead() const { return m_parent_o_stream->LastRead(); }
protected:
wxOutputStream *m_parent_o_stream;
};
#endif

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
// Name: mmstream.cpp
// Name: mstream.cpp
// Purpose: "Memory stream" classes
// Author: Guilhem Lavaux
// Modified by:
@ -10,12 +10,12 @@
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "mmstream.h"
#pragma implementation "mstream.h"
#endif
#include <stdlib.h>
#include <wx/stream.h>
#include <wx/mmstream.h>
#include <wx/mstream.h>
wxMemoryStreamBase::wxMemoryStreamBase(char *data, size_t length, int iolimit)
{