AcsLogServiceImpl::LogRecordBatch − |
#include <loggingAcsLogServiceImpl.h> |
Public Member Functions |
LogRecordBatch () |
~LogRecordBatch () |
void sendRecords () |
void add (const ::Logging::XmlLogRecordSeq *reclist) |
void set_logging_supplier (ACSStructuredPushSupplier *supplier) |
Static Public Member Functions |
static void * worker (void *) |
Private Member Functions |
void sendRecords (::Logging::XmlLogRecordSeq *reclist) |
int svc () |
Private Attributes |
::Logging::XmlLogRecordSeq * buffer_ |
::Logging::XmlLogRecordSeq buffer [3] |
volatile unsigned int size_ |
ACSStructuredPushSupplier * loggingSupplier_ |
ACE_SYNCH_MUTEX mutex_ |
ACE_SYNCH_MUTEX batchMutex_ |
ACE_SYNCH_CONDITION waitCond_ |
volatile bool shutdown_ |
int nBuff |
::Logging::XmlLogRecordSeq * tmpBuffer |
unsigned int tmpSize |
This class implements the functions necessary to send the log records in a batch through the logging Notification Channel. It implements the batch cache as triple buffer to improve the overall throughput of the service. This class uses a worker thread to dispatch the log records through the Notification Channel when buffer is full or each 1 second |
AcsLogServiceImpl::LogRecordBatch::LogRecordBatch () Initializes the buffers and the worker thread |
AcsLogServiceImpl::LogRecordBatch::~LogRecordBatch () Stop the worker thread |
void AcsLogServiceImpl::LogRecordBatch::add (const ::Logging::XmlLogRecordSeq * reclist) Add log records to the buffer, if the buffer is full will dispatch to the worker thread to send the records through NC |
void AcsLogServiceImpl::LogRecordBatch::sendRecords (::Logging::XmlLogRecordSeq * reclist) [private] Send the records through the Notification Channel |
void AcsLogServiceImpl::LogRecordBatch::sendRecords () Function used by the thread to send the log records to the NC |
void AcsLogServiceImpl::LogRecordBatch::set_logging_supplier (ACSStructuredPushSupplier * supplier) |
int AcsLogServiceImpl::LogRecordBatch::svc () [private] Entry point for worker thread |
static void* AcsLogServiceImpl::LogRecordBatch::worker (void *) [static] function to initilizate the thread |
ACE_SYNCH_MUTEX AcsLogServiceImpl::LogRecordBatch::batchMutex_ [private] mutex used to protect the batch |
::Logging::XmlLogRecordSeq AcsLogServiceImpl::LogRecordBatch::buffer[3] [private] triple buffer |
::Logging::XmlLogRecordSeq* AcsLogServiceImpl::LogRecordBatch::buffer_ [private] reference to the current buffer in use |
ACSStructuredPushSupplier* AcsLogServiceImpl::LogRecordBatch::loggingSupplier_ [private] |
ACE_SYNCH_MUTEX AcsLogServiceImpl::LogRecordBatch::mutex_ [private] mutex used by the wait condition |
int AcsLogServiceImpl::LogRecordBatch::nBuff [private] number of the current buffer in use |
volatile bool AcsLogServiceImpl::LogRecordBatch::shutdown_ [private] |
volatile unsigned int AcsLogServiceImpl::LogRecordBatch::size_ [private] current size of the batch |
::Logging::XmlLogRecordSeq* AcsLogServiceImpl::LogRecordBatch::tmpBuffer [private] Internal usage |
unsigned int AcsLogServiceImpl::LogRecordBatch::tmpSize [private] Internal usage |
ACE_SYNCH_CONDITION AcsLogServiceImpl::LogRecordBatch::waitCond_ [private] |
Generated automatically by Doxygen for ACS-2015.2 C++ API from the source code. |