1 #include "daq/slc/system/BufferedWriter.h"
3 #include <daq/slc/base/IOException.h>
9 BufferedWriter::BufferedWriter()
10 : m_memory(NULL), m_size(0), m_pos(0), m_allocated(false) {}
12 BufferedWriter::BufferedWriter(
size_t size,
unsigned char* memory)
13 : m_memory(memory), m_size(size), m_pos(0), m_allocated(false)
16 m_memory =
new unsigned char[size];
22 : m_memory(NULL), m_size(writer.m_size),
23 m_pos(writer.m_pos), m_allocated(writer.m_allocated)
26 m_memory =
new unsigned char [writer.m_size];
27 ::memcpy(m_memory, writer.m_memory, writer.m_size);
29 m_memory = writer.m_memory;
31 m_size = writer.m_size;
35 BufferedWriter::~BufferedWriter()
37 if (m_allocated && m_memory != NULL)
delete [] m_memory;
45 m_allocated = writer.m_allocated;
47 m_memory =
new unsigned char [writer.m_size];
48 ::memcpy(m_memory, writer.m_memory, writer.m_size);
50 m_memory = writer.m_memory;
52 m_size = writer.m_size;
57 size_t BufferedWriter::write(
const void* buf,
const size_t count)
59 if (m_pos + count > m_size) {
61 (
int)m_pos, (
int)count, (
int)m_size));
63 memcpy((m_memory + m_pos), buf, count);