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