5 #ifndef ctrlplane_db_table_walk_mgr_h
6 #define ctrlplane_db_table_walk_mgr_h
11 #include <boost/assign.hpp>
12 #include <boost/function.hpp>
13 #include <boost/scoped_ptr.hpp>
14 #include <boost/shared_ptr.hpp>
16 #include <tbb/mutex.h>
void DisableWalkDoneTrigger()
std::set< WalkRequestInfo *, WalkRequestCompare > WalkRequestInfoSet
WalkRequestInfoSet walk_request_set_
void ReleaseWalker(DBTable::DBTableWalkRef &walk)
DBTable::DBTableWalkRef AllocWalker(DBTable *table, DBTable::WalkFn walk_fn, DBTable::WalkCompleteFn walk_complete)
void EnableWalkDoneTrigger()
boost::scoped_ptr< TaskTrigger > walk_request_trigger_
std::set< DBTable::DBTableWalkRef > WalkReqList
void EnableWalkProcessing()
std::list< WalkRequestInfoPtr > WalkRequestInfoList
void WalkTable(DBTable::DBTableWalkRef walk)
void DisableWalkProcessing()
boost::scoped_ptr< TaskTrigger > walk_done_trigger_
WalkReqList current_table_walk_
bool InvokeWalkCb(DBTablePartBase *part, DBEntryBase *entry)
bool ProcessWalkRequestList()
DISALLOW_COPY_AND_ASSIGN(DBTableWalkMgr)
void WalkAgain(DBTable::DBTableWalkRef walk)
WalkRequestInfoList walk_request_list_
boost::shared_ptr< WalkRequestInfo > WalkRequestInfoPtr
boost::function< void(DBTableWalkRef, DBTableBase *)> WalkCompleteFn
boost::intrusive_ptr< DBTableWalk > DBTableWalkRef
boost::function< bool(DBTablePartBase *, DBEntryBase *)> WalkFn
bool operator()(const WalkRequestInfo *lhs, const WalkRequestInfo *rhs) const
void AppendWalkReq(DBTable::DBTableWalkRef ref)
WalkRequestInfo(DBTable *table)
WalkReqList pending_requests
void DeleteWalkReq(DBTable::DBTableWalkRef ref)