[Gcblue-commits] gcb_wx/src/common tcStream.cpp,NONE,1.1 simmath.cpp,1.8,1.9
Status: Alpha
Brought to you by:
ddcforge
|
From: Dewitt C. <ddc...@us...> - 2004-04-13 00:38:33
|
Update of /cvsroot/gcblue/gcb_wx/src/common In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27636/src/common Modified Files: simmath.cpp Added Files: tcStream.cpp Log Message: Multiplayer related updates Index: simmath.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/common/simmath.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** simmath.cpp 9 Apr 2004 03:08:08 -0000 1.8 --- simmath.cpp 13 Apr 2004 00:24:38 -0000 1.9 *************** *** 21,24 **** --- 21,25 ---- #include "simmath.h" #include "nsNav.h" + #include "common/tcStream.h" void ConformLonLatRad(float &lon_rad, float &lat_rad) { *************** *** 316,319 **** --- 317,346 ---- } } + + /********************** tsGeoPoint *************************************/ + /** + * Load state from stream + */ + tcStream& tsGeoPoint::operator<<(tcStream& stream) + { + stream >> mfLon_rad; + stream >> mfLat_rad; + stream >> mfAlt_m; + + return stream; + } + + /** + * Save state to stream + */ + tcStream& tsGeoPoint::operator>>(tcStream& stream) + { + stream << mfLon_rad; + stream << mfLat_rad; + stream << mfAlt_m; + + return stream; + } + /******************************* tcKinematics *******************************/ *************** *** 392,419 **** } ! void tcKinematics::LoadFromStream(std::stringstream& buffer) { ! buffer.read((char*)&mfLon_rad, sizeof(mfLon_rad)); ! buffer.read((char*)&mfLat_rad, sizeof(mfLat_rad)); ! buffer.read((char*)&mfAlt_m, sizeof(mfAlt_m)); ! buffer.read((char*)&mfHeading_rad, sizeof(mfHeading_rad)); ! buffer.read((char*)&mfClimbAngle_rad, sizeof(mfClimbAngle_rad)); ! buffer.read((char*)&mfYaw_rad, sizeof(mfYaw_rad)); ! buffer.read((char*)&mfPitch_rad, sizeof(mfPitch_rad)); ! buffer.read((char*)&mfRoll_rad, sizeof(mfRoll_rad)); ! buffer.read((char*)&mfSpeed_kts, sizeof(mfSpeed_kts)); } ! void tcKinematics::SaveToStream(std::stringstream& buffer) { ! buffer.write((char*)&mfLon_rad, sizeof(mfLon_rad)); ! buffer.write((char*)&mfLat_rad, sizeof(mfLat_rad)); ! buffer.write((char*)&mfAlt_m, sizeof(mfAlt_m)); ! buffer.write((char*)&mfHeading_rad, sizeof(mfHeading_rad)); ! buffer.write((char*)&mfClimbAngle_rad, sizeof(mfClimbAngle_rad)); ! buffer.write((char*)&mfYaw_rad, sizeof(mfYaw_rad)); ! buffer.write((char*)&mfPitch_rad, sizeof(mfPitch_rad)); ! buffer.write((char*)&mfRoll_rad, sizeof(mfRoll_rad)); ! buffer.write((char*)&mfSpeed_kts, sizeof(mfSpeed_kts)); } --- 419,456 ---- } ! /** ! * Load state from stream ! */ ! tcStream& tcKinematics::operator<<(tcStream& stream) { ! stream >> mfLon_rad; ! stream >> mfLat_rad; ! stream >> mfAlt_m; ! stream >> mfHeading_rad; ! stream >> mfClimbAngle_rad; ! stream >> mfYaw_rad; ! stream >> mfPitch_rad; ! stream >> mfRoll_rad; ! stream >> mfSpeed_kts; ! ! return stream; } ! /** ! * Save state to stream ! */ ! tcStream& tcKinematics::operator>>(tcStream& stream) { ! stream << mfLon_rad; ! stream << mfLat_rad; ! stream << mfAlt_m; ! stream << mfHeading_rad; ! stream << mfClimbAngle_rad; ! stream << mfYaw_rad; ! stream << mfPitch_rad; ! stream << mfRoll_rad; ! stream << mfSpeed_kts; ! ! return stream; } --- NEW FILE: tcStream.cpp --- #include "tcStream.h" #include <iostream> /** * creates stream from char array */ tcStream::tcStream(const char* data, std::streamsize count) { std::stringstream::write(data, count); } /** * default constructor */ tcStream::tcStream() { } /** * @return true if end of stream has been reached */ bool tcStream::eof() { return std::stringstream::eof(); } void tcStream::read(char* buff, std::streamsize count) { std::stringstream::read(buff, count); } /** * @return size of stream in bytes */ size_t tcStream::size() { return std::stringstream::str().size(); } void tcStream::write(const char* buff, std::streamsize count) { std::stringstream::write(buff, count); } /*** write operators ***/ tcStream& tcStream::operator<<(int& val) { write((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator<<(long& val) { write((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator<<(unsigned char& val) { write((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator<<(unsigned int& val) { write((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator<<(bool& val) { write((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator<<(float& val) { write((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator<<(double& val) { write((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator<<(std::string& val) { size_t len = val.size(); write((char*)&len, sizeof(len)); write(val.c_str(), (std::streamsize)len); return *this; } /*** read operators ***/ tcStream& tcStream::operator>>(int& val) { read((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator>>(long& val) { read((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator>>(unsigned char& val) { read((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator>>(unsigned int& val) { read((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator>>(bool& val) { read((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator>>(float& val) { read((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator>>(double& val) { read((char*)&val, sizeof(val)); return *this; } tcStream& tcStream::operator>>(std::string& val) { size_t len; read((char*)&len, sizeof(len)); if (len >= 2048) { std::cerr << "tcStream::operator>>(std::string& val) - length overflow\n"; } else { char* buffer = new char[len+1]; read(buffer, (std::streamsize)len); buffer[len] = 0; // add terminating null char val = buffer; delete buffer; } return *this; } |