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