/** * Creates a new subscription with the given name. * * @throws IllegalStateException * <li>if the dispatcher runs in pipeline-mode, * <li>if a subscription with this name already exists */ public Subscription openSubscription(String subscriptionName) { return FutureUtil.join(openSubscriptionAsync(subscriptionName)); }
/** * Creates a new subscription with the given name. * * @throws IllegalStateException * <li>if the dispatcher runs in pipeline-mode, * <li>if a subscription with this name already exists */ public Subscription openSubscription(String subscriptionName) { return FutureUtil.join(openSubscriptionAsync(subscriptionName)); }
@Override public void start(ServiceStartContext startContext) { final Dispatcher logBuffer = logWritebufferInjector.getValue(); subscriptionFuture = logBuffer.openSubscriptionAsync(subscriptionName); startContext.async(subscriptionFuture); }
@Override public void start(ServiceStartContext startContext) { final Dispatcher logBuffer = logWritebufferInjector.getValue(); subscriptionFuture = logBuffer.openSubscriptionAsync(subscriptionName); startContext.async(subscriptionFuture); }
@Override protected void onActorStarted() { final ActorFuture<Subscription> subscriptionAsync = controlMessageDispatcher.openSubscriptionAsync( TRANSPORT_CONTROL_MESSAGE_HANDLER_SUBSCRIPTION); actor.runOnCompletion( subscriptionAsync, (sub, throwable) -> { if (throwable == null) { actor.consume( sub, () -> { if (sub.poll(this, 1) == 0) { actor.yield(); } }); openFuture.complete(null); } else { openFuture.completeExceptionally(throwable); Loggers.SYSTEM_LOGGER.error("Can't get subscription for {}", NAME, throwable); } }); }
@Override protected void onActorStarted() { final ActorFuture<Subscription> subscriptionAsync = controlMessageDispatcher.openSubscriptionAsync( TRANSPORT_CONTROL_MESSAGE_HANDLER_SUBSCRIPTION); actor.runOnCompletion( subscriptionAsync, (sub, throwable) -> { if (throwable == null) { actor.consume( sub, () -> { if (sub.poll(this, 1) == 0) { actor.yield(); } }); openFuture.complete(null); } else { openFuture.completeExceptionally(throwable); Loggers.SYSTEM_LOGGER.error("Can't get subscription for {}", NAME, throwable); } }); }
public ActorFuture<ServerInputSubscription> openInputSubscription( String subscriptionName, ServerOutput output, RemoteAddressListImpl remoteAddressList, ServerMessageHandler messageHandler, ServerRequestHandler requestHandler) { final CompletableActorFuture<ServerInputSubscription> future = new CompletableActorFuture<>(); actor.call( () -> { actor.runOnCompletion( transportContext.getReceiveBuffer().openSubscriptionAsync(subscriptionName), (s, t) -> { if (t == null) { future.complete( new ServerInputSubscriptionImpl( output, s, remoteAddressList, messageHandler, requestHandler)); } else { future.completeExceptionally(t); } }); }); return future; } }
public ActorFuture<ClientInputMessageSubscription> openClientInputMessageSubscription( String subscriptionName, ClientMessageHandler messageHandler, ClientOutput output, RemoteAddressList remoteAddressList) { final CompletableActorFuture<ClientInputMessageSubscription> future = new CompletableActorFuture<>(); actor.call( () -> { final ActorFuture<Subscription> subscriptionFuture = transportContext.getReceiveBuffer().openSubscriptionAsync(subscriptionName); actor.runOnCompletion( subscriptionFuture, (s, t) -> { if (t != null) { future.completeExceptionally(t); } else { future.complete( new ClientInputMessageSubscriptionImpl( s, messageHandler, output, remoteAddressList)); } }); }); return future; } }
public ActorFuture<ClientInputMessageSubscription> openClientInputMessageSubscription( String subscriptionName, ClientMessageHandler messageHandler, ClientOutput output, RemoteAddressList remoteAddressList) { final CompletableActorFuture<ClientInputMessageSubscription> future = new CompletableActorFuture<>(); actor.call( () -> { final ActorFuture<Subscription> subscriptionFuture = transportContext.getReceiveBuffer().openSubscriptionAsync(subscriptionName); actor.runOnCompletion( subscriptionFuture, (s, t) -> { if (t != null) { future.completeExceptionally(t); } else { future.complete( new ClientInputMessageSubscriptionImpl( s, messageHandler, output, remoteAddressList)); } }); }); return future; } }
public ActorFuture<ServerInputSubscription> openInputSubscription( String subscriptionName, ServerOutput output, RemoteAddressListImpl remoteAddressList, ServerMessageHandler messageHandler, ServerRequestHandler requestHandler) { final CompletableActorFuture<ServerInputSubscription> future = new CompletableActorFuture<>(); actor.call( () -> { actor.runOnCompletion( transportContext.getReceiveBuffer().openSubscriptionAsync(subscriptionName), (s, t) -> { if (t == null) { future.complete( new ServerInputSubscriptionImpl( output, s, remoteAddressList, messageHandler, requestHandler)); } else { future.completeExceptionally(t); } }); }); return future; } }