5 #ifndef SRC_BGP_ROUTING_INSTANCE_ROUTEPATH_REPLICATOR_H_
6 #define SRC_BGP_ROUTING_INSTANCE_ROUTEPATH_REPLICATOR_H_
8 #include <boost/ptr_container/ptr_map.hpp>
9 #include <sandesh/sandesh_trace.h>
10 #include <tbb/mutex.h>
172 ReplicatedRtPathList::const_iterator it);
174 ReplicatedRtPathList::const_iterator it);
static const int kInvalidId
boost::intrusive_ptr< DBTableWalk > DBTableWalkRef
void DeleteSecondaryPath(BgpTable *table, BgpRoute *rt, const RtReplicated::SecondaryRouteInfo &rtinfo)
SandeshTraceBufferPtr trace_buf_
std::map< BgpTable *, TableState * > TableStateList
void DeleteTableState(BgpTable *table)
void LeaveVpnTable(RtGroup *group)
friend class ReplicationTest
RoutePathReplicator(BgpServer *server, Address::Family family)
void RemoveTableState(BgpTable *table, RtGroup *group)
void UnregisterTableState(BgpTable *table)
DISALLOW_COPY_AND_ASSIGN(RoutePathReplicator)
void DBStateSync(BgpTable *table, TableState *ts, BgpRoute *rt, RtReplicated *dbstate, const RtReplicated::ReplicatedRtPathList *future)
TableStateList table_state_list_
TableState * AddTableState(BgpTable *table, RtGroup *group=NULL)
friend class BGPaaSRDTest
std::set< BgpTable * > UnregTableList
Address::Family family() const
const RtReplicated * GetReplicationState(BgpTable *table, BgpRoute *rt) const
void BulkReplicationDone(DBTableBase *dbtable)
TableState * FindTableState(BgpTable *table)
void JoinVpnTable(RtGroup *group)
void Join(BgpTable *table, const RouteTarget &rt, bool import)
std::vector< std::string > GetReplicatedTableNameList(const BgpTable *table, const BgpRoute *route, const BgpPath *path) const
virtual ~RoutePathReplicator()
const BgpServer * server() const
void RequestWalk(BgpTable *table)
bool RouteListener(TableState *ts, DBTablePartBase *root, DBEntryBase *entry)
void Leave(BgpTable *table, const RouteTarget &rt, bool import)
void DeleteRouteInfo(BgpTable *table, BgpRoute *rt, ReplicatedRtPathList::const_iterator it)
void AddRouteInfo(BgpTable *table, BgpRoute *rt, ReplicatedRtPathList::const_iterator it)
ReplicatedRtPathList replicate_list_
RtReplicated(RoutePathReplicator *replicator)
RoutePathReplicator * replicator_
ReplicatedRtPathList * GetMutableList()
const ReplicatedRtPathList & GetList() const
std::set< SecondaryRouteInfo > ReplicatedRtPathList
std::vector< std::string > GetTableNameList(const BgpPath *path) const
RoutePathReplicator * replicator_
void RemoveGroup(RtGroup *group)
DISALLOW_COPY_AND_ASSIGN(TableState)
const DBTable::DBTableWalkRef & walk_ref() const
boost::scoped_ptr< DeleteActor > deleter_
void AddGroup(RtGroup *group)
TableState(RoutePathReplicator *replicator, BgpTable *table)
DBTableBase::ListenerId listener_id_
void set_listener_id(DBTableBase::ListenerId listener_id)
const RtGroup * FindGroup(RtGroup *group) const
LifetimeActor * deleter()
DBTable::DBTableWalkRef walk_ref_
std::set< RtGroup * > GroupList
LifetimeRef< TableState > table_delete_ref_
const RoutePathReplicator * replicator() const
DBTableBase::ListenerId listener_id() const
uint32_t route_count() const
RoutePathReplicator * replicator()
DBTable::DBTableWalkRef & walk_ref()
void set_walk_ref(DBTable::DBTableWalkRef walk_ref)
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
int CompareTo(const SecondaryRouteInfo &rhs) const
bool operator<(const SecondaryRouteInfo &rhs) const
std::string ToString() const
bool operator>(const SecondaryRouteInfo &rhs) const
SecondaryRouteInfo(BgpTable *table, const IPeer *peer, uint32_t path_id, BgpPath::PathSource src, BgpRoute *rt)
#define KEY_COMPARE(x, y)