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;
29 virtual std::string
ToString()
const = 0;
83 typedef std::map<ListenerId, DBState *>
StateMap;
114 boost::intrusive::set_member_hook<>
node_;
void set_last_update_at(uint64_t time)
void set_last_update_at_to_now()
DBState * GetState(DBTableBase *tbl_base, ListenerId listener) const
DBTableBase * get_table() const
void set_last_change_at_to_now()
void SetState(DBTableBase *tbl_base, ListenerId listener, DBState *state)
virtual bool IsLessSpecific(const std::string &match) const
const std::string last_change_at_str() const
std::unique_ptr< DBRequestKey > KeyPtr
const uint64_t last_change_at() const
const uint64_t last_update_at() const
boost::intrusive::set_member_hook node_
boost::intrusive::list_member_hook chg_list_
std::map< ListenerId, DBState * > StateMap
tbb::atomic< bool > onremoveq_
void set_table_partition(DBTablePartBase *tpart)
bool is_state_empty(DBTablePartBase *tpart)
virtual std::string ToString() const =0
DISALLOW_COPY_AND_ASSIGN(DBEntryBase)
virtual void SetKey(const DBRequestKey *key)=0
DISALLOW_COPY_AND_ASSIGN(DBEntry)
void ClearState(DBTableBase *tbl_base, ListenerId listener)
virtual KeyPtr GetDBRequestKey() const =0
bool is_state_empty_unlocked(DBTablePartBase *tpart)
virtual bool IsLess(const DBEntry &rhs) const =0
bool operator<(const DBEntry &rhs) const
void set_last_change_at(uint64_t time)
DBTablePartBase * get_table_partition() const
virtual bool IsMoreSpecific(const std::string &match) const
DBTableBase::ListenerId ListenerId