OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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

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

Definition at line 167 of file trace.h.

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

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.

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

Definition at line 32 of file trace.h.

Member Function Documentation

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

Definition at line 105 of file trace.h.

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

Definition at line 49 of file trace.h.

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

Definition at line 37 of file trace.h.

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

Definition at line 57 of file trace.h.

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

Definition at line 62 of file trace.h.

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

Definition at line 53 of file trace.h.

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

Definition at line 45 of file trace.h.

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

Definition at line 41 of file trace.h.

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.

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

Definition at line 157 of file trace.h.

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

Definition at line 67 of file trace.h.

Member Data Documentation

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

Definition at line 185 of file trace.h.

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

Definition at line 186 of file trace.h.

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

Definition at line 182 of file trace.h.

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

Definition at line 180 of file trace.h.

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

Definition at line 177 of file trace.h.

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

Definition at line 181 of file trace.h.

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

Definition at line 173 of file trace.h.

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

Definition at line 171 of file trace.h.

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

Definition at line 172 of file trace.h.

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

Definition at line 174 of file trace.h.

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

Definition at line 179 of file trace.h.

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: