Line data Source code
1 : /* 2 : * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved. 3 : */ 4 : 5 : #ifndef SRC_BGP_ROUTING_INSTANCE_ISTATIC_ROUTE_MGR_H_ 6 : #define SRC_BGP_ROUTING_INSTANCE_ISTATIC_ROUTE_MGR_H_ 7 : 8 : #include <stdint.h> 9 : 10 : class RoutingInstance; 11 : class StaticRouteEntriesInfo; 12 : 13 : class IStaticRouteMgr { 14 : public: 15 122 : virtual ~IStaticRouteMgr() { } 16 : 17 : virtual void ProcessStaticRouteConfig() = 0; 18 : virtual void UpdateStaticRouteConfig() = 0; 19 : virtual void FlushStaticRouteConfig() = 0; 20 : virtual void NotifyAllRoutes() = 0; 21 : virtual void UpdateAllRoutes() = 0; 22 : virtual uint32_t GetRouteCount() const = 0; 23 : virtual uint32_t GetDownRouteCount() const = 0; 24 : virtual bool FillStaticRouteInfo(RoutingInstance *rtinstance, 25 : StaticRouteEntriesInfo *info) const = 0; 26 : 27 : private: 28 : template <typename U> friend class StaticRouteTest; 29 : 30 : virtual void DisableUnregisterTrigger() = 0; 31 : virtual void EnableUnregisterTrigger() = 0; 32 : 33 : virtual void DisableQueue() = 0; 34 : virtual void EnableQueue() = 0; 35 : virtual bool IsQueueEmpty() = 0; 36 : }; 37 : 38 : #endif // SRC_BGP_ROUTING_INSTANCE_ISTATIC_ROUTE_MGR_H_