]> git.saurik.com Git - wxWidgets.git/commitdiff
Ooops ! I've forgotten the include files.
authorGuilhem Lavaux <lavaux@easynet.fr>
Sun, 12 Jul 1998 15:24:52 +0000 (15:24 +0000)
committerGuilhem Lavaux <lavaux@easynet.fr>
Sun, 12 Jul 1998 15:24:52 +0000 (15:24 +0000)
mmstream.cpp => mstream.cpp

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@235 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/fstream.h [new file with mode: 0644]
include/wx/mstream.h [new file with mode: 0644]
include/wx/stream.h [new file with mode: 0644]
src/common/mstream.cpp

diff --git a/include/wx/fstream.h b/include/wx/fstream.h
new file mode 100644 (file)
index 0000000..d41b9bc
--- /dev/null
@@ -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
diff --git a/include/wx/mstream.h b/include/wx/mstream.h
new file mode 100644 (file)
index 0000000..68c8268
--- /dev/null
@@ -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
diff --git a/include/wx/stream.h b/include/wx/stream.h
new file mode 100644 (file)
index 0000000..8f6643c
--- /dev/null
@@ -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
index a12041ee0e633286fb6d1064d4692197baf95d06..3a1264e3fbaa379c51bb29301aa0768fa6a92831 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        mmstream.cpp
+// Name:        mstream.cpp
 // Purpose:     "Memory stream" classes
 // Author:      Guilhem Lavaux
 // Modified by:
 /////////////////////////////////////////////////////////////////////////////
 
 #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)
 {