5 #ifndef ctrlplane_ksync_entry_h
6 #define ctrlplane_ksync_entry_h
8 #include <boost/intrusive_ptr.hpp>
9 #include <boost/intrusive/set.hpp>
10 #include <tbb/atomic.h>
11 #include <sandesh/common/vns_constants.h>
12 #include <sandesh/common/vns_types.h>
13 #include <sandesh/sandesh_trace.h>
16 #define KSYNC_ERROR(obj, ...)\
18 if (LoggingDisabled()) break;\
19 obj::Send(g_vns_constants.CategoryNames.find(Category::VROUTER)->second,\
20 SandeshLevel::SYS_DEBUG, __FILE__, __LINE__, ##__VA_ARGS__);\
24 #define KSYNC_ERROR_TRACE(obj, ...) \
26 KSyncError##obj::TraceMsg(KSyncErrorTraceBuf, \
27 __FILE__, __LINE__, __VA_ARGS__); \
103 virtual std::string
ToString()
const = 0;
108 virtual bool Add() = 0;
113 virtual bool Change() = 0;
118 virtual bool Delete() = 0;
188 boost::intrusive::set_member_hook<>
node_;
213 for (
int i = 0; i <
size_; i++) {
263 #endif // ctrlplane_ksync_entry_h
std::string AckOperationString(KSyncEvent ack_event) const
KSyncEntry(uint32_t index)
friend void intrusive_ptr_release(KSyncEntry *p)
virtual bool IsLess(const KSyncEntry &rhs) const =0
DupEntryList dup_entry_list_
uint32_t GetRefCount() const
virtual void StaleTimerExpired()
virtual bool IsDataResolved()
std::list< DBEntry * > DupEntryList
friend void intrusive_ptr_add_ref(KSyncEntry *p)
void SetIndex(size_t index)
virtual bool pre_alloc_rx_buffer() const
std::string StateString() const
bool operator<(const KSyncEntry &rhs) const
KSyncEntryTransHistory t_history_
KSyncDBEntry(uint32_t index)
bool del_add_pending() const
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
void set_del_add_pending(bool pending)
static const int kDefaultMsgSize
DISALLOW_COPY_AND_ASSIGN(KSyncDBEntry)
void SetState(KSyncState state)
boost::intrusive::set_member_hook node_
tbb::atomic< int > refcount_
boost::intrusive_ptr< KSyncEntry > KSyncEntryPtr
virtual KSyncObject * GetObject() const =0
virtual bool AllowDeleteStateComp()
KSyncState GetState() const
virtual bool ShouldReEvalBackReference() const
static const size_t kInvalidIndex
virtual std::string VrouterError(uint32_t error) const
SandeshTraceBufferPtr KSyncErrorTraceBuf
std::string EventString(KSyncEvent event) const
DISALLOW_COPY_AND_ASSIGN(KSyncEntry)
static std::string VrouterErrorToString(uint32_t error)
virtual uint32_t GetTableIndex() const
virtual bool Sync(DBEntry *entry)=0
void RecordTransition(KSyncState from, KSyncState to, KSyncEvent event)
virtual void ErrorHandler(int err, uint32_t seqno, KSyncEvent event) const
virtual std::string ToString() const =0
struct KSyncEntryTransition history_[size_]
virtual KSyncEntry * UnresolvedReference()=0
void RecordTransition(KSyncState from, KSyncState to, KSyncEvent event)
void Reset(uint32_t index)
void SetDBEntry(DBEntry *db_entry)