00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _SWORD_STREAMS_ISTREAMCONNECTOR_
00020 #define _SWORD_STREAMS_ISTREAMCONNECTOR_
00021
00022 #include "sword/streams.IStream.h"
00023
00024 namespace sword {
00025
00026 template<class STREAM>
00027 class IStreamConnector : public IStream {
00028 STREAM& stream_;
00029
00030 public:
00031 IStreamConnector(STREAM& stream) : stream_(stream) {}
00032 ~IStreamConnector() {}
00033
00034 virtual void read_int8 (int8& value);
00035 virtual void read_int16 (int16& value);
00036 virtual void read_int32 (int32& value);
00037 virtual void read_int64 (int64& value);
00038
00039 virtual void read_word8 (word8& value);
00040 virtual void read_word16 (word16& value);
00041 virtual void read_word32 (word32& value);
00042 virtual void read_word64 (word64& value);
00043
00044 virtual void read_float32(float32& value);
00045 virtual void read_float64(float64& value);
00046
00047 virtual void read_bool (bool& value);
00048 virtual void read_char (char& value);
00049 virtual void read_string (std::string& value);
00050 virtual void read_pointer(void*& value);
00051
00052 virtual word read(void* buffer, word length);
00053 };
00054
00055 }
00056
00057 #include "sword.private/streams.IStreamConnector.inl"
00058
00059 #endif // _SWORD_STREAMS_ISTREAMCONNECTOR_