MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
StreamContentCopyCast Class Reference

#include <streamoutelem.h>

Inheritance diagram for StreamContentCopyCast:
Collaboration diagram for StreamContentCopyCast:

Public Member Functions

 StreamContentCopyCast (size_t size, const char *buf, size_t outsize, const std::vector< BufCast * > &data)
 
void Set (size_t size, const char *buf)
 
void Modify (void)
 
const void * GetOutBuf (void) const
 
int GetOutSize (void) const
 
- Public Member Functions inherited from StreamContent::Modifier
virtual ~Modifier (void)
 

Protected Attributes

size_t m_size
 
const char * m_buf
 
std::vector< char > m_outbuf
 
std::vector< BufCast * > m_data
 

Detailed Description

Definition at line 162 of file streamoutelem.h.

Constructor & Destructor Documentation

StreamContentCopyCast::StreamContentCopyCast ( size_t  size,
const char *  buf,
size_t  outsize,
const std::vector< BufCast * > &  data 
)

Definition at line 176 of file streamoutelem.cc.

References ASSERT.

177 : m_size(size), m_buf(buf), m_outbuf(outsize), m_data(data)
178 {
179 #ifdef DEBUG
180  std::vector<BufCast *>::const_iterator i = data.end();
181  ASSERT(i > data.begin());
182  --i;
183  size_t minsize = (*i)->offset() + (*i)->size();
184  ASSERT(outsize >= minsize);
185 #endif
186 }
std::vector< char > m_outbuf
std::vector< BufCast * > m_data
#define ASSERT(expression)
Definition: colamd.c:977
static doublereal buf[BUFSIZE]
Definition: discctrl.cc:333

Member Function Documentation

const void * StreamContentCopyCast::GetOutBuf ( void  ) const
virtual

Implements StreamContent::Modifier.

Definition at line 211 of file streamoutelem.cc.

References m_outbuf.

212 {
213  return &m_outbuf[0];
214 }
std::vector< char > m_outbuf
int StreamContentCopyCast::GetOutSize ( void  ) const
virtual

Implements StreamContent::Modifier.

Definition at line 217 of file streamoutelem.cc.

References m_outbuf.

218 {
219  return m_outbuf.size();
220 }
std::vector< char > m_outbuf
void StreamContentCopyCast::Modify ( void  )
virtual

Implements StreamContent::Modifier.

Definition at line 200 of file streamoutelem.cc.

References ASSERT, m_buf, m_data, m_outbuf, and m_size.

201 {
202  ASSERT(m_size == m_data.size()*sizeof(doublereal));
203 
204  doublereal *rbuf = (doublereal *)&m_buf[0];
205  for (size_t i = 0; i < m_data.size(); i++) {
206  m_data[i]->uncast(&m_outbuf[0], rbuf[i]);
207  }
208 }
std::vector< char > m_outbuf
std::vector< BufCast * > m_data
#define ASSERT(expression)
Definition: colamd.c:977
double doublereal
Definition: colamd.c:52
void StreamContentCopyCast::Set ( size_t  size,
const char *  buf 
)
virtual

Implements StreamContent::Modifier.

Definition at line 189 of file streamoutelem.cc.

References ASSERT, buf, m_buf, m_data, and m_size.

190 {
191  m_size = size;
192  m_buf = buf;
193 
194  // FIXME: what about outbuf?
195  // in principle, size is sizeof(doublereal)*nChannels
196  ASSERT(m_size == sizeof(doublereal)*m_data.size());
197 }
std::vector< BufCast * > m_data
#define ASSERT(expression)
Definition: colamd.c:977
static doublereal buf[BUFSIZE]
Definition: discctrl.cc:333
double doublereal
Definition: colamd.c:52

Member Data Documentation

const char* StreamContentCopyCast::m_buf
protected

Definition at line 165 of file streamoutelem.h.

Referenced by Modify(), and Set().

std::vector<BufCast *> StreamContentCopyCast::m_data
protected

Definition at line 167 of file streamoutelem.h.

Referenced by Modify(), and Set().

std::vector<char> StreamContentCopyCast::m_outbuf
protected

Definition at line 166 of file streamoutelem.h.

Referenced by GetOutBuf(), GetOutSize(), and Modify().

size_t StreamContentCopyCast::m_size
protected

Definition at line 164 of file streamoutelem.h.

Referenced by Modify(), and Set().


The documentation for this class was generated from the following files: