diff -r 1d92fd018dd4 -r 4a1905d205a2 qtms/src/qtmsmembuffer.cpp --- a/qtms/src/qtmsmembuffer.cpp Thu Jun 17 11:11:56 2010 -0500 +++ b/qtms/src/qtmsmembuffer.cpp Fri Jun 25 17:07:52 2010 -0500 @@ -17,55 +17,48 @@ #include #include +#include "tmsutility.h" #include "qtmsmembuffer.h" -#include "tmsutility.h" using namespace QTMS; using namespace TMS; QTMSMemBuffer::QTMSMemBuffer() { + iTmsBuffer = NULL; + iOwnsBuffer = FALSE; } QTMSMemBuffer::~QTMSMemBuffer() { - delete iBuffer; + if (iOwnsBuffer) + { + free(iDataPtr); + } } -gint QTMSMemBuffer::Create(guint size, QTMSBuffer*& qbuffer, - TMS::TMSBuffer*& tmsbuffer) +gint QTMSMemBuffer::Create(QTMSBuffer*& buffer, TMS::TMSBuffer*& tmsbuffer) { + gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY); TRACE_PRN_FN_ENT; - gint ret(TMS_RESULT_INSUFFICIENT_MEMORY); QTMSMemBuffer* self = new QTMSMemBuffer(); if (self) { - ret = self->PostConstruct(); - if (ret != TMS_RESULT_SUCCESS) - { - delete self; - self = NULL; - } - self->iBuffer = tmsbuffer; + self->iTmsBuffer = tmsbuffer; + tmsbuffer->GetDataPtr(self->iDataPtr); + tmsbuffer->GetDataSize(self->iBufferSize); + tmsbuffer->GetTimeStamp(self->iTimeStamp); + self->iOwnsBuffer = FALSE; } - qbuffer = self; + buffer = self; TRACE_PRN_FN_EXT; return ret; } -gint QTMSMemBuffer::PostConstruct() - { - gint ret(TMS_RESULT_SUCCESS); - return ret; - } - gint QTMSMemBuffer::GetType(QTMSBufferType& buffertype) { - gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); - if (iBuffer) - { - ret = iBuffer->GetType(buffertype); - } + gint ret(TMS_RESULT_SUCCESS); + buffertype = QTMS_BUFFER_MEMORY; return ret; } @@ -79,11 +72,8 @@ */ gint QTMSMemBuffer::GetTimeStamp(guint64& ts) { - gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); - if (iBuffer) - { - ret = iBuffer->GetTimeStamp(ts); - } + gint ret(QTMS_RESULT_SUCCESS); + ts = iTimeStamp; return ret; } @@ -97,11 +87,9 @@ */ gint QTMSMemBuffer::SetTimeStamp(const guint64 ts) { - gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); - if (iBuffer) - { - ret = iBuffer->SetTimeStamp(ts); - } + gint ret(QTMS_RESULT_SUCCESS); + iTimeStamp = ts; + ret = iTmsBuffer->SetTimeStamp(ts); return ret; } @@ -113,11 +101,8 @@ */ gint QTMSMemBuffer::GetDataSize(guint& size) { - gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); - if (iBuffer) - { - ret = iBuffer->GetDataSize(size); - } + gint ret(QTMS_RESULT_SUCCESS); + size = iBufferSize; return ret; } @@ -129,11 +114,9 @@ */ gint QTMSMemBuffer::SetDataSize(const guint size) { - gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); - if (iBuffer) - { - ret = iBuffer->SetDataSize(size); - } + gint ret(QTMS_RESULT_SUCCESS); + ret = iTmsBuffer->SetDataSize(size); + iBufferSize = size; //TODO: should realloc when new size > old size (?) return ret; } @@ -146,10 +129,8 @@ */ gint QTMSMemBuffer::GetDataPtr(guint8*& bufptr) { - gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); - if (iBuffer) - { - ret = iBuffer->GetDataPtr(bufptr); - } + gint ret(QTMS_RESULT_SUCCESS); + bufptr = iDataPtr; return ret; } +