public BlockingAction(Handler<AsyncResult<T>> handler) { this.handler = handler; this.context = vertx.getOrCreateContext(); } /**
public ClusteredEventBus(VertxInternal vertx, VertxOptions options, ClusterManager clusterManager) { super(vertx); this.options = options.getEventBusOptions(); this.clusterManager = clusterManager; this.sendNoContext = vertx.getOrCreateContext(); }
@Override public void decrementAndGet(Handler<AsyncResult<Long>> resultHandler) { Objects.requireNonNull(resultHandler, "resultHandler"); Context context = vertx.getOrCreateContext(); context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.decrementAndGet()))); }
@Override public void incrementAndGet(Handler<AsyncResult<Long>> resultHandler) { Objects.requireNonNull(resultHandler, "resultHandler"); Context context = vertx.getOrCreateContext(); context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.incrementAndGet()))); }
@Override public void getAndIncrement(Handler<AsyncResult<Long>> resultHandler) { Objects.requireNonNull(resultHandler, "resultHandler"); Context context = vertx.getOrCreateContext(); context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.getAndIncrement()))); }
@Override public void compareAndSet(long expected, long value, Handler<AsyncResult<Boolean>> resultHandler) { Objects.requireNonNull(resultHandler, "resultHandler"); Context context = vertx.getOrCreateContext(); context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.compareAndSet(expected, value)))); } }
@Override public void addAndGet(long value, Handler<AsyncResult<Long>> resultHandler) { Objects.requireNonNull(resultHandler, "resultHandler"); Context context = vertx.getOrCreateContext(); context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.addAndGet(value)))); }
@Override public void undeploy(Handler<AsyncResult<Void>> completionHandler) { ContextInternal currentContext = vertx.getOrCreateContext(); doUndeploy(currentContext, completionHandler); }
@Override public void get(Handler<AsyncResult<Long>> resultHandler) { Objects.requireNonNull(resultHandler, "resultHandler"); Context context = vertx.getOrCreateContext(); context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.get()))); }
@Override public void getAndAdd(long value, Handler<AsyncResult<Long>> resultHandler) { Objects.requireNonNull(resultHandler, "resultHandler"); Context context = vertx.getOrCreateContext(); context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter.getAndAdd(value)))); }
private void getLocalLock(String name, long timeout, Handler<AsyncResult<Lock>> resultHandler) { localAsyncLocks.acquire(vertx.getOrCreateContext(), name, timeout, resultHandler); }
private void getLocalCounter(String name, Handler<AsyncResult<Counter>> resultHandler) { Counter counter = localCounters.computeIfAbsent(name, n -> new AsynchronousCounter(vertx)); Context context = vertx.getOrCreateContext(); context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(counter))); }
public void undeployVerticle(String deploymentID, Handler<AsyncResult<Void>> completionHandler) { Deployment deployment = deployments.get(deploymentID); Context currentContext = vertx.getOrCreateContext(); if (deployment == null) { reportFailure(new IllegalStateException("Unknown deployment"), currentContext, completionHandler); } else { deployment.undeploy(completionHandler); } }
private void doClose(Handler<AsyncResult<Void>> handler) { ContextInternal handlerContext = vertx.getOrCreateContext(); handlerContext.executeBlockingInternal(res -> { try { ch.close(); res.complete(null); } catch (IOException e) { res.fail(e); } }, handler); }
public void deployVerticle(String identifier, DeploymentOptions options, Handler<AsyncResult<String>> completionHandler) { ContextInternal callingContext = vertx.getOrCreateContext(); ClassLoader cl = getClassLoader(options); doDeployVerticle(identifier, options, callingContext, callingContext, cl, completionHandler); }
@Override public void getLockWithTimeout(String name, long timeout, Handler<AsyncResult<Lock>> resultHandler) { localAsyncLocks.acquire(vertx.getOrCreateContext(), name, timeout, resultHandler); }
@Override public void getCounter(String name, Handler<AsyncResult<Counter>> resultHandler) { AtomicLong counter = new AtomicLong(); AtomicLong prev = counters.putIfAbsent(name, counter); if (prev != null) { counter = prev; } AtomicLong theCounter = counter; Context context = vertx.getOrCreateContext(); context.runOnContext(v -> resultHandler.handle(Future.succeededFuture(new AsynchronousCounter(vertx, theCounter)))); }
@Override public void get(final K k, Handler<AsyncResult<ChoosableIterable<V>>> asyncResultHandler) { ContextInternal ctx = vertx.getOrCreateContext(); ctx.executeBlocking(fut -> { ChoosableIterable<V> it = map.get(k); if (it == null) { it = new ChoosableSet<>(0); } fut.complete(it); }, taskQueue, asyncResultHandler); }
@Override public void add(final K k, final V v, Handler<AsyncResult<Void>> completionHandler) { ContextInternal ctx = vertx.getOrCreateContext(); ctx.executeBlocking(fut -> { ChoosableSet<V> vals = map.get(k); if (vals == null) { vals = new ChoosableSet<>(1); ChoosableSet<V> prevVals = map.putIfAbsent(k, vals); if (prevVals != null) { vals = prevVals; } } vals.add(v); fut.complete(); }, taskQueue, completionHandler); }
private DatagramSocketImpl(VertxInternal vertx, DatagramSocketOptions options) { Transport transport = vertx.transport(); DatagramChannel channel = transport.datagramChannel(options.isIpV6() ? InternetProtocolFamily.IPv6 : InternetProtocolFamily.IPv4); transport.configure(channel, new DatagramSocketOptions(options)); ContextInternal context = vertx.getOrCreateContext(); channel.config().setOption(ChannelOption.DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION, true); MaxMessagesRecvByteBufAllocator bufAllocator = channel.config().getRecvByteBufAllocator(); bufAllocator.maxMessagesPerRead(1); context.nettyEventLoop().register(channel); if (options.getLogActivity()) { channel.pipeline().addLast("logging", new LoggingHandler()); } VertxMetrics metrics = vertx.metricsSPI(); this.metrics = metrics != null ? metrics.createDatagramSocketMetrics(options) : null; this.channel = channel; this.context = context; this.demand = Long.MAX_VALUE; }