public abstract class org.apache.dubbo.remoting.transport.AbstractCodec extends java.lang.Object implements org.apache.dubbo.remoting.Codec
{
private static final org.apache.dubbo.common.logger.Logger logger;
private static final java.lang.String CLIENT_SIDE;
private static final java.lang.String SERVER_SIDE;
public void <init>()
{
org.apache.dubbo.remoting.transport.AbstractCodec v;
v := @this: org.apache.dubbo.remoting.transport.AbstractCodec;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
protected static void checkPayload(org.apache.dubbo.remoting.Channel, long) throws java.io.IOException
{
org.apache.dubbo.common.logger.Logger v;
int v;
long v;
java.lang.String v;
org.apache.dubbo.remoting.Channel v;
org.apache.dubbo.remoting.transport.ExceedPayloadLimitException v;
boolean v;
v := @parameter: org.apache.dubbo.remoting.Channel;
v := @parameter: long;
v = staticinvoke <org.apache.dubbo.remoting.transport.AbstractCodec: int getPayload(org.apache.dubbo.remoting.Channel)>(v);
v = staticinvoke <org.apache.dubbo.remoting.transport.AbstractCodec: boolean isOverPayload(int,long)>(v, v);
if v == 0 goto label;
v = new org.apache.dubbo.remoting.transport.ExceedPayloadLimitException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,int,org.apache.dubbo.remoting.Channel)>(v, v, 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[])>("Data length too large: \u, max payload: \u, channel: \u0001");
specialinvoke v.<org.apache.dubbo.remoting.transport.ExceedPayloadLimitException: void <init>(java.lang.String)>(v);
v = <org.apache.dubbo.remoting.transport.AbstractCodec: org.apache.dubbo.common.logger.Logger logger>;
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void error(java.lang.Throwable)>(v);
throw v;
label:
return;
}
protected static int getPayload(org.apache.dubbo.remoting.Channel)
{
org.apache.dubbo.common.URL v, v;
int v;
org.apache.dubbo.remoting.Channel v;
v := @parameter: org.apache.dubbo.remoting.Channel;
v = 8388608;
if v == null goto label;
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: org.apache.dubbo.common.URL getUrl()>();
if v == null goto label;
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: org.apache.dubbo.common.URL getUrl()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: int getParameter(java.lang.String,int)>("payload", 8388608);
label:
return v;
}
protected static boolean isOverPayload(int, long)
{
int v;
long v;
byte v;
v := @parameter: int;
v := @parameter: long;
if v <= 0 goto label;
v = v cmp v;
if v <= 0 goto label;
return 1;
label:
return 0;
}
protected org.apache.dubbo.common.serialize.Serialization getSerialization(org.apache.dubbo.remoting.Channel, org.apache.dubbo.remoting.exchange.Request)
{
org.apache.dubbo.common.URL v;
org.apache.dubbo.remoting.transport.AbstractCodec v;
org.apache.dubbo.remoting.exchange.Request v;
org.apache.dubbo.common.serialize.Serialization v;
org.apache.dubbo.remoting.Channel v;
v := @this: org.apache.dubbo.remoting.transport.AbstractCodec;
v := @parameter: org.apache.dubbo.remoting.Channel;
v := @parameter: org.apache.dubbo.remoting.exchange.Request;
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: org.apache.dubbo.common.URL getUrl()>();
v = staticinvoke <org.apache.dubbo.remoting.transport.CodecSupport: org.apache.dubbo.common.serialize.Serialization getSerialization(org.apache.dubbo.common.URL)>(v);
return v;
}
protected org.apache.dubbo.common.serialize.Serialization getSerialization(org.apache.dubbo.remoting.Channel, org.apache.dubbo.remoting.exchange.Response)
{
org.apache.dubbo.common.URL v;
org.apache.dubbo.remoting.transport.AbstractCodec v;
org.apache.dubbo.common.serialize.Serialization v;
org.apache.dubbo.remoting.Channel v;
org.apache.dubbo.remoting.exchange.Response v;
v := @this: org.apache.dubbo.remoting.transport.AbstractCodec;
v := @parameter: org.apache.dubbo.remoting.Channel;
v := @parameter: org.apache.dubbo.remoting.exchange.Response;
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: org.apache.dubbo.common.URL getUrl()>();
v = staticinvoke <org.apache.dubbo.remoting.transport.CodecSupport: org.apache.dubbo.common.serialize.Serialization getSerialization(org.apache.dubbo.common.URL)>(v);
return v;
}
protected org.apache.dubbo.common.serialize.Serialization getSerialization(org.apache.dubbo.remoting.Channel)
{
org.apache.dubbo.common.URL v;
org.apache.dubbo.remoting.transport.AbstractCodec v;
org.apache.dubbo.common.serialize.Serialization v;
org.apache.dubbo.remoting.Channel v;
v := @this: org.apache.dubbo.remoting.transport.AbstractCodec;
v := @parameter: org.apache.dubbo.remoting.Channel;
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: org.apache.dubbo.common.URL getUrl()>();
v = staticinvoke <org.apache.dubbo.remoting.transport.CodecSupport: org.apache.dubbo.common.serialize.Serialization getSerialization(org.apache.dubbo.common.URL)>(v);
return v;
}
protected boolean isClientSide(org.apache.dubbo.remoting.Channel)
{
org.apache.dubbo.remoting.transport.AbstractCodec v;
java.net.InetAddress v;
org.apache.dubbo.common.URL v;
int v, v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v, v, v, v;
java.net.InetSocketAddress v;
org.apache.dubbo.remoting.Channel v;
java.lang.Object v;
v := @this: org.apache.dubbo.remoting.transport.AbstractCodec;
v := @parameter: org.apache.dubbo.remoting.Channel;
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: java.lang.Object getAttribute(java.lang.String)>("side");
v = "client";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 1;
label:
v = "server";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 0;
label:
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: java.net.InetSocketAddress getRemoteAddress()>();
v = interfaceinvoke v.<org.apache.dubbo.remoting.Channel: org.apache.dubbo.common.URL getUrl()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: int getPort()>();
v = virtualinvoke v.<java.net.InetSocketAddress: int getPort()>();
if v != v goto label;
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getIp()>();
v = staticinvoke <org.apache.dubbo.common.utils.NetUtils: java.lang.String filterLocalHost(java.lang.String)>(v);
v = virtualinvoke v.<java.net.InetSocketAddress: java.net.InetAddress getAddress()>();
v = virtualinvoke v.<java.net.InetAddress: java.lang.String getHostAddress()>();
v = staticinvoke <org.apache.dubbo.common.utils.NetUtils: java.lang.String filterLocalHost(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v == 0 goto label;
v = "client";
goto label;
label:
v = "server";
label:
interfaceinvoke v.<org.apache.dubbo.remoting.Channel: void setAttribute(java.lang.String,java.lang.Object)>("side", v);
return v;
}
protected boolean isServerSide(org.apache.dubbo.remoting.Channel)
{
org.apache.dubbo.remoting.transport.AbstractCodec v;
org.apache.dubbo.remoting.Channel v;
boolean v, v;
v := @this: org.apache.dubbo.remoting.transport.AbstractCodec;
v := @parameter: org.apache.dubbo.remoting.Channel;
v = virtualinvoke v.<org.apache.dubbo.remoting.transport.AbstractCodec: boolean isClientSide(org.apache.dubbo.remoting.Channel)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
static void <clinit>()
{
org.apache.dubbo.common.logger.Logger v;
v = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(class "Lorg/apache/dubbo/remoting/transport/AbstractCodec;");
<org.apache.dubbo.remoting.transport.AbstractCodec: org.apache.dubbo.common.logger.Logger logger> = v;
return;
}
}