00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _SWORD_STREAMS_ISTREAM_
00020 #define _SWORD_STREAMS_ISTREAM_
00021
00022 namespace sword {
00023
00025
00029 class SWORDDECL IStream {
00030 public:
00031 IStream() {}
00032 virtual ~IStream() {}
00033
00034
00035 IStream &operator>>(int8 &value);
00036 IStream &operator>>(int16 &value);
00037 IStream &operator>>(int32 &value);
00038 IStream &operator>>(int64 &value);
00039
00040 IStream &operator>>(word8 &value);
00041 IStream &operator>>(word16 &value);
00042 IStream &operator>>(word32 &value);
00043 IStream &operator>>(word64 &value);
00044
00045 IStream &operator>>(float32 &value);
00046 IStream &operator>>(float64 &value);
00047
00048 IStream &operator>>(bool &value);
00049 IStream &operator>>(char &value);
00050 IStream &operator>>(std::string &value);
00051 IStream &operator>>(void* &value);
00052
00053
00054 IStream &operator>>(int &value);
00055 IStream &operator>>(word &value);
00056
00057 virtual word read(void* buffer, word length) = 0;
00058
00059 protected:
00060
00061 virtual void read_int8 (int8 &value) = 0;
00062 virtual void read_int16 (int16 &value) = 0;
00063 virtual void read_int32 (int32 &value) = 0;
00064 virtual void read_int64 (int64 &value) = 0;
00065
00066 virtual void read_word8 (word8 &value) = 0;
00067 virtual void read_word16 (word16 &value) = 0;
00068 virtual void read_word32 (word32 &value) = 0;
00069 virtual void read_word64 (word64 &value) = 0;
00070
00071 virtual void read_float32(float32 &value) = 0;
00072 virtual void read_float64(float64 &value) = 0;
00073
00074 virtual void read_bool (bool &value) = 0;
00075 virtual void read_char (char &value) = 0;
00076 virtual void read_string (std::string &value) = 0;
00077 virtual void read_pointer(void* &value) = 0;
00078 };
00079
00080 }
00081
00082 #include "sword.private/streams.IStream.inl"
00083
00084 #endif // _SWORD_STREAMS_ISTREAM_