+ public Future<RpcResult<UnsubscribeYnlOutput>> unsubscribeYnl(final UnsubscribeYnlInput input) {
+ LOG.debug("Received unsubscribe-ynl, input: {}", input);
+
+ if (!ynlRegistrations.containsKey(input.getId())) {
+ final RpcError rpcError = RpcResultBuilder
+ .newError(ErrorType.APPLICATION, "missing-registration", "No ynl listener with this id registered.");
+ final RpcResult<UnsubscribeYnlOutput> result =
+ RpcResultBuilder.<UnsubscribeYnlOutput>failed().withRpcError(rpcError).build();
+ return Futures.immediateFuture(result);
+ }
+
+ final ListenerRegistration<YnlListener> registration = ynlRegistrations.remove(input.getId());
+ final UnsubscribeYnlOutput output = registration.getInstance().getOutput();
+
+ registration.close();
+
+ return Futures.immediateFuture(RpcResultBuilder.<UnsubscribeYnlOutput>success().withResult(output).build());