5 #ifndef ctrlplane_db_table_partition_h
6 #define ctrlplane_db_table_partition_h
8 #include <boost/intrusive/list.hpp>
9 #include <tbb/spin_rw_mutex.h>
10 #include <tbb/mutex.h>
22 boost::intrusive::list_member_hook<>,
25 typedef boost::intrusive::list<DBEntryBase, ChangeListMember>
ChangeList;
68 typedef boost::intrusive::member_hook<
DBEntry,
69 boost::intrusive::set_member_hook<>,
71 typedef boost::intrusive::set<DBEntry, SetMember>
Tree;
DBEntry * FindInternal(const DBEntry *entry)
DISALLOW_COPY_AND_ASSIGN(DBTablePartBase)
DBTablePartition(DBTable *parent, int index)
void Process(DBClient *client, DBRequest *req)
tbb::spin_rw_mutex & dbstate_mutex()
DBEntry * FindNoLock(const DBEntry *entry)
virtual DBEntryBase * GetFirst()=0
boost::intrusive::member_hook< DBEntryBase, boost::intrusive::list_member_hook<>,&DBEntryBase::chg_list_ > ChangeListMember
virtual ~DBTablePartBase()
DBEntry * Find(const DBEntry *entry)
virtual DBEntry * GetNext(const DBEntryBase *entry)
boost::intrusive::list< DBEntryBase, ChangeListMember > ChangeList
tbb::spin_rw_mutex dbstate_mutex_
virtual DBEntryBase * GetNext(const DBEntryBase *)=0
DISALLOW_COPY_AND_ASSIGN(DBTablePartition)
void Delete(DBEntryBase *)
virtual void Change(DBEntry *entry)
DBEntry * FindNext(const DBRequestKey *key)
boost::intrusive::set_member_hook node_
boost::intrusive::list_member_hook chg_list_
boost::intrusive::member_hook< DBEntry, boost::intrusive::set_member_hook<>,&DBEntry::node_ > SetMember
virtual DBEntryBase * lower_bound(const DBEntryBase *key)=0
void RemoveWithoutDelete(DBEntry *entry)
virtual DBEntry * lower_bound(const DBEntryBase *entry)
DBTablePartBase(DBTableBase *tbl_base, int index)
virtual void Process(DBClient *client, DBRequest *req)=0
void AddWithoutAlloc(DBEntry *entry)
virtual DBEntry * GetFirst()
virtual void Add(DBEntry *entry)
void Notify(DBEntryBase *entry)
boost::intrusive::set< DBEntry, SetMember > Tree
static const int kMaxIterations
virtual void Remove(DBEntryBase *entry)
virtual void Remove(DBEntryBase *)=0