00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _SWORD_STREAMS_MARSHALLTOOLS_
00020 #define _SWORD_STREAMS_MARSHALLTOOLS_
00021
00022 namespace sword {
00023
00024 class MarshallTools {
00025 public:
00026 static void byteswap(word8& b1, word8& b2);
00027
00028 union Converter16 {
00029 struct {
00030 word8 b1;
00031 word8 b2;
00032 } asBytes;
00033 int16 asInt16;
00034 word16 asWord16;
00035 };
00036
00037 union Converter32 {
00038 struct {
00039 word8 b1;
00040 word8 b2;
00041 word8 b3;
00042 word8 b4;
00043 } asBytes;
00044 int32 asInt32;
00045 word32 asWord32;
00046 float32 asFloat32;
00047 };
00048
00049 union Converter64{
00050 struct {
00051 word8 b1;
00052 word8 b2;
00053 word8 b3;
00054 word8 b4;
00055 word8 b5;
00056 word8 b6;
00057 word8 b7;
00058 word8 b8;
00059 } asBytes;
00060 int64 asInt64;
00061 word64 asWord64;
00062 float64 asFloat64;
00063 };
00064 };
00065
00066 }
00067
00068 #include "sword.private/streams.Marshalltools.inl"
00069
00070 #endif // _SWORD_STREAMS_MARSHALLTOOLS_