00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _SWORD_STREAMS_OSTREAMCONNECTOR_
00020 #define _SWORD_STREAMS_OSTREAMCONNECTOR_
00021
00022 #include "sword/streams.OStream.h"
00023
00024 namespace sword {
00025
00026 template<class STREAM>
00027 class OStreamConnector : public OStream {
00028 STREAM& stream_;
00029
00030 public:
00031 OStreamConnector(STREAM& stream) : stream_(stream) {}
00032 ~OStreamConnector() {}
00033
00034 virtual void write_int8 (const int8 value);
00035 virtual void write_int16 (const int16 value);
00036 virtual void write_int32 (const int32 value);
00037 virtual void write_int64 (const int64 value);
00038
00039 virtual void write_word8 (const word8 value);
00040 virtual void write_word16 (const word16 value);
00041 virtual void write_word32 (const word32 value);
00042 virtual void write_word64 (const word64 value);
00043
00044 virtual void write_float32(const float32 value);
00045 virtual void write_float64(const float64 value);
00046
00047 virtual void write_bool (const bool value);
00048 virtual void write_char (const char value);
00049 virtual void write_string (const std::string& value);
00050 virtual void write_pointer(const void* value);
00051
00052 virtual void flush();
00053 virtual void write(const void* buffer, word length);
00054 };
00055
00056 }
00057
00058 #include "sword.private/streams.OStreamConnector.inl"
00059
00060 #endif // _SWORD_STREAMS_OSTREAMCONNECTOR_