public class org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel extends io.grpc.ManagedChannel
{
private final java.util.concurrent.atomic.AtomicInteger referenceCount;
private io.grpc.ManagedChannel grpcChannel;
public void <init>(io.grpc.ManagedChannel)
{
org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel v;
io.grpc.ManagedChannel v;
java.util.concurrent.atomic.AtomicInteger v;
v := @this: org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel;
v := @parameter: io.grpc.ManagedChannel;
specialinvoke v.<io.grpc.ManagedChannel: void <init>()>();
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>(int)>(0);
v.<org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel: java.util.concurrent.atomic.AtomicInteger referenceCount> = v;
v.<org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel: io.grpc.ManagedChannel grpcChannel> = v;
return;
}
public void incrementAndGetCount()
{
org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel v;
java.util.concurrent.atomic.AtomicInteger v;
v := @this: org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel;
v = v.<org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel: java.util.concurrent.atomic.AtomicInteger referenceCount>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
return;
}
public io.grpc.ManagedChannel shutdown()
{
io.grpc.ManagedChannel v, v, v;
java.util.concurrent.atomic.AtomicInteger v;
int v;
org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel v;
v := @this: org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel;
v = v.<org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel: java.util.concurrent.atomic.AtomicInteger referenceCount>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int decrementAndGet()>();
if v > 0 goto label;
v = v.<org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel: io.grpc.ManagedChannel grpcChannel>;
v = virtualinvoke v.<io.grpc.ManagedChannel: io.grpc.ManagedChannel shutdown()>();
return v;
label:
v = v.<org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel: io.grpc.ManagedChannel grpcChannel>;
return v;
}
public boolean isShutdown()
{
org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel v;
io.grpc.ManagedChannel v;
boolean v;
v := @this: org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel;
v = v.<org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel: io.grpc.ManagedChannel grpcChannel>;
v = virtualinvoke v.<io.grpc.ManagedChannel: boolean isShutdown()>();
return v;
}
public boolean isTerminated()
{
org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel v;
io.grpc.ManagedChannel v;
boolean v;
v := @this: org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel;
v = v.<org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel: io.grpc.ManagedChannel grpcChannel>;
v = virtualinvoke v.<io.grpc.ManagedChannel: boolean isTerminated()>();
return v;
}
public io.grpc.ManagedChannel shutdownNow()
{
org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel v;
io.grpc.ManagedChannel v;
v := @this: org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel;
v = virtualinvoke v.<org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel: io.grpc.ManagedChannel shutdown()>();
return v;
}
public boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException
{
java.util.concurrent.TimeUnit v;
io.grpc.ManagedChannel v;
org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel v;
long v;
boolean v;
v := @this: org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = v.<org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel: io.grpc.ManagedChannel grpcChannel>;
v = virtualinvoke v.<io.grpc.ManagedChannel: boolean awaitTermination(long,java.util.concurrent.TimeUnit)>(v, v);
return v;
}
public io.grpc.ClientCall newCall(io.grpc.MethodDescriptor, io.grpc.CallOptions)
{
io.grpc.CallOptions v;
io.grpc.ManagedChannel v;
org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel v;
io.grpc.MethodDescriptor v;
io.grpc.ClientCall v;
v := @this: org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel;
v := @parameter: io.grpc.MethodDescriptor;
v := @parameter: io.grpc.CallOptions;
v = v.<org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel: io.grpc.ManagedChannel grpcChannel>;
v = virtualinvoke v.<io.grpc.ManagedChannel: io.grpc.ClientCall newCall(io.grpc.MethodDescriptor,io.grpc.CallOptions)>(v, v);
return v;
}
public java.lang.String authority()
{
org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel v;
java.lang.String v;
io.grpc.ManagedChannel v;
v := @this: org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel;
v = v.<org.apache.dubbo.rpc.protocol.grpc.ReferenceCountManagedChannel: io.grpc.ManagedChannel grpcChannel>;
v = virtualinvoke v.<io.grpc.ManagedChannel: java.lang.String authority()>();
return v;
}
}