include/variantutils/variantstream.h

Go to the documentation of this file.
00001 
00002 // Name:        variantstream.h
00003 // Purpose:     Helper class for using variants in streams
00004 // Author:      Julian Smart
00005 // Modified by: 
00006 // Created:     2009-02-27
00007 // RCS-ID:      
00008 // Copyright:   (c) Julian Smart
00009 // License:     New BSD License
00011 
00012 #ifndef _VARIANTSTREAM_H_
00013 #define _VARIANTSTREAM_H_
00014 
00015 /*
00016  * Forward declarations
00017  */
00018 
00019 class wxInputStream;
00020 class wxOutputStream;
00021 class wxDataInputStream;
00022 class wxDataOutputStream;
00023 
00028 class wxDataStreamHelper
00029 {
00030 public:
00031     wxDataStreamHelper(wxOutputStream& stream, wxDataOutputStream& dataStream)
00032     {
00033         Init();
00034 
00035         m_outputStream = & stream;
00036         m_dataOutputStream = & dataStream;
00037     }
00038     wxDataStreamHelper(wxInputStream& stream, wxDataInputStream& dataStream)
00039     {
00040         Init();
00041 
00042         m_inputStream = & stream;
00043         m_dataInputStream = & dataStream;
00044     }
00045 
00046     bool Read(wxVariant& variant);
00047 
00048     bool Write(const wxVariant& value);
00049     bool Write(const wxString& value, const wxString& name);
00050     bool WriteIfNotEmpty(const wxString& value, const wxString& name);
00051     bool Write(double value, const wxString& name);
00052     bool Write(long value, const wxString& name);
00053     bool Write(int value, const wxString& name);
00054     bool Write(bool value, const wxString& name);
00055     bool WriteEnd();
00056 
00057     void Init();
00058 
00059     wxOutputStream* GetOutputStream() const { return m_outputStream; }
00060     wxDataOutputStream* GetDataOutputStream() const { return m_dataOutputStream; }
00061 
00062     wxInputStream* GetInputStream() const { return m_inputStream; }
00063     wxDataInputStream* GetDataInputStream() const { return m_dataInputStream; }
00064 
00065 protected:
00066     wxOutputStream*     m_outputStream;
00067     wxDataOutputStream* m_dataOutputStream;
00068 
00069     wxInputStream*      m_inputStream;
00070     wxDataInputStream*  m_dataInputStream;
00071 };
00072 
00073 #endif
00074     // _VARIANTSTREAM_H_

Generated on Wed May 6 19:20:19 2009 for AxTk by  doxygen 1.5.1