+
+ @Override
+ public org.opendaylight.yangtools.concepts.Registration registerRpcImplementations(
+ final Map<DOMRpcIdentifier, DOMRpcImplementation> map) {
+ final ImmutableMap<DOMRpcIdentifier, DOMRpcImplementation> defensive = ImmutableMap.copyOf(map);
+ checkArgument(!map.isEmpty());
+
+ synchronized (DOMRpcRouter.this) {
+ final DOMRpcRoutingTable oldTable = routingTable;
+ final DOMRpcRoutingTable newTable = (DOMRpcRoutingTable) oldTable.addAll(defensive);
+ routingTable = newTable;
+
+ listenerNotifier.execute(() -> notifyAdded(newTable, defensive.values()));
+ }
+
+ return new AbstractRegistration() {
+ @Override
+ protected void removeRegistration() {
+ removeRpcImplementations(defensive);
+ }
+ };
+ }