AutoEnlargeBuffer Class Reference

#include <AutoEnlargeBuffer.h>

List of all members.

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


Detailed Description

Definition at line 7 of file AutoEnlargeBuffer.h.


Constructor & Destructor Documentation

AutoEnlargeBuffer::AutoEnlargeBuffer ( int  size = 128 *1024  )  [inline]

Definition at line 28 of file AutoEnlargeBuffer.h.

References m_buffer.

00029    : m_SIZE( size ),
00030      m_size( 0 )
00031 {
00032    m_buffer = malloc(size);
00033 }

AutoEnlargeBuffer::~AutoEnlargeBuffer (  )  [inline]

Definition at line 35 of file AutoEnlargeBuffer.h.

References m_buffer.

00036 {
00037    free( m_buffer );
00038 }


Member Function Documentation

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; }


Member Data Documentation

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]

Definition at line 24 of file AutoEnlargeBuffer.h.

Referenced by copy(), and size().

int AutoEnlargeBuffer::m_SIZE [private]

Definition at line 23 of file AutoEnlargeBuffer.h.

Referenced by copy().


Generated on Tue Nov 29 23:17:27 2016 for BOSS_7.0.2 by  doxygen 1.4.7