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