public class io.smallrye.mutiny.operators.multi.MultiCacheOp extends io.smallrye.mutiny.operators.multi.AbstractMultiOperator implements org.reactivestreams.Subscriber, io.smallrye.mutiny.subscription.ContextSupport
{
private final java.util.concurrent.atomic.AtomicBoolean hasSubscribedToUpstream;
private final java.util.List subscribers;
private volatile boolean terminated;
private final java.util.concurrent.CopyOnWriteArrayList history;
private volatile io.smallrye.mutiny.Context context;
private java.lang.Throwable failure;
private volatile boolean done;
public void <init>(io.smallrye.mutiny.Multi)
{
java.util.concurrent.atomic.AtomicBoolean v;
io.smallrye.mutiny.Multi v;
io.smallrye.mutiny.operators.multi.MultiCacheOp v;
java.util.concurrent.CopyOnWriteArrayList v, v;
v := @this: io.smallrye.mutiny.operators.multi.MultiCacheOp;
v := @parameter: io.smallrye.mutiny.Multi;
specialinvoke v.<io.smallrye.mutiny.operators.multi.AbstractMultiOperator: void <init>(io.smallrye.mutiny.Multi)>(v);
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: java.util.concurrent.atomic.AtomicBoolean hasSubscribedToUpstream> = v;
v = new java.util.concurrent.CopyOnWriteArrayList;
specialinvoke v.<java.util.concurrent.CopyOnWriteArrayList: void <init>()>();
v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: java.util.List subscribers> = v;
v = new java.util.concurrent.CopyOnWriteArrayList;
specialinvoke v.<java.util.concurrent.CopyOnWriteArrayList: void <init>()>();
v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: java.util.concurrent.CopyOnWriteArrayList history> = v;
return;
}
public void subscribe(io.smallrye.mutiny.subscription.MultiSubscriber)
{
io.smallrye.mutiny.groups.MultiSubscribe v;
io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription v;
java.util.concurrent.atomic.AtomicBoolean v;
io.smallrye.mutiny.Context v, v;
io.smallrye.mutiny.Multi v;
io.smallrye.mutiny.operators.multi.MultiCacheOp v;
io.smallrye.mutiny.subscription.MultiSubscriber v;
boolean v, v;
v := @this: io.smallrye.mutiny.operators.multi.MultiCacheOp;
v := @parameter: io.smallrye.mutiny.subscription.MultiSubscriber;
v = new io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription;
specialinvoke v.<io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription: void <init>(io.smallrye.mutiny.subscription.MultiSubscriber,io.smallrye.mutiny.operators.multi.MultiCacheOp)>(v, v);
interfaceinvoke v.<io.smallrye.mutiny.subscription.MultiSubscriber: void onSubscribe(org.reactivestreams.Subscription)>(v);
specialinvoke v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: void addDownstreamSubscription(io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription)>(v);
v = v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: java.util.concurrent.atomic.AtomicBoolean hasSubscribedToUpstream>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = v instanceof io.smallrye.mutiny.subscription.ContextSupport;
if v == 0 goto label;
v = interfaceinvoke v.<io.smallrye.mutiny.subscription.ContextSupport: io.smallrye.mutiny.Context context()>();
v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: io.smallrye.mutiny.Context context> = v;
goto label;
label:
v = staticinvoke <io.smallrye.mutiny.Context: io.smallrye.mutiny.Context empty()>();
v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: io.smallrye.mutiny.Context context> = v;
label:
v = v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: io.smallrye.mutiny.Multi upstream>;
v = interfaceinvoke v.<io.smallrye.mutiny.Multi: io.smallrye.mutiny.groups.MultiSubscribe subscribe()>();
virtualinvoke v.<io.smallrye.mutiny.groups.MultiSubscribe: org.reactivestreams.Subscriber withSubscriber(org.reactivestreams.Subscriber)>(v);
goto label;
label:
virtualinvoke v.<io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription: void replay()>();
label:
return;
}
private synchronized void addDownstreamSubscription(io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription)
{
java.util.List v;
io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription v;
boolean v;
io.smallrye.mutiny.operators.multi.MultiCacheOp v;
v := @this: io.smallrye.mutiny.operators.multi.MultiCacheOp;
v := @parameter: io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription;
v = v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: boolean terminated>;
if v == 0 goto label;
return;
label:
v = v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: java.util.List subscribers>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return;
}
private synchronized void remove(io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription)
{
io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription v;
java.util.List v;
io.smallrye.mutiny.operators.multi.MultiCacheOp v;
v := @this: io.smallrye.mutiny.operators.multi.MultiCacheOp;
v := @parameter: io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription;
v = v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: java.util.List subscribers>;
interfaceinvoke v.<java.util.List: boolean remove(java.lang.Object)>(v);
return;
}
public void onSubscribe(org.reactivestreams.Subscription)
{
io.smallrye.mutiny.operators.multi.MultiCacheOp v;
org.reactivestreams.Subscription v;
v := @this: io.smallrye.mutiny.operators.multi.MultiCacheOp;
v := @parameter: org.reactivestreams.Subscription;
interfaceinvoke v.<org.reactivestreams.Subscription: void request(long)>(9223372036854775807L);
return;
}
public synchronized void onNext(java.lang.Object)
{
java.util.Iterator v;
io.smallrye.mutiny.operators.multi.MultiCacheOp$Node v;
io.smallrye.mutiny.operators.multi.MultiCacheOp v;
java.util.List v;
java.lang.Object v, v;
boolean v;
java.util.concurrent.CopyOnWriteArrayList v;
v := @this: io.smallrye.mutiny.operators.multi.MultiCacheOp;
v := @parameter: java.lang.Object;
v = v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: java.util.concurrent.CopyOnWriteArrayList history>;
v = new io.smallrye.mutiny.operators.multi.MultiCacheOp$Node;
specialinvoke v.<io.smallrye.mutiny.operators.multi.MultiCacheOp$Node: void <init>(java.lang.Object)>(v);
virtualinvoke v.<java.util.concurrent.CopyOnWriteArrayList: boolean add(java.lang.Object)>(v);
v = v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: java.util.List subscribers>;
v = interfaceinvoke v.<java.util.List: 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()>();
virtualinvoke v.<io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription: void replay()>();
goto label;
label:
return;
}
public void onError(java.lang.Throwable)
{
java.lang.Throwable v;
java.util.List v;
java.util.Iterator v;
java.lang.Object v;
boolean v, v;
io.smallrye.mutiny.operators.multi.MultiCacheOp v;
v := @this: io.smallrye.mutiny.operators.multi.MultiCacheOp;
v := @parameter: java.lang.Throwable;
v = v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: boolean done>;
if v == 0 goto label;
return;
label:
v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: java.lang.Throwable failure> = v;
v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: boolean done> = 1;
v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: boolean terminated> = 1;
v = v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: java.util.List subscribers>;
v = interfaceinvoke v.<java.util.List: 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()>();
virtualinvoke v.<io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription: void replay()>();
goto label;
label:
return;
}
public void onComplete()
{
java.util.List v;
java.util.Iterator v;
java.lang.Object v;
boolean v;
io.smallrye.mutiny.operators.multi.MultiCacheOp v;
v := @this: io.smallrye.mutiny.operators.multi.MultiCacheOp;
v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: boolean done> = 1;
v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: boolean terminated> = 1;
v = v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: java.util.List subscribers>;
v = interfaceinvoke v.<java.util.List: 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()>();
virtualinvoke v.<io.smallrye.mutiny.operators.multi.MultiCacheOp$CacheSubscription: void replay()>();
goto label;
label:
return;
}
public io.smallrye.mutiny.Context context()
{
io.smallrye.mutiny.Context v;
io.smallrye.mutiny.operators.multi.MultiCacheOp v;
v := @this: io.smallrye.mutiny.operators.multi.MultiCacheOp;
v = v.<io.smallrye.mutiny.operators.multi.MultiCacheOp: io.smallrye.mutiny.Context context>;
return v;
}
}