5 #ifndef __DB_IFMAP_EXPORTER_H__
6 #define __DB_IFMAP_EXPORTER_H__
12 #include <boost/crc.hpp>
13 #include <boost/scoped_ptr.hpp>
14 #include <boost/unordered_set.hpp>
48 typedef boost::unordered_set<IFMapState *>
ConfigSet;
99 typedef std::map<DBTable *, TableInfo *>
TableMap;
106 template <
class ObjectType>
110 template <
class ObjectType>
113 template <
class ObjectType>
125 std::unique_ptr<BitSet> *ptr);
IFMapUpdateQueue * queue()
void MoveDependentLinks(IFMapNodeState *state)
bool ClientConfigTrackerEmpty(TrackerType tracker_type, int index)
void DeleteStateIfAppropriate(DBTable *table, DBEntryBase *entry, IFMapState *state)
bool IsFeasible(const IFMapNode *node)
const TableInfo * Find(const DBTable *table) const
void UpdateClientConfigTracker(IFMapState *state, const BitSet &client_bits, bool add, TrackerType tracker_type)
void RemoveDependentLinks(IFMapNodeState *state, const BitSet &rm_set)
bool ConfigChanged(IFMapNode *node)
IFMapUpdateSender * sender()
boost::scoped_ptr< IFMapGraphWalker > walker_
const BitSet * MergeClientInterest(IFMapNode *node, IFMapNodeState *state, std::unique_ptr< BitSet > *ptr)
void ProcessAdjacentNode(IFMapNode *node, const BitSet &add_set, IFMapNodeState *state, bool force_process=false)
void NodeTableExport(DBTablePartBase *partition, DBEntryBase *entry)
void StateInterestReset(IFMapState *state, const BitSet &interest_bits)
boost::crc_32_type::value_type crc32type
friend class XmppIfmapTest
void AddClientConfigTracker(int index)
void StateInterestSet(IFMapState *state, const BitSet &interest_bits)
void StateAdvertisedReset(IFMapState *state, const BitSet &interest_bits)
const IFMapTypenameWhiteList & get_traversal_white_list() const
void LinkTableExport(DBTablePartBase *partition, DBEntryBase *entry)
void EnqueueDelete(ObjectType *obj, IFMapState *state)
Cs_citer ClientConfigTrackerEnd(TrackerType tracker_type, int index) const
Cs_citer ClientConfigTrackerBegin(TrackerType tracker_type, int index) const
DBTable::ListenerId TableListenerId(const DBTable *table) const
bool ClientHasConfigTracker(TrackerType tracker_type, int index)
IFMapNodeState * NodeStateLocate(IFMapNode *node)
void TableStateClear(DBTable *table, DBTable::ListenerId tsid)
bool UpdateRemove(ObjectType *obj, IFMapState *state, const BitSet &rm_set)
bool ClientConfigTrackerHasState(TrackerType tracker_type, int index, IFMapState *state)
IFMapNodeState * NodeStateLookup(IFMapNode *node)
void StateInterestOr(IFMapState *state, const BitSet &interest_bits)
ConfigSet::const_iterator Cs_citer
boost::unordered_set< IFMapState * > ConfigSet
void StateAdvertisedOr(IFMapState *state, const BitSet &interest_bits)
void CleanupClientConfigTrackedEntries(int index)
std::map< DBTable *, TableInfo * > TableMap
std::vector< ConfigSet * > ClientConfigTracker
void StateUpdateOnDequeue(IFMapUpdate *update, const BitSet &dequeue_set, bool is_delete)
size_t ClientConfigTrackerSize(TrackerType tracker_type, int index)
void MoveAdjacentNode(IFMapNodeState *state)
IFMapExporter(IFMapServer *server)
bool UpdateAddChange(ObjectType *obj, IFMapState *state, const BitSet &add_set, const BitSet &rm_set, bool change)
ConfigSet::size_type CsSz_t
void ResetLinkDeleteClients(const BitSet &bset)
IFMapLinkState * LinkStateLookup(IFMapLink *link)
bool FilterNeighbor(IFMapNode *lnode, IFMapLink *link)
void DeleteClientConfigTracker(int index)
ClientConfigTracker client_config_tracker_[TT_END]