OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sandesh_trace.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 //
6 // sandesh_trace.h
7 //
8 // Sandesh Trace APIs
9 //
10 
11 #ifndef __SANDESH_TRACE_H__
12 #define __SANDESH_TRACE_H__
13 
14 #include <base/trace.h>
15 #include <sandesh/sandesh_types.h>
16 #include <sandesh/sandesh.h>
17 
19 
20 typedef boost::shared_ptr<TraceBuffer<SandeshTrace> > SandeshTraceBufferPtr;
22 
23 inline void SandeshTraceEnable() {
25 }
26 
27 inline void SandeshTraceDisable() {
29 }
30 
31 inline bool IsSandeshTraceEnabled() {
33 }
34 
35 inline size_t SandeshTraceBufferCapacityGet(const std::string& buf_name) {
37 }
38 
40  const std::string& buf_name,
41  size_t buf_size) {
43  buf_name, buf_size);
44 }
45 
47  const std::string& buf_name,
48  size_t buf_size,
49  bool trace_enable = true) {
51  buf_name, buf_size, trace_enable);
52 }
53 
54 inline SandeshTraceBufferPtr SandeshTraceBufferGet(const std::string& buf_name) {
55  return TraceSandeshType::GetInstance()->TraceBufGet(buf_name);
56 }
57 
59  trace_buf->TraceOn();
60 }
61 
63  trace_buf->TraceOff();
64 }
65 
67  return trace_buf->IsTraceOn();
68 }
69 
71  return trace_buf->TraceBufSizeGet();
72 }
73 
75  const std::string& read_context, const int count,
76  boost::function<void (SandeshTrace *, bool)> cb) {
77  trace_buf->TraceRead(read_context, count, cb);
78 }
79 
81  const std::string& read_context) {
82  trace_buf->TraceReadDone(read_context);
83 }
84 
85 inline void SandeshTraceBufferListGet(std::vector<std::string>& trace_buf_list) {
87  trace_buf_list);
88 }
89 
90 /*
91  * Generator API to send the trace buffer to the Collector.
92  * trace_count limits the number of trace messages sent to the Collector.
93  * If trace count is not specified/or zero, then the entire trace buffer
94  * is sent to the Collector.
95  *
96  * [Note] No duplicate trace message sent to the Collector. i.e., If there is
97  * no trace message added between two consequent calls to this API, then no trace
98  * message is sent to the Collector.
99  */
100 void SandeshTraceSend(const std::string& buf_name, uint32_t trace_count = 0);
101 
102 #endif // __SANDESH_TRACE_H__
Trace< SandeshTrace > TraceSandeshType
Definition: sandesh_trace.h:21
void SandeshTraceBufferReadDone(SandeshTraceBufferPtr trace_buf, const std::string &read_context)
Definition: sandesh_trace.h:80
void TraceOn()
Definition: trace.h:231
void SandeshTraceBufferListGet(std::vector< std::string > &trace_buf_list)
Definition: sandesh_trace.h:85
bool IsTraceOn()
Definition: trace.h:239
bool IsSandeshTraceEnabled()
Definition: sandesh_trace.h:31
void TraceBufListGet(std::vector< std::string > &trace_buf_list)
Definition: trace.h:271
void TraceOff()
Definition: trace.h:235
boost::shared_ptr< TraceBuffer< TraceEntryT > > TraceBufGet(const std::string &buf_name)
Definition: trace.h:243
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
Definition: sandesh_trace.h:18
void SandeshTraceBufferRead(SandeshTraceBufferPtr trace_buf, const std::string &read_context, const int count, boost::function< void(SandeshTrace *, bool)> cb)
Definition: sandesh_trace.h:74
bool IsSandeshTraceBufferEnabled(SandeshTraceBufferPtr trace_buf)
Definition: sandesh_trace.h:66
boost::shared_ptr< TraceBuffer< TraceEntryT > > TraceBufCapacityReset(const std::string &buf_name, size_t size)
Definition: trace.h:291
SandeshTraceBufferPtr SandeshTraceBufferResetSize(const std::string &buf_name, size_t buf_size)
Definition: sandesh_trace.h:39
void SandeshTraceDisable()
Definition: sandesh_trace.h:27
Definition: trace.h:220
size_t SandeshTraceBufferSizeGet(SandeshTraceBufferPtr trace_buf)
Definition: sandesh_trace.h:70
static Trace * GetInstance()
Definition: trace.h:224
void SandeshTraceSend(const std::string &buf_name, uint32_t trace_count)
boost::shared_ptr< TraceBuffer< TraceEntryT > > TraceBufAdd(const std::string &buf_name, size_t size, bool trace_enable)
Definition: trace.h:253
void SandeshTraceBufferDisable(SandeshTraceBufferPtr trace_buf)
Definition: sandesh_trace.h:62
void SandeshTraceEnable()
Definition: sandesh_trace.h:23
void SandeshTraceBufferEnable(SandeshTraceBufferPtr trace_buf)
Definition: sandesh_trace.h:58
size_t SandeshTraceBufferCapacityGet(const std::string &buf_name)
Definition: sandesh_trace.h:35
SandeshTraceBufferPtr SandeshTraceBufferGet(const std::string &buf_name)
Definition: sandesh_trace.h:54
size_t TraceBufCapacityGet(const std::string &buf_name)
Definition: trace.h:279
SandeshTraceBufferPtr SandeshTraceBufferCreate(const std::string &buf_name, size_t buf_size, bool trace_enable=true)
Definition: sandesh_trace.h:46