OpenSDN source code
TraceBuffer< TraceEntryT > Class Template Reference

#include <trace.h>

Collaboration diagram for TraceBuffer< TraceEntryT >:

Public Member Functions

 TraceBuffer (const std::string &buf_name, size_t size, bool trace_enable)
 
 ~TraceBuffer ()
 
std::string Name ()
 
void TraceOn ()
 
void TraceOff ()
 
bool IsTraceOn ()
 
size_t TraceBufSizeGet ()
 
size_t TraceBufCapacityGet ()
 
void TraceBufCapacityReset (size_t size)
 
void TraceWrite (TraceEntryT *trace_entry)
 
uint32_t GetNextSeqNum ()
 
void TraceRead (const std::string &context, const int count, boost::function< void(TraceEntryT *, bool)> cb)
 
void TraceReadDone (const std::string &context)
 

Private Types

typedef boost::ptr_circular_buffer< TraceEntryT > ContainerType
 
typedef std::map< const std::string, boost::shared_ptr< size_t > > ReadContextMap
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (TraceBuffer)
 

Private Attributes

std::string trace_buf_name_
 
size_t trace_buf_size_
 
ContainerType trace_buf_
 
tbb::atomic< bool > trace_enable_
 
size_t write_index_
 
size_t read_index_
 
bool wrap_
 
ReadContextMap read_context_map_
 
tbb::atomic< uint32_t > seqno_
 
tbb::mutex mutex_
 

Static Private Attributes

static const uint32_t kMaxSeqno = ((2 ^ 32) - 1) - 1
 
static const uint32_t kMinSeqno = 1
 

Detailed Description

template<typename TraceEntryT>
class TraceBuffer< TraceEntryT >

Definition at line 19 of file trace.h.

Member Typedef Documentation

◆ ContainerType

template<typename TraceEntryT >
typedef boost::ptr_circular_buffer<TraceEntryT> TraceBuffer< TraceEntryT >::ContainerType
private

Definition at line 167 of file trace.h.

◆ ReadContextMap

template<typename TraceEntryT >
typedef std::map<const std::string, boost::shared_ptr<size_t> > TraceBuffer< TraceEntryT >::ReadContextMap
private

Definition at line 169 of file trace.h.

Constructor & Destructor Documentation

◆ TraceBuffer()

template<typename TraceEntryT >
TraceBuffer< TraceEntryT >::TraceBuffer ( const std::string &  buf_name,
size_t  size,
bool  trace_enable 
)
inline

Definition at line 21 of file trace.h.

◆ ~TraceBuffer()

template<typename TraceEntryT >
TraceBuffer< TraceEntryT >::~TraceBuffer ( )
inline

Definition at line 32 of file trace.h.

Member Function Documentation

◆ DISALLOW_COPY_AND_ASSIGN()

template<typename TraceEntryT >
TraceBuffer< TraceEntryT >::DISALLOW_COPY_AND_ASSIGN ( TraceBuffer< TraceEntryT >  )
private

◆ GetNextSeqNum()

template<typename TraceEntryT >
uint32_t TraceBuffer< TraceEntryT >::GetNextSeqNum ( )
inline

Definition at line 105 of file trace.h.

◆ IsTraceOn()

template<typename TraceEntryT >
bool TraceBuffer< TraceEntryT >::IsTraceOn ( )
inline

Definition at line 49 of file trace.h.

◆ Name()

template<typename TraceEntryT >
std::string TraceBuffer< TraceEntryT >::Name ( )
inline

Definition at line 37 of file trace.h.

◆ TraceBufCapacityGet()

template<typename TraceEntryT >
size_t TraceBuffer< TraceEntryT >::TraceBufCapacityGet ( )
inline

Definition at line 57 of file trace.h.

◆ TraceBufCapacityReset()

template<typename TraceEntryT >
void TraceBuffer< TraceEntryT >::TraceBufCapacityReset ( size_t  size)
inline

Definition at line 62 of file trace.h.

◆ TraceBufSizeGet()

template<typename TraceEntryT >
size_t TraceBuffer< TraceEntryT >::TraceBufSizeGet ( )
inline

Definition at line 53 of file trace.h.

◆ TraceOff()

template<typename TraceEntryT >
void TraceBuffer< TraceEntryT >::TraceOff ( )
inline

Definition at line 45 of file trace.h.

◆ TraceOn()

template<typename TraceEntryT >
void TraceBuffer< TraceEntryT >::TraceOn ( )
inline

Definition at line 41 of file trace.h.

◆ TraceRead()

template<typename TraceEntryT >
void TraceBuffer< TraceEntryT >::TraceRead ( const std::string &  context,
const int  count,
boost::function< void(TraceEntryT *, bool)>  cb 
)
inline

Definition at line 114 of file trace.h.

◆ TraceReadDone()

template<typename TraceEntryT >
void TraceBuffer< TraceEntryT >::TraceReadDone ( const std::string &  context)
inline

Definition at line 157 of file trace.h.

◆ TraceWrite()

template<typename TraceEntryT >
void TraceBuffer< TraceEntryT >::TraceWrite ( TraceEntryT *  trace_entry)
inline

Definition at line 67 of file trace.h.

Member Data Documentation

◆ kMaxSeqno

template<typename TraceEntryT >
const uint32_t TraceBuffer< TraceEntryT >::kMaxSeqno = ((2 ^ 32) - 1) - 1
staticprivate

Definition at line 185 of file trace.h.

◆ kMinSeqno

template<typename TraceEntryT >
const uint32_t TraceBuffer< TraceEntryT >::kMinSeqno = 1
staticprivate

Definition at line 186 of file trace.h.

◆ mutex_

template<typename TraceEntryT >
tbb::mutex TraceBuffer< TraceEntryT >::mutex_
private

Definition at line 182 of file trace.h.

◆ read_context_map_

template<typename TraceEntryT >
ReadContextMap TraceBuffer< TraceEntryT >::read_context_map_
private

Definition at line 180 of file trace.h.

◆ read_index_

template<typename TraceEntryT >
size_t TraceBuffer< TraceEntryT >::read_index_
private

Definition at line 177 of file trace.h.

◆ seqno_

template<typename TraceEntryT >
tbb::atomic<uint32_t> TraceBuffer< TraceEntryT >::seqno_
private

Definition at line 181 of file trace.h.

◆ trace_buf_

template<typename TraceEntryT >
ContainerType TraceBuffer< TraceEntryT >::trace_buf_
private

Definition at line 173 of file trace.h.

◆ trace_buf_name_

template<typename TraceEntryT >
std::string TraceBuffer< TraceEntryT >::trace_buf_name_
private

Definition at line 171 of file trace.h.

◆ trace_buf_size_

template<typename TraceEntryT >
size_t TraceBuffer< TraceEntryT >::trace_buf_size_
private

Definition at line 172 of file trace.h.

◆ trace_enable_

template<typename TraceEntryT >
tbb::atomic<bool> TraceBuffer< TraceEntryT >::trace_enable_
private

Definition at line 174 of file trace.h.

◆ wrap_

template<typename TraceEntryT >
bool TraceBuffer< TraceEntryT >::wrap_
private

Definition at line 179 of file trace.h.

◆ write_index_

template<typename TraceEntryT >
size_t TraceBuffer< TraceEntryT >::write_index_
private

Definition at line 175 of file trace.h.


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