12#include "utils/mardyn_assert.h"
26 ParaStrm() : m_size(0), m_pstrm(NULL), m_readpos(NULL) { }
29 ParaStrm(
const ParaStrm& param_stream ) : m_size( param_stream.m_size ), m_pstrm(NULL), m_readpos(NULL) {
30 m_pstrm = (
char *) malloc(m_size);
31 mardyn_assert(m_pstrm);
32 memcpy( m_pstrm, param_stream.m_pstrm, m_size );
44 return m_readpos >= m_pstrm + m_size;
57 m_size = param_stream.m_size;
58 m_pstrm = (
char *) malloc(m_size);
59 mardyn_assert(m_pstrm);
60 memcpy( m_pstrm, param_stream.m_pstrm, m_size );
67 ptrdiff_t oldsize = m_size;
69 ptrdiff_t readpos = m_readpos - m_pstrm;
73 m_pstrm = (
char*) malloc(m_size);
75 m_pstrm = (
char*) realloc(m_pstrm, m_size);
77 mardyn_assert(m_pstrm);
79 *((T*) (m_pstrm + oldsize)) = p;
82 m_readpos = m_pstrm + readpos;
88 mardyn_assert(m_readpos+
sizeof(T)<=m_pstrm+m_size);
90 p = *((T*) m_readpos);
92 m_readpos = (
char*) ((T*) m_readpos + 1);
Definition: ParaStrm.h:21
ParaStrm & operator>>(T &p)
read value at actual stream position and move position
Definition: ParaStrm.h:87
bool eos() const
end of stream reached?
Definition: ParaStrm.h:43
~ParaStrm()
Destructor.
Definition: ParaStrm.h:37
ParaStrm(const ParaStrm ¶m_stream)
Constructor using an existing parameter stream (resets the reading "pointer" to the beginning of the ...
Definition: ParaStrm.h:29
ParaStrm()
Constructor generating a new, empty parameter stream.
Definition: ParaStrm.h:26
void reset_read()
reset reading "pointer" to the beginning of the stream
Definition: ParaStrm.h:51
ParaStrm & operator=(const ParaStrm ¶m_stream)
Copy parameter stream (resets the reading "pointer" to the beginning of the stream).
Definition: ParaStrm.h:56
ParaStrm & operator<<(T p)
add value to the (end of) stream
Definition: ParaStrm.h:66
bool empty() const
stream empty?
Definition: ParaStrm.h:47