00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _SWORD_STREAMS_OSTREAM_
00020 #define _SWORD_STREAMS_OSTREAM_
00021
00022 namespace sword {
00023
00025
00029 class SWORDDECL OStream {
00030 public:
00031 OStream() {}
00032 virtual ~OStream() {}
00033
00034
00035 OStream &operator<<(const int8 value);
00036 OStream &operator<<(const int16 value);
00037 OStream &operator<<(const int32 value);
00038 OStream &operator<<(const int64 value);
00039
00040 OStream &operator<<(const word8 value);
00041 OStream &operator<<(const word16 value);
00042 OStream &operator<<(const word32 value);
00043 OStream &operator<<(const word64 value);
00044
00045 OStream &operator<<(const float32 value);
00046 OStream &operator<<(const float64 value);
00047
00048 OStream &operator<<(const bool value);
00049 OStream &operator<<(const char value);
00050 OStream &operator<<(const std::string& value);
00051 OStream &operator<<(const char value[]);
00052 OStream &operator<<(const void* value);
00053
00054
00055 OStream &operator<<(const int value);
00056 OStream &operator<<(const word value);
00057
00058 virtual void flush() = 0;
00059 virtual void write(const void* buffer, word length) = 0;
00060
00061 protected:
00062
00063 virtual void write_int8 (const int8 value) = 0;
00064 virtual void write_int16 (const int16 value) = 0;
00065 virtual void write_int32 (const int32 value) = 0;
00066 virtual void write_int64 (const int64 value) = 0;
00067
00068 virtual void write_word8 (const word8 value) = 0;
00069 virtual void write_word16 (const word16 value) = 0;
00070 virtual void write_word32 (const word32 value) = 0;
00071 virtual void write_word64 (const word64 value) = 0;
00072
00073 virtual void write_float32(const float32 value) = 0;
00074 virtual void write_float64(const float64 value) = 0;
00075
00076 virtual void write_bool (const bool value) = 0;
00077 virtual void write_char (const char value) = 0;
00078 virtual void write_string (const std::string& value) = 0;
00079 virtual void write_pointer(const void* value) = 0;
00080 };
00081
00082 }
00083
00084 #include "sword.private/streams.OStream.inl"
00085
00086 #endif // _SWORD_STREAMS_OSTREAM_