[AETHER-72] Refactoring RouteService
- to use bulk updates interface
- to use new getRoutesForNextHops API
- to use multi-thread resolver
- to use multi-thread hostexec
- to use a concurrent hashmap instead of synchronized
- to use a non-blocking resolved store
Additionally updates unit tests
Change-Id: Id960abd0f2a1b03066ce34b6a2f72b76566bb58c
diff --git a/apps/route-service/api/src/main/java/org/onosproject/routeservice/RouteStore.java b/apps/route-service/api/src/main/java/org/onosproject/routeservice/RouteStore.java
index 5eaa898..2171fcb 100644
--- a/apps/route-service/api/src/main/java/org/onosproject/routeservice/RouteStore.java
+++ b/apps/route-service/api/src/main/java/org/onosproject/routeservice/RouteStore.java
@@ -38,6 +38,13 @@
void updateRoute(Route route);
/**
+ * Adds or updates the given routes in the store.
+ *
+ * @param routes routes to add or update
+ */
+ void updateRoutes(Collection<Route> routes);
+
+ /**
* Removes the given route from the store.
*
* @param route route to remove
@@ -45,6 +52,13 @@
void removeRoute(Route route);
/**
+ * Removes the given routes from the store.
+ *
+ * @param routes routes to remove
+ */
+ void removeRoutes(Collection<Route> routes);
+
+ /**
* Replaces the all the routes for a prefix
* with the given route.
*
@@ -79,6 +93,14 @@
Collection<Route> getRoutesForNextHop(IpAddress ip);
/**
+ * Returns all routes that point to any of the given next hops IP addresses.
+ *
+ * @param nextHops next hops IP addresses
+ * @return collection of routes sets
+ */
+ Collection<RouteSet> getRoutesForNextHops(Collection<IpAddress> nextHops);
+
+ /**
* Returns the set of routes in the default route table for the given prefix.
*
* @param prefix IP prefix