public class io.vertx.core.eventbus.impl.EventBusImpl extends java.lang.Object implements io.vertx.core.eventbus.impl.EventBusInternal, io.vertx.core.spi.metrics.MetricsProvider
{
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater OUTBOUND_INTERCEPTORS_UPDATER;
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater INBOUND_INTERCEPTORS_UPDATER;
private volatile io.vertx.core.Handler[] outboundInterceptors;
private volatile io.vertx.core.Handler[] inboundInterceptors;
private final java.util.concurrent.atomic.AtomicLong replySequence;
protected final io.vertx.core.impl.VertxInternal vertx;
protected final io.vertx.core.spi.metrics.EventBusMetrics metrics;
protected final java.util.concurrent.ConcurrentMap handlerMap;
protected final io.vertx.core.eventbus.impl.CodecManager codecManager;
protected volatile boolean started;
public void <init>(io.vertx.core.impl.VertxInternal)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.impl.VertxInternal v;
io.vertx.core.spi.metrics.EventBusMetrics v;
java.util.concurrent.ConcurrentHashMap v;
io.vertx.core.spi.metrics.VertxMetrics v;
io.vertx.core.Handler[] v, v;
java.util.concurrent.atomic.AtomicLong v;
io.vertx.core.eventbus.impl.CodecManager v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.impl.VertxInternal;
specialinvoke v.<java.lang.Object: void <init>()>();
v = newarray (io.vertx.core.Handler)[0];
v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.Handler[] outboundInterceptors> = v;
v = newarray (io.vertx.core.Handler)[0];
v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.Handler[] inboundInterceptors> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>(long)>(0L);
v.<io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.atomic.AtomicLong replySequence> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.ConcurrentMap handlerMap> = v;
v = new io.vertx.core.eventbus.impl.CodecManager;
specialinvoke v.<io.vertx.core.eventbus.impl.CodecManager: void <init>()>();
v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.CodecManager codecManager> = v;
v = interfaceinvoke v.<io.vertx.core.impl.VertxInternal: io.vertx.core.spi.metrics.VertxMetrics metricsSPI()>();
v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx> = v;
if v == null goto label;
v = interfaceinvoke v.<io.vertx.core.spi.metrics.VertxMetrics: io.vertx.core.spi.metrics.EventBusMetrics createEventBusMetrics()>();
goto label;
label:
v = null;
label:
v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.spi.metrics.EventBusMetrics metrics> = v;
return;
}
public io.vertx.core.eventbus.EventBus addOutboundInterceptor(io.vertx.core.Handler)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
java.lang.Object v;
io.vertx.core.Handler v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.Handler;
v = <io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.atomic.AtomicReferenceFieldUpdater OUTBOUND_INTERCEPTORS_UPDATER>;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
specialinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void addInterceptor(java.util.concurrent.atomic.AtomicReferenceFieldUpdater,io.vertx.core.Handler)>(v, v);
return v;
}
public io.vertx.core.eventbus.EventBus addInboundInterceptor(io.vertx.core.Handler)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
java.lang.Object v;
io.vertx.core.Handler v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.Handler;
v = <io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.atomic.AtomicReferenceFieldUpdater INBOUND_INTERCEPTORS_UPDATER>;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
specialinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void addInterceptor(java.util.concurrent.atomic.AtomicReferenceFieldUpdater,io.vertx.core.Handler)>(v, v);
return v;
}
public io.vertx.core.eventbus.EventBus removeOutboundInterceptor(io.vertx.core.Handler)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
java.lang.Object v;
io.vertx.core.Handler v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.Handler;
v = <io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.atomic.AtomicReferenceFieldUpdater OUTBOUND_INTERCEPTORS_UPDATER>;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
specialinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void removeInterceptor(java.util.concurrent.atomic.AtomicReferenceFieldUpdater,io.vertx.core.Handler)>(v, v);
return v;
}
public io.vertx.core.eventbus.EventBus removeInboundInterceptor(io.vertx.core.Handler)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
java.lang.Object v;
io.vertx.core.Handler v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.Handler;
v = <io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.atomic.AtomicReferenceFieldUpdater INBOUND_INTERCEPTORS_UPDATER>;
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
specialinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void removeInterceptor(java.util.concurrent.atomic.AtomicReferenceFieldUpdater,io.vertx.core.Handler)>(v, v);
return v;
}
io.vertx.core.Handler[] inboundInterceptors()
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.Handler[] v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.Handler[] inboundInterceptors>;
return v;
}
io.vertx.core.Handler[] outboundInterceptors()
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.Handler[] v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.Handler[] outboundInterceptors>;
return v;
}
public io.vertx.core.eventbus.EventBus clusterSerializableChecker(java.util.function.Function)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.util.function.Function v;
io.vertx.core.eventbus.impl.CodecManager v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.util.function.Function;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.CodecManager codecManager>;
virtualinvoke v.<io.vertx.core.eventbus.impl.CodecManager: void clusterSerializableCheck(java.util.function.Function)>(v);
return v;
}
public io.vertx.core.eventbus.EventBus serializableChecker(java.util.function.Function)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.util.function.Function v;
io.vertx.core.eventbus.impl.CodecManager v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.util.function.Function;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.CodecManager codecManager>;
virtualinvoke v.<io.vertx.core.eventbus.impl.CodecManager: void serializableCheck(java.util.function.Function)>(v);
return v;
}
public synchronized void start(io.vertx.core.Promise)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.lang.IllegalStateException v;
io.vertx.core.Promise v;
boolean v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.Promise;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: boolean started>;
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Already started");
throw v;
label:
v.<io.vertx.core.eventbus.impl.EventBusImpl: boolean started> = 1;
interfaceinvoke v.<io.vertx.core.Promise: void complete()>();
return;
}
public io.vertx.core.eventbus.EventBus send(java.lang.String, java.lang.Object)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.eventbus.EventBus v;
java.lang.Object v;
java.lang.String v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Object;
v = new io.vertx.core.eventbus.DeliveryOptions;
specialinvoke v.<io.vertx.core.eventbus.DeliveryOptions: void <init>()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.EventBus send(java.lang.String,java.lang.Object,io.vertx.core.eventbus.DeliveryOptions)>(v, v, v);
return v;
}
public io.vertx.core.eventbus.EventBus send(java.lang.String, java.lang.Object, io.vertx.core.eventbus.DeliveryOptions)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.MultiMap v;
io.vertx.core.eventbus.impl.MessageImpl v;
java.lang.Object v;
java.lang.String v, v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Object;
v := @parameter: io.vertx.core.eventbus.DeliveryOptions;
v = virtualinvoke v.<io.vertx.core.eventbus.DeliveryOptions: io.vertx.core.MultiMap getHeaders()>();
v = virtualinvoke v.<io.vertx.core.eventbus.DeliveryOptions: java.lang.String getCodecName()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.MessageImpl createMessage(boolean,java.lang.String,io.vertx.core.MultiMap,java.lang.Object,java.lang.String)>(1, v, v, v, v);
virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void sendOrPubInternal(io.vertx.core.eventbus.impl.MessageImpl,io.vertx.core.eventbus.DeliveryOptions,io.vertx.core.eventbus.impl.ReplyHandler,io.vertx.core.Promise)>(v, v, null, null);
return v;
}
public io.vertx.core.Future request(java.lang.String, java.lang.Object, io.vertx.core.eventbus.DeliveryOptions)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.MultiMap v;
io.vertx.core.Future v;
io.vertx.core.eventbus.impl.ReplyHandler v;
io.vertx.core.eventbus.impl.MessageImpl v;
java.lang.Object v;
java.lang.String v, v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Object;
v := @parameter: io.vertx.core.eventbus.DeliveryOptions;
v = virtualinvoke v.<io.vertx.core.eventbus.DeliveryOptions: io.vertx.core.MultiMap getHeaders()>();
v = virtualinvoke v.<io.vertx.core.eventbus.DeliveryOptions: java.lang.String getCodecName()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.MessageImpl createMessage(boolean,java.lang.String,io.vertx.core.MultiMap,java.lang.Object,java.lang.String)>(1, v, v, v, v);
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.ReplyHandler createReplyHandler(io.vertx.core.eventbus.impl.MessageImpl,boolean,io.vertx.core.eventbus.DeliveryOptions)>(v, 1, v);
virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void sendOrPubInternal(io.vertx.core.eventbus.impl.MessageImpl,io.vertx.core.eventbus.DeliveryOptions,io.vertx.core.eventbus.impl.ReplyHandler,io.vertx.core.Promise)>(v, v, v, null);
v = virtualinvoke v.<io.vertx.core.eventbus.impl.ReplyHandler: io.vertx.core.Future result()>();
return v;
}
public io.vertx.core.eventbus.MessageProducer sender(java.lang.String)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.impl.VertxInternal v;
java.lang.String v;
io.vertx.core.eventbus.impl.MessageProducerImpl v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "address");
v = new io.vertx.core.eventbus.impl.MessageProducerImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx>;
v = new io.vertx.core.eventbus.DeliveryOptions;
specialinvoke v.<io.vertx.core.eventbus.DeliveryOptions: void <init>()>();
specialinvoke v.<io.vertx.core.eventbus.impl.MessageProducerImpl: void <init>(io.vertx.core.Vertx,java.lang.String,boolean,io.vertx.core.eventbus.DeliveryOptions)>(v, v, 1, v);
return v;
}
public io.vertx.core.eventbus.MessageProducer sender(java.lang.String, io.vertx.core.eventbus.DeliveryOptions)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.impl.VertxInternal v;
java.lang.String v;
io.vertx.core.eventbus.impl.MessageProducerImpl v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
v := @parameter: io.vertx.core.eventbus.DeliveryOptions;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "address");
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "options");
v = new io.vertx.core.eventbus.impl.MessageProducerImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx>;
specialinvoke v.<io.vertx.core.eventbus.impl.MessageProducerImpl: void <init>(io.vertx.core.Vertx,java.lang.String,boolean,io.vertx.core.eventbus.DeliveryOptions)>(v, v, 1, v);
return v;
}
public io.vertx.core.eventbus.MessageProducer publisher(java.lang.String)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.impl.VertxInternal v;
java.lang.String v;
io.vertx.core.eventbus.impl.MessageProducerImpl v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "address");
v = new io.vertx.core.eventbus.impl.MessageProducerImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx>;
v = new io.vertx.core.eventbus.DeliveryOptions;
specialinvoke v.<io.vertx.core.eventbus.DeliveryOptions: void <init>()>();
specialinvoke v.<io.vertx.core.eventbus.impl.MessageProducerImpl: void <init>(io.vertx.core.Vertx,java.lang.String,boolean,io.vertx.core.eventbus.DeliveryOptions)>(v, v, 0, v);
return v;
}
public io.vertx.core.eventbus.MessageProducer publisher(java.lang.String, io.vertx.core.eventbus.DeliveryOptions)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.impl.VertxInternal v;
java.lang.String v;
io.vertx.core.eventbus.impl.MessageProducerImpl v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
v := @parameter: io.vertx.core.eventbus.DeliveryOptions;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "address");
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "options");
v = new io.vertx.core.eventbus.impl.MessageProducerImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx>;
specialinvoke v.<io.vertx.core.eventbus.impl.MessageProducerImpl: void <init>(io.vertx.core.Vertx,java.lang.String,boolean,io.vertx.core.eventbus.DeliveryOptions)>(v, v, 0, v);
return v;
}
public io.vertx.core.eventbus.EventBus publish(java.lang.String, java.lang.Object)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.eventbus.EventBus v;
java.lang.Object v;
java.lang.String v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Object;
v = new io.vertx.core.eventbus.DeliveryOptions;
specialinvoke v.<io.vertx.core.eventbus.DeliveryOptions: void <init>()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.EventBus publish(java.lang.String,java.lang.Object,io.vertx.core.eventbus.DeliveryOptions)>(v, v, v);
return v;
}
public io.vertx.core.eventbus.EventBus publish(java.lang.String, java.lang.Object, io.vertx.core.eventbus.DeliveryOptions)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.MultiMap v;
io.vertx.core.eventbus.impl.MessageImpl v;
java.lang.Object v;
java.lang.String v, v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Object;
v := @parameter: io.vertx.core.eventbus.DeliveryOptions;
v = virtualinvoke v.<io.vertx.core.eventbus.DeliveryOptions: io.vertx.core.MultiMap getHeaders()>();
v = virtualinvoke v.<io.vertx.core.eventbus.DeliveryOptions: java.lang.String getCodecName()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.MessageImpl createMessage(boolean,java.lang.String,io.vertx.core.MultiMap,java.lang.Object,java.lang.String)>(0, v, v, v, v);
virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void sendOrPubInternal(io.vertx.core.eventbus.impl.MessageImpl,io.vertx.core.eventbus.DeliveryOptions,io.vertx.core.eventbus.impl.ReplyHandler,io.vertx.core.Promise)>(v, v, null, null);
return v;
}
public io.vertx.core.eventbus.MessageConsumer consumer(java.lang.String)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.impl.VertxInternal v, v;
io.vertx.core.eventbus.impl.MessageConsumerImpl v;
io.vertx.core.impl.ContextInternal v;
java.lang.String v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void checkStarted()>();
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "address");
v = new io.vertx.core.eventbus.impl.MessageConsumerImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx>;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx>;
v = interfaceinvoke v.<io.vertx.core.impl.VertxInternal: io.vertx.core.impl.ContextInternal getOrCreateContext()>();
specialinvoke v.<io.vertx.core.eventbus.impl.MessageConsumerImpl: void <init>(io.vertx.core.Vertx,io.vertx.core.impl.ContextInternal,io.vertx.core.eventbus.impl.EventBusImpl,java.lang.String,boolean)>(v, v, v, v, 0);
return v;
}
public io.vertx.core.eventbus.MessageConsumer consumer(java.lang.String, io.vertx.core.Handler)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.lang.String v;
io.vertx.core.Handler v;
io.vertx.core.eventbus.MessageConsumer v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
v := @parameter: io.vertx.core.Handler;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "handler");
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.MessageConsumer consumer(java.lang.String)>(v);
interfaceinvoke v.<io.vertx.core.eventbus.MessageConsumer: io.vertx.core.eventbus.MessageConsumer handler(io.vertx.core.Handler)>(v);
return v;
}
public io.vertx.core.eventbus.MessageConsumer localConsumer(java.lang.String)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.impl.VertxInternal v, v;
io.vertx.core.eventbus.impl.MessageConsumerImpl v;
io.vertx.core.impl.ContextInternal v;
java.lang.String v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void checkStarted()>();
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "address");
v = new io.vertx.core.eventbus.impl.MessageConsumerImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx>;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx>;
v = interfaceinvoke v.<io.vertx.core.impl.VertxInternal: io.vertx.core.impl.ContextInternal getOrCreateContext()>();
specialinvoke v.<io.vertx.core.eventbus.impl.MessageConsumerImpl: void <init>(io.vertx.core.Vertx,io.vertx.core.impl.ContextInternal,io.vertx.core.eventbus.impl.EventBusImpl,java.lang.String,boolean)>(v, v, v, v, 1);
return v;
}
public io.vertx.core.eventbus.MessageConsumer localConsumer(java.lang.String, io.vertx.core.Handler)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.lang.String v;
io.vertx.core.Handler v;
io.vertx.core.eventbus.MessageConsumer v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
v := @parameter: io.vertx.core.Handler;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "handler");
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.MessageConsumer localConsumer(java.lang.String)>(v);
interfaceinvoke v.<io.vertx.core.eventbus.MessageConsumer: io.vertx.core.eventbus.MessageConsumer handler(io.vertx.core.Handler)>(v);
return v;
}
public io.vertx.core.eventbus.EventBus registerCodec(io.vertx.core.eventbus.MessageCodec)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.MessageCodec v;
io.vertx.core.eventbus.impl.CodecManager v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.MessageCodec;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.CodecManager codecManager>;
virtualinvoke v.<io.vertx.core.eventbus.impl.CodecManager: void registerCodec(io.vertx.core.eventbus.MessageCodec)>(v);
return v;
}
public io.vertx.core.eventbus.EventBus unregisterCodec(java.lang.String)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.lang.String v;
io.vertx.core.eventbus.impl.CodecManager v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.CodecManager codecManager>;
virtualinvoke v.<io.vertx.core.eventbus.impl.CodecManager: void unregisterCodec(java.lang.String)>(v);
return v;
}
public io.vertx.core.eventbus.EventBus registerDefaultCodec(java.lang.Class, io.vertx.core.eventbus.MessageCodec)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.MessageCodec v;
io.vertx.core.eventbus.impl.CodecManager v;
java.lang.Class v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.Class;
v := @parameter: io.vertx.core.eventbus.MessageCodec;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.CodecManager codecManager>;
virtualinvoke v.<io.vertx.core.eventbus.impl.CodecManager: void registerDefaultCodec(java.lang.Class,io.vertx.core.eventbus.MessageCodec)>(v, v);
return v;
}
public io.vertx.core.eventbus.EventBus unregisterDefaultCodec(java.lang.Class)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.lang.Class v;
io.vertx.core.eventbus.impl.CodecManager v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.Class;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.CodecManager codecManager>;
virtualinvoke v.<io.vertx.core.eventbus.impl.CodecManager: void unregisterDefaultCodec(java.lang.Class)>(v);
return v;
}
public io.vertx.core.eventbus.EventBus codecSelector(java.util.function.Function)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.util.function.Function v;
io.vertx.core.eventbus.impl.CodecManager v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.util.function.Function;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.CodecManager codecManager>;
virtualinvoke v.<io.vertx.core.eventbus.impl.CodecManager: void codecSelector(java.util.function.Function)>(v);
return v;
}
public void close(io.vertx.core.Promise)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.Promise v;
io.vertx.core.Handler v;
io.vertx.core.Future v;
boolean v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.Promise;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: boolean started>;
if v != 0 goto label;
interfaceinvoke v.<io.vertx.core.Promise: void complete()>();
return;
label:
v = specialinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.Future unregisterAll()>();
v = staticinvoke <io.vertx.core.eventbus.impl.EventBusImpl$lambda_close_0__1837: io.vertx.core.Handler bootstrap$(io.vertx.core.eventbus.impl.EventBusImpl,io.vertx.core.Promise)>(v, v);
interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future onComplete(io.vertx.core.Handler)>(v);
return;
}
public boolean isMetricsEnabled()
{
io.vertx.core.eventbus.impl.EventBusImpl v;
boolean v;
io.vertx.core.spi.metrics.EventBusMetrics v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.spi.metrics.EventBusMetrics metrics>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public io.vertx.core.spi.metrics.EventBusMetrics getMetrics()
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.spi.metrics.EventBusMetrics v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.spi.metrics.EventBusMetrics metrics>;
return v;
}
public io.vertx.core.eventbus.impl.MessageImpl createMessage(boolean, java.lang.String, io.vertx.core.MultiMap, java.lang.Object, java.lang.String)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.MultiMap v;
io.vertx.core.eventbus.MessageCodec v;
io.vertx.core.eventbus.impl.CodecManager v;
io.vertx.core.eventbus.impl.MessageImpl v;
java.lang.Object v;
java.lang.String v, v;
boolean v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: boolean;
v := @parameter: java.lang.String;
v := @parameter: io.vertx.core.MultiMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.String;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "no null address accepted");
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.CodecManager codecManager>;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.CodecManager: io.vertx.core.eventbus.MessageCodec lookupCodec(java.lang.Object,java.lang.String,boolean)>(v, v, 1);
v = new io.vertx.core.eventbus.impl.MessageImpl;
specialinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: void <init>(java.lang.String,io.vertx.core.MultiMap,java.lang.Object,io.vertx.core.eventbus.MessageCodec,boolean,io.vertx.core.eventbus.impl.EventBusImpl)>(v, v, v, v, v, v);
return v;
}
protected io.vertx.core.eventbus.impl.HandlerHolder addRegistration(java.lang.String, io.vertx.core.eventbus.impl.HandlerRegistration, boolean, boolean, io.vertx.core.Promise)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.Promise v;
io.vertx.core.eventbus.impl.HandlerRegistration v;
io.vertx.core.eventbus.impl.HandlerHolder v;
java.lang.String v;
boolean v, v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
v := @parameter: io.vertx.core.eventbus.impl.HandlerRegistration;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: io.vertx.core.Promise;
v = specialinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.HandlerHolder addLocalRegistration(java.lang.String,io.vertx.core.eventbus.impl.HandlerRegistration,boolean,boolean)>(v, v, v, v);
virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void onLocalRegistration(io.vertx.core.eventbus.impl.HandlerHolder,io.vertx.core.Promise)>(v, v);
return v;
}
protected void onLocalRegistration(io.vertx.core.eventbus.impl.HandlerHolder, io.vertx.core.Promise)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.impl.HandlerHolder v;
io.vertx.core.Promise v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.HandlerHolder;
v := @parameter: io.vertx.core.Promise;
if v == null goto label;
interfaceinvoke v.<io.vertx.core.Promise: void complete()>();
label:
return;
}
private io.vertx.core.eventbus.impl.HandlerHolder addLocalRegistration(java.lang.String, io.vertx.core.eventbus.impl.HandlerRegistration, boolean, boolean)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.impl.utils.ConcurrentCyclicSequence v, v;
java.util.function.BiFunction v;
io.vertx.core.impl.ContextInternal v;
java.util.concurrent.ConcurrentMap v;
io.vertx.core.eventbus.impl.HandlerRegistration v;
io.vertx.core.eventbus.impl.HandlerHolder v;
java.lang.String v;
boolean v, v, v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.lang.String;
v := @parameter: io.vertx.core.eventbus.impl.HandlerRegistration;
v := @parameter: boolean;
v := @parameter: boolean;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "address");
v = v.<io.vertx.core.eventbus.impl.HandlerRegistration: io.vertx.core.impl.ContextInternal context>;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.HandlerHolder createHandlerHolder(io.vertx.core.eventbus.impl.HandlerRegistration,boolean,boolean,io.vertx.core.impl.ContextInternal)>(v, v, v, v);
v = new io.vertx.core.impl.utils.ConcurrentCyclicSequence;
specialinvoke v.<io.vertx.core.impl.utils.ConcurrentCyclicSequence: void <init>()>();
v = virtualinvoke v.<io.vertx.core.impl.utils.ConcurrentCyclicSequence: io.vertx.core.impl.utils.ConcurrentCyclicSequence add(java.lang.Object)>(v);
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.ConcurrentMap handlerMap>;
v = staticinvoke <io.vertx.core.eventbus.impl.EventBusImpl$lambda_addLocalRegistration_1__1838: java.util.function.BiFunction bootstrap$()>();
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object merge(java.lang.Object,java.lang.Object,java.util.function.BiFunction)>(v, v, v);
v = interfaceinvoke v.<io.vertx.core.impl.ContextInternal: boolean isDeployment()>();
if v == 0 goto label;
interfaceinvoke v.<io.vertx.core.impl.ContextInternal: void addCloseHook(io.vertx.core.Closeable)>(v);
label:
return v;
}
protected io.vertx.core.eventbus.impl.HandlerHolder createHandlerHolder(io.vertx.core.eventbus.impl.HandlerRegistration, boolean, boolean, io.vertx.core.impl.ContextInternal)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.impl.ContextInternal v;
io.vertx.core.eventbus.impl.HandlerRegistration v;
io.vertx.core.eventbus.impl.HandlerHolder v;
boolean v, v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.HandlerRegistration;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: io.vertx.core.impl.ContextInternal;
v = new io.vertx.core.eventbus.impl.HandlerHolder;
specialinvoke v.<io.vertx.core.eventbus.impl.HandlerHolder: void <init>(io.vertx.core.eventbus.impl.HandlerRegistration,boolean,boolean,io.vertx.core.impl.ContextInternal)>(v, v, v, v);
return v;
}
protected void removeRegistration(io.vertx.core.eventbus.impl.HandlerHolder, io.vertx.core.Promise)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.impl.HandlerHolder v;
io.vertx.core.Promise v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.HandlerHolder;
v := @parameter: io.vertx.core.Promise;
specialinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void removeLocalRegistration(io.vertx.core.eventbus.impl.HandlerHolder)>(v);
virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void onLocalUnregistration(io.vertx.core.eventbus.impl.HandlerHolder,io.vertx.core.Promise)>(v, v);
return;
}
protected void onLocalUnregistration(io.vertx.core.eventbus.impl.HandlerHolder, io.vertx.core.Promise)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.impl.HandlerHolder v;
io.vertx.core.Promise v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.HandlerHolder;
v := @parameter: io.vertx.core.Promise;
interfaceinvoke v.<io.vertx.core.Promise: void complete()>();
return;
}
private void removeLocalRegistration(io.vertx.core.eventbus.impl.HandlerHolder)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.util.function.BiFunction v;
io.vertx.core.impl.ContextInternal v, v;
java.util.concurrent.ConcurrentMap v;
io.vertx.core.eventbus.impl.HandlerRegistration v, v;
io.vertx.core.eventbus.impl.HandlerHolder v;
java.lang.String v, v;
boolean v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.HandlerHolder;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.HandlerHolder: io.vertx.core.eventbus.impl.HandlerRegistration getHandler()>();
v = v.<io.vertx.core.eventbus.impl.HandlerRegistration: java.lang.String address>;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.ConcurrentMap handlerMap>;
v = staticinvoke <io.vertx.core.eventbus.impl.EventBusImpl$lambda_removeLocalRegistration_2__1839: java.util.function.BiFunction bootstrap$(io.vertx.core.eventbus.impl.HandlerHolder)>(v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object compute(java.lang.Object,java.util.function.BiFunction)>(v, v);
v = virtualinvoke v.<io.vertx.core.eventbus.impl.HandlerHolder: boolean setRemoved()>();
if v == 0 goto label;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.HandlerHolder: io.vertx.core.impl.ContextInternal getContext()>();
v = interfaceinvoke v.<io.vertx.core.impl.ContextInternal: java.lang.String deploymentID()>();
if v == null goto label;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.HandlerHolder: io.vertx.core.impl.ContextInternal getContext()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.HandlerHolder: io.vertx.core.eventbus.impl.HandlerRegistration getHandler()>();
interfaceinvoke v.<io.vertx.core.impl.ContextInternal: void removeCloseHook(io.vertx.core.Closeable)>(v);
label:
return;
}
protected void sendReply(io.vertx.core.eventbus.impl.MessageImpl, io.vertx.core.eventbus.DeliveryOptions, io.vertx.core.eventbus.impl.ReplyHandler)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.impl.OutboundDeliveryContext v;
java.lang.IllegalStateException v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.impl.VertxInternal v;
io.vertx.core.impl.ContextInternal v;
io.vertx.core.eventbus.impl.ReplyHandler v;
io.vertx.core.eventbus.impl.MessageImpl v;
java.lang.String v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.MessageImpl;
v := @parameter: io.vertx.core.eventbus.DeliveryOptions;
v := @parameter: io.vertx.core.eventbus.impl.ReplyHandler;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: java.lang.String address()>();
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("address not specified");
throw v;
label:
v = new io.vertx.core.eventbus.impl.OutboundDeliveryContext;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx>;
v = interfaceinvoke v.<io.vertx.core.impl.VertxInternal: io.vertx.core.impl.ContextInternal getOrCreateContext()>();
specialinvoke v.<io.vertx.core.eventbus.impl.OutboundDeliveryContext: void <init>(io.vertx.core.impl.ContextInternal,io.vertx.core.eventbus.impl.MessageImpl,io.vertx.core.eventbus.DeliveryOptions,io.vertx.core.eventbus.impl.ReplyHandler,io.vertx.core.Promise)>(v, v, v, v, null);
virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void sendOrPubInternal(io.vertx.core.eventbus.impl.OutboundDeliveryContext)>(v);
return;
}
protected void sendOrPub(io.vertx.core.eventbus.impl.OutboundDeliveryContext)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.impl.OutboundDeliveryContext v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.OutboundDeliveryContext;
specialinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void sendLocally(io.vertx.core.eventbus.impl.OutboundDeliveryContext)>(v);
return;
}
protected void callCompletionHandlerAsync(io.vertx.core.Handler)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.impl.VertxInternal v;
io.vertx.core.Handler v, v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.Handler;
if v == null goto label;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx>;
v = staticinvoke <io.vertx.core.eventbus.impl.EventBusImpl$lambda_callCompletionHandlerAsync_3__1840: io.vertx.core.Handler bootstrap$(io.vertx.core.Handler)>(v);
interfaceinvoke v.<io.vertx.core.impl.VertxInternal: void runOnContext(io.vertx.core.Handler)>(v);
label:
return;
}
private void sendLocally(io.vertx.core.eventbus.impl.OutboundDeliveryContext)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.impl.OutboundDeliveryContext v;
io.vertx.core.eventbus.impl.MessageImpl v;
io.vertx.core.eventbus.ReplyException v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.OutboundDeliveryContext;
v = v.<io.vertx.core.eventbus.impl.OutboundDeliveryContext: io.vertx.core.eventbus.impl.MessageImpl message>;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.ReplyException deliverMessageLocally(io.vertx.core.eventbus.impl.MessageImpl)>(v);
if v == null goto label;
virtualinvoke v.<io.vertx.core.eventbus.impl.OutboundDeliveryContext: void written(java.lang.Throwable)>(v);
goto label;
label:
virtualinvoke v.<io.vertx.core.eventbus.impl.OutboundDeliveryContext: void written(java.lang.Throwable)>(null);
label:
return;
}
protected boolean isMessageLocal(io.vertx.core.eventbus.impl.MessageImpl)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.impl.MessageImpl v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.MessageImpl;
return 1;
}
protected io.vertx.core.eventbus.ReplyException deliverMessageLocally(io.vertx.core.eventbus.impl.MessageImpl)
{
io.vertx.core.spi.metrics.EventBusMetrics v, v, v, v, v, v;
byte v;
boolean v, v, v, v, v, v, v, v, v, v;
java.util.concurrent.ConcurrentMap v;
int v;
io.vertx.core.eventbus.ReplyFailure v;
io.vertx.core.eventbus.impl.HandlerRegistration v, v;
java.lang.String v, v, v, v, v, v;
io.vertx.core.eventbus.impl.EventBusImpl v;
java.util.Iterator v;
io.vertx.core.eventbus.impl.MessageImpl v, v, v;
java.lang.Object v, v;
io.vertx.core.eventbus.impl.HandlerHolder v;
io.vertx.core.eventbus.ReplyException v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.MessageImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.ConcurrentMap handlerMap>;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: java.lang.String address()>();
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: boolean isMessageLocal(io.vertx.core.eventbus.impl.MessageImpl)>(v);
if v == null goto label;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: boolean isSend()>();
if v == 0 goto label;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.HandlerHolder nextHandler(io.vertx.core.impl.utils.ConcurrentCyclicSequence,boolean)>(v, v);
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.spi.metrics.EventBusMetrics metrics>;
if v == null goto label;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.spi.metrics.EventBusMetrics metrics>;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: java.lang.String address()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: boolean isSend()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
interfaceinvoke v.<io.vertx.core.spi.metrics.EventBusMetrics: void messageReceived(java.lang.String,boolean,boolean,int)>(v, v, v, v);
label:
if v == null goto label;
v = v.<io.vertx.core.eventbus.impl.HandlerHolder: io.vertx.core.eventbus.impl.HandlerRegistration handler>;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: io.vertx.core.eventbus.impl.MessageImpl copyBeforeReceive()>();
virtualinvoke v.<io.vertx.core.eventbus.impl.HandlerRegistration: void receive(io.vertx.core.eventbus.impl.MessageImpl)>(v);
goto label;
label:
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.spi.metrics.EventBusMetrics metrics>;
if v == null goto label;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.spi.metrics.EventBusMetrics metrics>;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: java.lang.String address()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: boolean isSend()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<io.vertx.core.impl.utils.ConcurrentCyclicSequence: int size()>();
interfaceinvoke v.<io.vertx.core.spi.metrics.EventBusMetrics: void messageReceived(java.lang.String,boolean,boolean,int)>(v, v, v, v);
label:
v = virtualinvoke v.<io.vertx.core.impl.utils.ConcurrentCyclicSequence: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
if v != 0 goto label;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.HandlerHolder: boolean isLocalOnly()>();
if v != 0 goto label;
label:
v = v.<io.vertx.core.eventbus.impl.HandlerHolder: io.vertx.core.eventbus.impl.HandlerRegistration handler>;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: io.vertx.core.eventbus.impl.MessageImpl copyBeforeReceive()>();
virtualinvoke v.<io.vertx.core.eventbus.impl.HandlerRegistration: void receive(io.vertx.core.eventbus.impl.MessageImpl)>(v);
goto label;
label:
return null;
label:
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.spi.metrics.EventBusMetrics metrics>;
if v == null goto label;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.spi.metrics.EventBusMetrics metrics>;
v = virtualinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: java.lang.String address()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: boolean isSend()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
interfaceinvoke v.<io.vertx.core.spi.metrics.EventBusMetrics: void messageReceived(java.lang.String,boolean,boolean,int)>(v, v, v, 0);
label:
v = new io.vertx.core.eventbus.ReplyException;
v = <io.vertx.core.eventbus.ReplyFailure: io.vertx.core.eventbus.ReplyFailure NO_HANDLERS>;
v = v.<io.vertx.core.eventbus.impl.MessageImpl: java.lang.String address>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("No handlers for address \u0001");
specialinvoke v.<io.vertx.core.eventbus.ReplyException: void <init>(io.vertx.core.eventbus.ReplyFailure,java.lang.String)>(v, v);
return v;
}
protected io.vertx.core.eventbus.impl.HandlerHolder nextHandler(io.vertx.core.impl.utils.ConcurrentCyclicSequence, boolean)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.impl.utils.ConcurrentCyclicSequence v;
java.lang.Object v;
boolean v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.impl.utils.ConcurrentCyclicSequence;
v := @parameter: boolean;
v = virtualinvoke v.<io.vertx.core.impl.utils.ConcurrentCyclicSequence: java.lang.Object next()>();
return v;
}
protected void checkStarted()
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.lang.IllegalStateException v;
boolean v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: boolean started>;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Event Bus is not started");
throw v;
label:
return;
}
protected java.lang.String generateReplyAddress()
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.util.concurrent.atomic.AtomicLong v;
long v;
java.lang.String v, v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.atomic.AtomicLong replySequence>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long incrementAndGet()>();
v = staticinvoke <java.lang.Long: java.lang.String toString(long)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("__vertx.reply.\u0001");
return v;
}
io.vertx.core.eventbus.impl.ReplyHandler createReplyHandler(io.vertx.core.eventbus.impl.MessageImpl, boolean, io.vertx.core.eventbus.DeliveryOptions)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.impl.VertxInternal v;
io.vertx.core.impl.ContextInternal v;
long v;
io.vertx.core.eventbus.impl.ReplyHandler v;
io.vertx.core.eventbus.impl.MessageImpl v;
java.lang.String v, v;
boolean v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.MessageImpl;
v := @parameter: boolean;
v := @parameter: io.vertx.core.eventbus.DeliveryOptions;
v = virtualinvoke v.<io.vertx.core.eventbus.DeliveryOptions: long getSendTimeout()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: java.lang.String generateReplyAddress()>();
virtualinvoke v.<io.vertx.core.eventbus.impl.MessageImpl: void setReplyAddress(java.lang.String)>(v);
v = new io.vertx.core.eventbus.impl.ReplyHandler;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx>;
v = interfaceinvoke v.<io.vertx.core.impl.VertxInternal: io.vertx.core.impl.ContextInternal getOrCreateContext()>();
v = v.<io.vertx.core.eventbus.impl.MessageImpl: java.lang.String address>;
specialinvoke v.<io.vertx.core.eventbus.impl.ReplyHandler: void <init>(io.vertx.core.eventbus.impl.EventBusImpl,io.vertx.core.impl.ContextInternal,java.lang.String,java.lang.String,boolean,long)>(v, v, v, v, v, v);
virtualinvoke v.<io.vertx.core.eventbus.impl.ReplyHandler: void register()>();
return v;
}
public io.vertx.core.eventbus.impl.OutboundDeliveryContext newSendContext(io.vertx.core.eventbus.impl.MessageImpl, io.vertx.core.eventbus.DeliveryOptions, io.vertx.core.eventbus.impl.ReplyHandler, io.vertx.core.Promise)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.impl.OutboundDeliveryContext v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.impl.VertxInternal v;
io.vertx.core.Promise v;
io.vertx.core.impl.ContextInternal v;
io.vertx.core.eventbus.impl.ReplyHandler v;
io.vertx.core.eventbus.impl.MessageImpl v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.MessageImpl;
v := @parameter: io.vertx.core.eventbus.DeliveryOptions;
v := @parameter: io.vertx.core.eventbus.impl.ReplyHandler;
v := @parameter: io.vertx.core.Promise;
v = new io.vertx.core.eventbus.impl.OutboundDeliveryContext;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.impl.VertxInternal vertx>;
v = interfaceinvoke v.<io.vertx.core.impl.VertxInternal: io.vertx.core.impl.ContextInternal getOrCreateContext()>();
specialinvoke v.<io.vertx.core.eventbus.impl.OutboundDeliveryContext: void <init>(io.vertx.core.impl.ContextInternal,io.vertx.core.eventbus.impl.MessageImpl,io.vertx.core.eventbus.DeliveryOptions,io.vertx.core.eventbus.impl.ReplyHandler,io.vertx.core.Promise)>(v, v, v, v, v);
return v;
}
public void sendOrPubInternal(io.vertx.core.eventbus.impl.OutboundDeliveryContext)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.impl.OutboundDeliveryContext v;
io.vertx.core.spi.metrics.EventBusMetrics v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.OutboundDeliveryContext;
virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void checkStarted()>();
v.<io.vertx.core.eventbus.impl.OutboundDeliveryContext: io.vertx.core.eventbus.impl.EventBusImpl bus> = v;
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.spi.metrics.EventBusMetrics metrics>;
v.<io.vertx.core.eventbus.impl.OutboundDeliveryContext: io.vertx.core.spi.metrics.EventBusMetrics metrics> = v;
virtualinvoke v.<io.vertx.core.eventbus.impl.OutboundDeliveryContext: void next()>();
return;
}
public void sendOrPubInternal(io.vertx.core.eventbus.impl.MessageImpl, io.vertx.core.eventbus.DeliveryOptions, io.vertx.core.eventbus.impl.ReplyHandler, io.vertx.core.Promise)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
io.vertx.core.eventbus.impl.OutboundDeliveryContext v;
io.vertx.core.eventbus.DeliveryOptions v;
io.vertx.core.Promise v;
io.vertx.core.eventbus.impl.ReplyHandler v;
io.vertx.core.eventbus.impl.MessageImpl v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: io.vertx.core.eventbus.impl.MessageImpl;
v := @parameter: io.vertx.core.eventbus.DeliveryOptions;
v := @parameter: io.vertx.core.eventbus.impl.ReplyHandler;
v := @parameter: io.vertx.core.Promise;
virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void checkStarted()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: io.vertx.core.eventbus.impl.OutboundDeliveryContext newSendContext(io.vertx.core.eventbus.impl.MessageImpl,io.vertx.core.eventbus.DeliveryOptions,io.vertx.core.eventbus.impl.ReplyHandler,io.vertx.core.Promise)>(v, v, v, v);
virtualinvoke v.<io.vertx.core.eventbus.impl.EventBusImpl: void sendOrPubInternal(io.vertx.core.eventbus.impl.OutboundDeliveryContext)>(v);
return;
}
private io.vertx.core.Future unregisterAll()
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.util.Iterator v, v;
java.util.Collection v;
io.vertx.core.Future v, v;
java.util.ArrayList v;
java.util.concurrent.ConcurrentMap v;
io.vertx.core.CompositeFuture v;
io.vertx.core.eventbus.impl.HandlerRegistration v;
java.lang.Object v, v;
boolean v, v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.ConcurrentMap handlerMap>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<io.vertx.core.impl.utils.ConcurrentCyclicSequence: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.HandlerHolder: io.vertx.core.eventbus.impl.HandlerRegistration getHandler()>();
v = virtualinvoke v.<io.vertx.core.eventbus.impl.HandlerRegistration: io.vertx.core.Future unregister()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = staticinvoke <io.vertx.core.Future: io.vertx.core.CompositeFuture join(java.util.List)>(v);
v = interfaceinvoke v.<io.vertx.core.CompositeFuture: io.vertx.core.Future mapEmpty()>();
return v;
}
private void addInterceptor(java.util.concurrent.atomic.AtomicReferenceFieldUpdater, io.vertx.core.Handler)
{
io.vertx.core.eventbus.impl.EventBusImpl v;
java.lang.Object[] v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
int v, v, v;
java.lang.Object v;
io.vertx.core.Handler v;
boolean v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
v := @parameter: io.vertx.core.Handler;
label:
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceFieldUpdater: java.lang.Object get(java.lang.Object)>(v);
v = lengthof v;
v = v + 1;
v = staticinvoke <java.util.Arrays: java.lang.Object[] copyOf(java.lang.Object[],int)>(v, v);
v = lengthof v;
v[v] = v;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceFieldUpdater: boolean compareAndSet(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
if v == 0 goto label;
return;
}
private void removeInterceptor(java.util.concurrent.atomic.AtomicReferenceFieldUpdater, io.vertx.core.Handler)
{
int v, v, v, v, v, v, v, v, v, v;
boolean v, v;
io.vertx.core.eventbus.impl.EventBusImpl v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
io.vertx.core.Handler[] v;
java.lang.Object v;
io.vertx.core.Handler v, v;
v := @this: io.vertx.core.eventbus.impl.EventBusImpl;
v := @parameter: java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
v := @parameter: io.vertx.core.Handler;
label:
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceFieldUpdater: java.lang.Object get(java.lang.Object)>(v);
v = (int) -1;
v = v;
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v;
goto label;
label:
v = v + 1;
goto label;
label:
v = (int) -1;
if v != v goto label;
return;
label:
v = lengthof v;
v = v - 1;
v = newarray (io.vertx.core.Handler)[v];
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
v = v + 1;
v = lengthof v;
v = v - v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceFieldUpdater: boolean compareAndSet(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
if v == 0 goto label;
return;
}
static void <clinit>()
{
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v, v;
v = staticinvoke <java.util.concurrent.atomic.AtomicReferenceFieldUpdater: java.util.concurrent.atomic.AtomicReferenceFieldUpdater newUpdater(java.lang.Class,java.lang.Class,java.lang.String)>(class "Lio/vertx/core/eventbus/impl/EventBusImpl;", class "[Lio/vertx/core/Handler;", "outboundInterceptors");
<io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.atomic.AtomicReferenceFieldUpdater OUTBOUND_INTERCEPTORS_UPDATER> = v;
v = staticinvoke <java.util.concurrent.atomic.AtomicReferenceFieldUpdater: java.util.concurrent.atomic.AtomicReferenceFieldUpdater newUpdater(java.lang.Class,java.lang.Class,java.lang.String)>(class "Lio/vertx/core/eventbus/impl/EventBusImpl;", class "[Lio/vertx/core/Handler;", "inboundInterceptors");
<io.vertx.core.eventbus.impl.EventBusImpl: java.util.concurrent.atomic.AtomicReferenceFieldUpdater INBOUND_INTERCEPTORS_UPDATER> = v;
return;
}
}