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