#include "mars_streams.h" #include #include namespace mars { ObjectStream::ObjectStream (std::iostream * pIO) : _pIn(pIO), _pOut(pIO), _traits(determineTraits()) {} ObjectStream::ObjectStream (std::istream * pIn) : _pIn(pIn), _traits(determineTraits()) {} ObjectStream::ObjectStream (std::ostream * pOut) : _pOut(pOut), _traits(determineTraits()) {} ObjectStream::Traits ObjectStream::determineTraits() { unsigned long l = 1; Traits traits; // TODO: Verify endian algorithm is correct and works for memory detection, might require disk access instead if (*reinterpret_cast< char * > (&l) & 1) traits.endian = Traits::Little; else traits.endian = Traits::Big; return traits; } }