1#ifndef DUNE_FEM_STANDARDSTREAMS_HH
2#define DUNE_FEM_STANDARDSTREAMS_HH
8#ifdef SYSTEM_ENDIAN_HEADER
9#include SYSTEM_ENDIAN_HEADER
25#if __BYTE_ORDER == __LITTLE_ENDIAN
27#elif __BYTE_ORDER == __BIG_ENDIAN
32 static inline size_t map(
const size_t pos,
40 class StandardOutStream;
41 class StandardInStream;
81 DUNE_THROW( Dune::IOError,
"Stream not valid!" );
126 const unsigned int length = s.length();
128 for(
unsigned int i = 0; i < length; ++i )
153 const size_t tsize =
sizeof( T );
154 union { T value;
char bytes[ tsize ]; } convert;
157 convert.value = value;
160 assert(
sizeof(
char) == 1 ) ;
163 for(
size_t i=0; i<tsize; ++i )
165 stream_.put( convert.bytes[ ByteOrder :: map( i, tsize ) ] );
216 DUNE_THROW( Dune::IOError,
"Stream not valid!" );
260 for(
unsigned int i = 0; i < length; ++i )
287 const size_t tsize =
sizeof( T ) ;
288 union { T value;
char bytes[ tsize ]; } convert;
291 assert(
sizeof(
char) == 1 ) ;
294 for(
size_t i=0; i<tsize; ++i )
296 convert.bytes[ ByteOrder :: map( i, tsize ) ] =
stream_.get();
300 value = convert.value;
Definition: bindguard.hh:11
Definition: standardstreams.hh:21
static size_t map(const size_t pos, const size_t size)
Definition: standardstreams.hh:32
static const char defaultEndian
Definition: standardstreams.hh:23
static const char order
Definition: standardstreams.hh:24
Definition: standardstreams.hh:44
StandardOutStream OutStreamType
Definition: standardstreams.hh:45
output stream writing into a given std::ostream
Definition: standardstreams.hh:61
void flush()
flush the stream
Definition: standardstreams.hh:88
void writeUnsignedInt(unsigned int value)
write an unsigned int to the stream
Definition: standardstreams.hh:133
void writeString(const std::string &s)
write a string to the stream
Definition: standardstreams.hh:124
void writeFloat(const float value)
write a float to the stream
Definition: standardstreams.hh:100
void writeChar(const char value)
write a char to the stream
Definition: standardstreams.hh:112
void writeDouble(const double value)
write a double to the stream
Definition: standardstreams.hh:94
void writePrimitive(const T &value)
Definition: standardstreams.hh:151
void writeBool(const bool value)
write a char to the stream
Definition: standardstreams.hh:118
std::ostream & stream_
Definition: standardstreams.hh:173
bool valid() const
Definition: standardstreams.hh:145
void writeUnsignedInt64(uint64_t value)
write an uint64_t to the stream
Definition: standardstreams.hh:139
StandardOutStreamTraits Traits
type of the traits
Definition: standardstreams.hh:67
void writeInt(const int value)
write an int to the stream
Definition: standardstreams.hh:106
std::ostream & stream()
Definition: standardstreams.hh:85
StandardOutStream(std::ostream &stream)
constructor
Definition: standardstreams.hh:77
Definition: standardstreams.hh:178
StandardInStream InStreamType
Definition: standardstreams.hh:179
input stream reading from a given std::istream
Definition: standardstreams.hh:196
void readUnsignedInt(unsigned int &value)
read an unsigned int from the stream
Definition: standardstreams.hh:267
void readDouble(double &value)
read a double from the stream
Definition: standardstreams.hh:223
std::istream & stream()
Definition: standardstreams.hh:220
bool valid() const
Definition: standardstreams.hh:279
void readInt(int &value)
read an int from the stream
Definition: standardstreams.hh:235
void readFloat(float &value)
read a float from the stream
Definition: standardstreams.hh:229
void readChar(char &value)
read a char from the stream
Definition: standardstreams.hh:241
void readPrimitive(T &value)
Definition: standardstreams.hh:285
StandardInStreamTraits Traits
type of the traits
Definition: standardstreams.hh:202
std::istream & stream_
Definition: standardstreams.hh:307
StandardInStream(std::istream &stream)
constructor
Definition: standardstreams.hh:212
void readString(std::string &s)
read a string from the stream
Definition: standardstreams.hh:253
void readUnsignedInt64(uint64_t &value)
read an uint64_t from the stream
Definition: standardstreams.hh:273
void readBool(bool &value)
read a bool from the stream
Definition: standardstreams.hh:247
abstract interface for an output stream
Definition: streams.hh:46
void writeError() const
Definition: streams.hh:147
abstract interface for an input stream
Definition: streams.hh:179
void readError() const
Definition: streams.hh:348