#include <AutoEnlargeBuffer.h>
Public Member Functions | |
AutoEnlargeBuffer (int size=128 *1024) | |
~AutoEnlargeBuffer () | |
void | copy (void *src, int size) |
int | size () |
void * | data () |
Private Attributes | |
int | m_SIZE |
int | m_size |
void * | m_buffer |
Definition at line 7 of file AutoEnlargeBuffer.h.
AutoEnlargeBuffer::AutoEnlargeBuffer | ( | int | size = 128 *1024 |
) | [inline] |
AutoEnlargeBuffer::~AutoEnlargeBuffer | ( | ) | [inline] |
Definition at line 35 of file AutoEnlargeBuffer.h.
References m_buffer.
00036 { 00037 free( m_buffer ); 00038 }
void AutoEnlargeBuffer::copy | ( | void * | src, | |
int | size | |||
) | [inline] |
Definition at line 40 of file AutoEnlargeBuffer.h.
References m_buffer, m_size, and m_SIZE.
Referenced by DimRpcReader::nextEvent(), PthrReaderBufPool< Reader, PoolSize >::thread_filling(), and PthrWriterBufPool< Writer, PoolSize >::writeEvent().
00041 { 00042 if ( size > m_SIZE ) { 00043 do { 00044 m_SIZE *= 2; 00045 } 00046 while ( size > m_SIZE ); 00047 00048 free( m_buffer ); 00049 m_buffer = malloc(m_SIZE); 00050 } 00051 00052 m_size = size; 00053 memcpy(m_buffer, src, size); 00054 }
void* AutoEnlargeBuffer::data | ( | ) | [inline] |
Definition at line 18 of file AutoEnlargeBuffer.h.
References m_buffer.
Referenced by DimRpcReader::currentEvent(), DimRpcReader::nextEvent(), and PthrWriterBufPool< Writer, PoolSize >::thread_writing().
00018 { return m_buffer; }
int AutoEnlargeBuffer::size | ( | ) | [inline] |
Definition at line 17 of file AutoEnlargeBuffer.h.
References m_size.
Referenced by PthrWriterBufPool< Writer, PoolSize >::thread_writing().
00017 { return m_size; }
void* AutoEnlargeBuffer::m_buffer [private] |
Definition at line 25 of file AutoEnlargeBuffer.h.
Referenced by AutoEnlargeBuffer(), copy(), data(), and ~AutoEnlargeBuffer().
int AutoEnlargeBuffer::m_size [private] |
int AutoEnlargeBuffer::m_SIZE [private] |