TwiceAsNice  2019-02-18
Public Member Functions | Private Attributes | List of all members
CCircularBuffer Class Reference

#include <CircularBuffer.h>

Collaboration diagram for CCircularBuffer:
Collaboration graph

Public Member Functions

 CCircularBuffer (int id=0)
 
virtual ~CCircularBuffer (void)
 
void Initialize (void *pCircularBuffer, int elementSize, int numElements)
 
void Initialize (int elementSize, int numElements)
 
void CleanUp ()
 
void SetReadPositionReference (tCircularBufferPositionReference ref)
 
void SetReadOffset (int offset)
 
int GetCurrentReadPosition ()
 
void SetWritePositionReference (tCircularBufferPositionReference ref)
 
void SetWriteOffset (int offset)
 
int GetCurrentWritePosition ()
 
bool WriteData (int numElements, void *pBuffer, int timeout, ICircularBufferDataAccessor *pDataAccess=NULL)
 
bool BeginWriteData (int numElements, void *pBuffer, int timeout, ICircularBufferDataAccessor *pDataAccess=NULL)
 
bool EndWriteData (int actualElements)
 
bool ReadData (int numElements, void *pBuffer, int timeout, ICircularBufferDataAccessor *pDataAccess=NULL)
 
bool BeginReadData (int numElements, void *pBuffer, int timeout, ICircularBufferDataAccessor *pDataAccess=NULL)
 
bool EndReadData (int actualElements)
 
int ReadAvailableData (int numElements, void *pBuffer, int timeout, ICircularBufferDataAccessor *pDataAccess=NULL)
 
int ReadUntilTermination (int numElements, void *pBuffer, int timeout, const char *termStr, ICircularBufferDataAccessor *pDataAccess=NULL)
 
void * PeekElement (int offset)
 
int GetNumberOfEmptyElements ()
 
int GetNumberOfStoredElements ()
 
int GetTotalNumberOfWrittenElements ()
 
int GetTotalNumberOfReadElements ()
 
int GetNumberOfAvailableReadElements (int absoluteWritePosition=-1)
 
int GetNumberOfAvailableWriteElements (int absoluteReadPosition=-1)
 
int GetNumberOfReadElements (int absoluteReadPos, int absoluteWritePos)
 
int GetNumberOfWriteElements (int absoluteWritePos, int absoluteReadPos)
 
int GetAbsoluteReadPosition (int absoluteWritePos, int offset)
 
int GetAbsoluteWritePosition (int absoluteReadPos)
 
void SetWriteOverRun (bool writeOverRun)
 
void SetReadUnderRun (bool writeOverRun)
 
int GetId ()
 
bool Abort ()
 
bool Clear ()
 
 CCircularBuffer (int id=0)
 
virtual ~CCircularBuffer (void)
 
void Initialize (void *pCircularBuffer, int elementSize, int numElements)
 
void Initialize (int elementSize, int numElements)
 
void CleanUp ()
 
void SetReadPositionReference (tCircularBufferPositionReference ref)
 
void SetReadOffset (int offset)
 
int GetCurrentReadPosition ()
 
void SetWritePositionReference (tCircularBufferPositionReference ref)
 
void SetWriteOffset (int offset)
 
int GetCurrentWritePosition ()
 
bool WriteData (int numElements, void *pBuffer, int timeout, ICircularBufferDataAccessor *pDataAccess=NULL)
 
bool BeginWriteData (int numElements, void *pBuffer, int timeout, ICircularBufferDataAccessor *pDataAccess=NULL)
 
bool EndWriteData (int actualElements)
 
bool ReadData (int numElements, void *pBuffer, int timeout, ICircularBufferDataAccessor *pDataAccess=NULL)
 
bool BeginReadData (int numElements, void *pBuffer, int timeout, ICircularBufferDataAccessor *pDataAccess=NULL)
 
bool EndReadData (int actualElements)
 
int ReadAvailableData (int numElements, void *pBuffer, int timeout, ICircularBufferDataAccessor *pDataAccess=NULL)
 
int ReadUntilTermination (int numElements, void *pBuffer, int timeout, const char *termStr, ICircularBufferDataAccessor *pDataAccess=NULL)
 
void * PeekElement (int offset)
 
int GetNumberOfEmptyElements ()
 
int GetNumberOfStoredElements ()
 
int GetTotalNumberOfWrittenElements ()
 
int GetTotalNumberOfReadElements ()
 
int GetNumberOfAvailableReadElements (int absoluteWritePosition=-1)
 
int GetNumberOfAvailableWriteElements (int absoluteReadPosition=-1)
 
int GetNumberOfReadElements (int absoluteReadPos, int absoluteWritePos)
 
int GetNumberOfWriteElements (int absoluteWritePos, int absoluteReadPos)
 
int GetAbsoluteReadPosition (int absoluteWritePos, int offset)
 
int GetAbsoluteWritePosition (int absoluteReadPos)
 
void SetWriteOverRun (bool writeOverRun)
 
void SetReadUnderRun (bool writeOverRun)
 
int GetId ()
 
bool Abort ()
 
bool Clear ()
 

Private Attributes

CCircularBufferDefaultDataAccessor m_DefaultAccessor
 
unsigned char * m_pBuffer
 
unsigned char * m_pInternalBuffer
 
int m_ElementSize
 
int m_NumElements
 
int m_CurrentWritePosition
 
int m_CurrentReadPosition
 
int m_AccumulatedElementsRead
 
int m_AccumulatedElementsWritten
 
CCriticalSection m_Lock
 
CEvent m_WaitForDataEvent
 
CEvent m_WaitForRoomEvent
 
bool m_bAbort
 
int m_Id
 
tCircularBufferPositionReference m_ReadReference
 
int m_ReadOffset
 
tCircularBufferPositionReference m_WriteReference
 
int m_WriteOffset
 
bool m_WriteOverRun
 
bool m_ReadUnderRun
 

Constructor & Destructor Documentation

◆ CCircularBuffer() [1/2]

CCircularBuffer::CCircularBuffer ( int  id = 0)

◆ ~CCircularBuffer() [1/2]

CCircularBuffer::~CCircularBuffer ( void  )
virtual

◆ CCircularBuffer() [2/2]

CCircularBuffer::CCircularBuffer ( int  id = 0)

◆ ~CCircularBuffer() [2/2]

virtual CCircularBuffer::~CCircularBuffer ( void  )
virtual

Member Function Documentation

◆ Abort() [1/2]

bool CCircularBuffer::Abort ( )

◆ Abort() [2/2]

bool CCircularBuffer::Abort ( )

◆ BeginReadData() [1/2]

bool CCircularBuffer::BeginReadData ( int  numElements,
void *  pBuffer,
int  timeout,
ICircularBufferDataAccessor pDataAccess = NULL 
)

◆ BeginReadData() [2/2]

bool CCircularBuffer::BeginReadData ( int  numElements,
void *  pBuffer,
int  timeout,
ICircularBufferDataAccessor pDataAccess = NULL 
)

◆ BeginWriteData() [1/2]

bool CCircularBuffer::BeginWriteData ( int  numElements,
void *  pBuffer,
int  timeout,
ICircularBufferDataAccessor pDataAccess = NULL 
)

◆ BeginWriteData() [2/2]

bool CCircularBuffer::BeginWriteData ( int  numElements,
void *  pBuffer,
int  timeout,
ICircularBufferDataAccessor pDataAccess = NULL 
)

◆ CleanUp() [1/2]

void CCircularBuffer::CleanUp ( )

◆ CleanUp() [2/2]

void CCircularBuffer::CleanUp ( )

◆ Clear() [1/2]

bool CCircularBuffer::Clear ( )

◆ Clear() [2/2]

bool CCircularBuffer::Clear ( )

◆ EndReadData() [1/2]

bool CCircularBuffer::EndReadData ( int  actualElements)

◆ EndReadData() [2/2]

bool CCircularBuffer::EndReadData ( int  actualElements)

◆ EndWriteData() [1/2]

bool CCircularBuffer::EndWriteData ( int  actualElements)

◆ EndWriteData() [2/2]

bool CCircularBuffer::EndWriteData ( int  actualElements)

◆ GetAbsoluteReadPosition() [1/2]

int CCircularBuffer::GetAbsoluteReadPosition ( int  absoluteWritePos,
int  offset 
)

◆ GetAbsoluteReadPosition() [2/2]

int CCircularBuffer::GetAbsoluteReadPosition ( int  absoluteWritePos,
int  offset 
)

◆ GetAbsoluteWritePosition() [1/2]

int CCircularBuffer::GetAbsoluteWritePosition ( int  absoluteReadPos)

◆ GetAbsoluteWritePosition() [2/2]

int CCircularBuffer::GetAbsoluteWritePosition ( int  absoluteReadPos)

◆ GetCurrentReadPosition() [1/2]

int CCircularBuffer::GetCurrentReadPosition ( )

◆ GetCurrentReadPosition() [2/2]

int CCircularBuffer::GetCurrentReadPosition ( )

◆ GetCurrentWritePosition() [1/2]

int CCircularBuffer::GetCurrentWritePosition ( )

◆ GetCurrentWritePosition() [2/2]

int CCircularBuffer::GetCurrentWritePosition ( )

◆ GetId() [1/2]

int CCircularBuffer::GetId ( )

◆ GetId() [2/2]

int CCircularBuffer::GetId ( )

◆ GetNumberOfAvailableReadElements() [1/2]

int CCircularBuffer::GetNumberOfAvailableReadElements ( int  absoluteWritePosition = -1)

◆ GetNumberOfAvailableReadElements() [2/2]

int CCircularBuffer::GetNumberOfAvailableReadElements ( int  absoluteWritePosition = -1)

◆ GetNumberOfAvailableWriteElements() [1/2]

int CCircularBuffer::GetNumberOfAvailableWriteElements ( int  absoluteReadPosition = -1)

◆ GetNumberOfAvailableWriteElements() [2/2]

int CCircularBuffer::GetNumberOfAvailableWriteElements ( int  absoluteReadPosition = -1)

◆ GetNumberOfEmptyElements() [1/2]

int CCircularBuffer::GetNumberOfEmptyElements ( )

◆ GetNumberOfEmptyElements() [2/2]

int CCircularBuffer::GetNumberOfEmptyElements ( )

◆ GetNumberOfReadElements() [1/2]

int CCircularBuffer::GetNumberOfReadElements ( int  absoluteReadPos,
int  absoluteWritePos 
)

◆ GetNumberOfReadElements() [2/2]

int CCircularBuffer::GetNumberOfReadElements ( int  absoluteReadPos,
int  absoluteWritePos 
)

◆ GetNumberOfStoredElements() [1/2]

int CCircularBuffer::GetNumberOfStoredElements ( )

◆ GetNumberOfStoredElements() [2/2]

int CCircularBuffer::GetNumberOfStoredElements ( )

◆ GetNumberOfWriteElements() [1/2]

int CCircularBuffer::GetNumberOfWriteElements ( int  absoluteWritePos,
int  absoluteReadPos 
)

◆ GetNumberOfWriteElements() [2/2]

int CCircularBuffer::GetNumberOfWriteElements ( int  absoluteWritePos,
int  absoluteReadPos 
)

◆ GetTotalNumberOfReadElements() [1/2]

int CCircularBuffer::GetTotalNumberOfReadElements ( )

◆ GetTotalNumberOfReadElements() [2/2]

int CCircularBuffer::GetTotalNumberOfReadElements ( )

◆ GetTotalNumberOfWrittenElements() [1/2]

int CCircularBuffer::GetTotalNumberOfWrittenElements ( )

◆ GetTotalNumberOfWrittenElements() [2/2]

int CCircularBuffer::GetTotalNumberOfWrittenElements ( )

◆ Initialize() [1/4]

void CCircularBuffer::Initialize ( void *  pCircularBuffer,
int  elementSize,
int  numElements 
)

◆ Initialize() [2/4]

void CCircularBuffer::Initialize ( void *  pCircularBuffer,
int  elementSize,
int  numElements 
)

◆ Initialize() [3/4]

void CCircularBuffer::Initialize ( int  elementSize,
int  numElements 
)

◆ Initialize() [4/4]

void CCircularBuffer::Initialize ( int  elementSize,
int  numElements 
)

◆ PeekElement() [1/2]

void* CCircularBuffer::PeekElement ( int  offset)

◆ PeekElement() [2/2]

void * CCircularBuffer::PeekElement ( int  offset)

◆ ReadAvailableData() [1/2]

int CCircularBuffer::ReadAvailableData ( int  numElements,
void *  pBuffer,
int  timeout,
ICircularBufferDataAccessor pDataAccess = NULL 
)

◆ ReadAvailableData() [2/2]

int CCircularBuffer::ReadAvailableData ( int  numElements,
void *  pBuffer,
int  timeout,
ICircularBufferDataAccessor pDataAccess = NULL 
)

◆ ReadData() [1/2]

bool CCircularBuffer::ReadData ( int  numElements,
void *  pBuffer,
int  timeout,
ICircularBufferDataAccessor pDataAccess = NULL 
)

◆ ReadData() [2/2]

bool CCircularBuffer::ReadData ( int  numElements,
void *  pBuffer,
int  timeout,
ICircularBufferDataAccessor pDataAccess = NULL 
)

◆ ReadUntilTermination() [1/2]

int CCircularBuffer::ReadUntilTermination ( int  numElements,
void *  pBuffer,
int  timeout,
const char *  termStr,
ICircularBufferDataAccessor pDataAccess = NULL 
)

◆ ReadUntilTermination() [2/2]

int CCircularBuffer::ReadUntilTermination ( int  numElements,
void *  pBuffer,
int  timeout,
const char *  termStr,
ICircularBufferDataAccessor pDataAccess = NULL 
)

◆ SetReadOffset() [1/2]

void CCircularBuffer::SetReadOffset ( int  offset)

◆ SetReadOffset() [2/2]

void CCircularBuffer::SetReadOffset ( int  offset)

◆ SetReadPositionReference() [1/2]

void CCircularBuffer::SetReadPositionReference ( tCircularBufferPositionReference  ref)

◆ SetReadPositionReference() [2/2]

void CCircularBuffer::SetReadPositionReference ( tCircularBufferPositionReference  ref)

◆ SetReadUnderRun() [1/2]

void CCircularBuffer::SetReadUnderRun ( bool  writeOverRun)

◆ SetReadUnderRun() [2/2]

void CCircularBuffer::SetReadUnderRun ( bool  writeOverRun)

◆ SetWriteOffset() [1/2]

void CCircularBuffer::SetWriteOffset ( int  offset)

◆ SetWriteOffset() [2/2]

void CCircularBuffer::SetWriteOffset ( int  offset)

◆ SetWriteOverRun() [1/2]

void CCircularBuffer::SetWriteOverRun ( bool  writeOverRun)

◆ SetWriteOverRun() [2/2]

void CCircularBuffer::SetWriteOverRun ( bool  writeOverRun)

◆ SetWritePositionReference() [1/2]

void CCircularBuffer::SetWritePositionReference ( tCircularBufferPositionReference  ref)

◆ SetWritePositionReference() [2/2]

void CCircularBuffer::SetWritePositionReference ( tCircularBufferPositionReference  ref)

◆ WriteData() [1/2]

bool CCircularBuffer::WriteData ( int  numElements,
void *  pBuffer,
int  timeout,
ICircularBufferDataAccessor pDataAccess = NULL 
)

◆ WriteData() [2/2]

bool CCircularBuffer::WriteData ( int  numElements,
void *  pBuffer,
int  timeout,
ICircularBufferDataAccessor pDataAccess = NULL 
)

Member Data Documentation

◆ m_AccumulatedElementsRead

int CCircularBuffer::m_AccumulatedElementsRead
private

◆ m_AccumulatedElementsWritten

int CCircularBuffer::m_AccumulatedElementsWritten
private

◆ m_bAbort

bool CCircularBuffer::m_bAbort
private

◆ m_CurrentReadPosition

int CCircularBuffer::m_CurrentReadPosition
private

◆ m_CurrentWritePosition

int CCircularBuffer::m_CurrentWritePosition
private

◆ m_DefaultAccessor

CCircularBufferDefaultDataAccessor CCircularBuffer::m_DefaultAccessor
private

◆ m_ElementSize

int CCircularBuffer::m_ElementSize
private

◆ m_Id

int CCircularBuffer::m_Id
private

◆ m_Lock

CCriticalSection CCircularBuffer::m_Lock
private

◆ m_NumElements

int CCircularBuffer::m_NumElements
private

◆ m_pBuffer

unsigned char * CCircularBuffer::m_pBuffer
private

◆ m_pInternalBuffer

unsigned char * CCircularBuffer::m_pInternalBuffer
private

◆ m_ReadOffset

int CCircularBuffer::m_ReadOffset
private

◆ m_ReadReference

tCircularBufferPositionReference CCircularBuffer::m_ReadReference
private

◆ m_ReadUnderRun

bool CCircularBuffer::m_ReadUnderRun
private

◆ m_WaitForDataEvent

CEvent CCircularBuffer::m_WaitForDataEvent
private

◆ m_WaitForRoomEvent

CEvent CCircularBuffer::m_WaitForRoomEvent
private

◆ m_WriteOffset

int CCircularBuffer::m_WriteOffset
private

◆ m_WriteOverRun

bool CCircularBuffer::m_WriteOverRun
private

◆ m_WriteReference

tCircularBufferPositionReference CCircularBuffer::m_WriteReference
private

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