00001 #ifndef _BYTESWAP_H_
00002 #define _BYTESWAP_H_
00003
00004 void byteswap( void* d, int size );
00007 bool std2host( void* d, int size )
00008 {
00009 #ifdef WIN32
00010 byteswap( d, size );
00011 return true;
00012 #endif
00013 #ifdef _LINUX_
00014 byteswap( d, size );
00015 return true;
00016 #endif
00017 return false;
00018 }
00019
00022 bool host2std( void* d, int size )
00023 {
00024 #ifdef WIN32
00025 byteswap( d, size );
00026 return true;
00027 #endif
00028 #ifdef _LINUX_
00029 byteswap( d, size );
00030 return true;
00031 #endif
00032
00033 return false;
00034 }
00035
00036 void swap( char& a, char& b)
00037 {
00038 if( &a == &b ) return;
00039 char tmp = a;
00040 a = b;
00041 b = tmp;
00042 }
00043 void byteswap( void* d, int size )
00044 {
00045 char* data = (char*)d;
00046 int tmp = 0;
00047 int hsize = size / 2;
00048 while( tmp < hsize )
00049 {
00050 swap( data[tmp], data[size-tmp-1] );
00051 tmp++;
00052 }
00053 }
00054
00055
00056 #endif