X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=libctsupport%2Ffnetorderstream.cpp;h=57bcb46cc4752bc7bc357c3444bd4a3476221a9c;hp=569984c22a5f293e754cf05e01743f0b0650b676;hb=f7ee98f7d964ed361068179f0e7ea4475ed1abdf;hpb=2debde82a721c0cf5bdf6642ace3290f83bb21a4 diff --git a/libctsupport/fnetorderstream.cpp b/libctsupport/fnetorderstream.cpp index 569984c..57bcb46 100644 --- a/libctsupport/fnetorderstream.cpp +++ b/libctsupport/fnetorderstream.cpp @@ -1,3 +1,23 @@ +/***************************************************************************** +** This is part of the CTSim program +** Copyright (c) 1983-2001 Kevin Rosenberg +** +** $Id$ +** +** This program is free software; you can redistribute it and/or modify +** it under the terms of the GNU General Public License (version 2) as +** published by the Free Software Foundation. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with this program; if not, write to the Free Software +** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +******************************************************************************/ + #if HAVE_CONFIG_H #include "config.h" #endif @@ -10,171 +30,171 @@ #include "fnetorderstream.h" -void +void ConvertNetworkOrder (void* buffer, size_t bytes) { #ifndef WORDS_BIGENDIAN if (bytes < 2) - return; + return; char* start = static_cast(buffer); char* end = start + bytes - 1; // last byte size_t nSwap = bytes / 2; - + while (nSwap-- > 0) { - unsigned char c = *start; - *start++ = *end; - *end-- = c; + unsigned char c = *start; + *start++ = *end; + *end-- = c; } -#endif +#endif } -void +void ConvertReverseNetworkOrder (void* buffer, size_t bytes) { #ifdef WORDS_BIGENDIAN if (bytes < 2) - return; + return; char* start = static_cast(buffer); - char* end = start + bytes - 1; // last byte + char* end = start + bytes - 1; // last byte size_t nSwap = bytes / 2; - + while (nSwap-- > 0) { - unsigned char c = *start; - *start++ = *end; - *end-- = c; + unsigned char c = *start; + *start++ = *end; + *end-- = c; } -#endif +#endif } -fnetorderstream& fnetorderstream::writeInt16 (kuint16 n) { +void +fnetorderstream::writeInt16 (kuint16 n) { #ifndef WORDS_BIGENDIAN SwapBytes2 (&n); #endif write (reinterpret_cast(&n), 2); - return (*this); } -fnetorderstream& fnetorderstream::writeInt32 (kuint32 n) { +void +fnetorderstream::writeInt32 (kuint32 n) { #ifndef WORDS_BIGENDIAN SwapBytes4(&n); #endif write (reinterpret_cast(&n), 4); - return (*this); } -fnetorderstream& fnetorderstream::writeFloat32 (kfloat32 n) { +void +fnetorderstream::writeFloat32 (kfloat32 n) { #ifndef WORDS_BIGENDIAN SwapBytes4 (&n); #endif write (reinterpret_cast(&n), 4); - return (*this); } -fnetorderstream& fnetorderstream::writeFloat64 (kfloat64 n) { +void +fnetorderstream::writeFloat64 (kfloat64 n) { #ifndef WORDS_BIGENDIAN SwapBytes8 (&n); #endif write (reinterpret_cast(&n), 8); - return (*this); } -fnetorderstream& fnetorderstream::readInt16 (kuint16& n) { +void +fnetorderstream::readInt16 (kuint16& n) { read (reinterpret_cast(&n), 2); #ifndef WORDS_BIGENDIAN SwapBytes2 (&n); #endif - return (*this); } -fnetorderstream& fnetorderstream::readInt32 (kuint32& n) { +void +fnetorderstream::readInt32 (kuint32& n) { read (reinterpret_cast(&n), 4); #ifndef WORDS_BIGENDIAN SwapBytes4 (&n); #endif - return (*this); } -fnetorderstream& fnetorderstream::readFloat32 (kfloat32& n) { +void +fnetorderstream::readFloat32 (kfloat32& n) { read (reinterpret_cast(&n), 4); #ifndef WORDS_BIGENDIAN SwapBytes4 (&n); #endif - return (*this); } -fnetorderstream& fnetorderstream::readFloat64 (kfloat64& n) { +void +fnetorderstream::readFloat64 (kfloat64& n) { read (reinterpret_cast(&n), 8); #ifndef WORDS_BIGENDIAN SwapBytes8 (&n); #endif - return (*this); } -frnetorderstream& frnetorderstream::writeInt16 (kuint16 n) { +void +frnetorderstream::writeInt16 (kuint16 n) { #ifdef WORDS_BIGENDIAN SwapBytes2 (&n); #endif write (reinterpret_cast(&n), 2); - return (*this); } -frnetorderstream& frnetorderstream::writeInt32 (kuint32 n) { +void +frnetorderstream::writeInt32 (kuint32 n) { #ifdef WORDS_BIGENDIAN SwapBytes4(&n); #endif write (reinterpret_cast(&n), 4); - return (*this); } -frnetorderstream& frnetorderstream::writeFloat32 (kfloat32 n) { +void +frnetorderstream::writeFloat32 (kfloat32 n) { #ifdef WORDS_BIGENDIAN SwapBytes4 (&n); #endif write (reinterpret_cast(&n), 4); - return (*this); } -frnetorderstream& frnetorderstream::writeFloat64 (kfloat64 n) { +void +frnetorderstream::writeFloat64 (kfloat64 n) { #ifdef WORDS_BIGENDIAN SwapBytes8 (&n); #endif write (reinterpret_cast(&n), 8); - return (*this); } -frnetorderstream& frnetorderstream::readInt16 (kuint16& n) { +void +frnetorderstream::readInt16 (kuint16& n) { read (reinterpret_cast(&n), 2); #ifdef WORDS_BIGENDIAN SwapBytes2 (&n); #endif - return (*this); } -frnetorderstream& frnetorderstream::readInt32 (kuint32& n) { +void +frnetorderstream::readInt32 (kuint32& n) { read (reinterpret_cast(&n), 4); #ifdef WORDS_BIGENDIAN SwapBytes4 (&n); #endif - return (*this); } -frnetorderstream& frnetorderstream::readFloat32 (kfloat32& n) { +void +frnetorderstream::readFloat32 (kfloat32& n) { read (reinterpret_cast(&n), 4); #ifdef WORDS_BIGENDIAN SwapBytes4 (&n); #endif - return (*this); } -frnetorderstream& frnetorderstream::readFloat64 (kfloat64& n) { +void +frnetorderstream::readFloat64 (kfloat64& n) { read (reinterpret_cast(&n), 8); #ifdef WORDS_BIGENDIAN SwapBytes8 (&n); #endif - return (*this); }