5 #ifndef ctrlplane_db_entry_h
6 #define ctrlplane_db_entry_h
10 #include <tbb/atomic.h>
14 #include <boost/intrusive/list.hpp>
15 #include <boost/intrusive/set.hpp>
25 typedef std::unique_ptr<DBRequestKey>
KeyPtr;
83 typedef std::map<ListenerId, DBState *>
StateMap;
114 boost::intrusive::set_member_hook<>
node_;
virtual std::string ToString() const =0
DISALLOW_COPY_AND_ASSIGN(DBEntryBase)
std::unique_ptr< DBRequestKey > KeyPtr
const std::string last_change_at_str() const
DBState * GetState(DBTableBase *tbl_base, ListenerId listener) const
DBTableBase * get_table() const
const uint64_t last_update_at() const
DBTableBase::ListenerId ListenerId
boost::intrusive::list_member_hook chg_list_
bool is_state_empty_unlocked(DBTablePartBase *tpart)
void set_last_update_at(uint64_t time)
virtual bool IsLessSpecific(const std::string &match) const
void ClearState(DBTableBase *tbl_base, ListenerId listener)
virtual bool IsMoreSpecific(const std::string &match) const
std::map< ListenerId, DBState * > StateMap
void set_last_update_at_to_now()
const uint64_t last_change_at() const
bool is_state_empty(DBTablePartBase *tpart)
virtual KeyPtr GetDBRequestKey() const =0
DBTablePartBase * get_table_partition() const
void set_last_change_at(uint64_t time)
tbb::atomic< bool > onremoveq_
void set_last_change_at_to_now()
void set_table_partition(DBTablePartBase *tpart)
void SetState(DBTableBase *tbl_base, ListenerId listener, DBState *state)
boost::intrusive::set_member_hook node_
virtual void SetKey(const DBRequestKey *key)=0
DISALLOW_COPY_AND_ASSIGN(DBEntry)
bool operator<(const DBEntry &rhs) const
virtual bool IsLess(const DBEntry &rhs) const =0