-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-public class RoutingTable implements Copier<RoutingTable>, Serializable {
-
- private Map<RpcRouter.RouteIdentifier<?, ?, ?>, Long> table = new HashMap<>();
- private ActorRef router;
-
- @Override
- public RoutingTable copy() {
- RoutingTable copy = new RoutingTable();
- copy.setTable(Collections.unmodifiableMap(table));
- copy.setRouter(this.getRouter());
-
- return copy;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Optional;
+import java.util.Set;
+import org.opendaylight.controller.remote.rpc.registry.gossip.BucketData;
+import org.opendaylight.controller.sal.connector.api.RpcRouter.RouteIdentifier;
+
+public class RoutingTable implements BucketData<RoutingTable>, Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private final Set<RouteIdentifier<?, ?, ?>> rpcs;
+ private final ActorRef rpcInvoker;
+
+ private RoutingTable(final ActorRef rpcInvoker, final Set<RouteIdentifier<?, ?, ?>> table) {
+ this.rpcInvoker = Preconditions.checkNotNull(rpcInvoker);
+ this.rpcs = ImmutableSet.copyOf(table);