public class org.apache.dubbo.remoting.transport.codec.CodecAdapter extends java.lang.Object implements org.apache.dubbo.remoting.Codec
{
private org.apache.dubbo.remoting.Codec codec;
public void <init>(org.apache.dubbo.remoting.Codec)
{
org.apache.dubbo.remoting.Codec v;
org.apache.dubbo.remoting.transport.codec.CodecAdapter v;
v := @this: org.apache.dubbo.remoting.transport.codec.CodecAdapter;
v := @parameter: org.apache.dubbo.remoting.Codec;
specialinvoke v.<java.lang.Object: void <init>()>();
staticinvoke <org.apache.dubbo.common.utils.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "codec == null");
v.<org.apache.dubbo.remoting.transport.codec.CodecAdapter: org.apache.dubbo.remoting.Codec codec> = v;
return;
}
public void encode(org.apache.dubbo.remoting.Channel, org.apache.dubbo.remoting.buffer.ChannelBuffer, java.lang.Object) throws java.io.IOException
{
byte[] v;
org.apache.dubbo.remoting.buffer.ChannelBuffer v;
org.apache.dubbo.remoting.Codec v;
java.lang.Object v;
org.apache.dubbo.common.io.UnsafeByteArrayOutputStream v;
org.apache.dubbo.remoting.Channel v;
org.apache.dubbo.remoting.transport.codec.CodecAdapter v;
v := @this: org.apache.dubbo.remoting.transport.codec.CodecAdapter;
v := @parameter: org.apache.dubbo.remoting.Channel;
v := @parameter: org.apache.dubbo.remoting.buffer.ChannelBuffer;
v := @parameter: java.lang.Object;
v = new org.apache.dubbo.common.io.UnsafeByteArrayOutputStream;
specialinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayOutputStream: void <init>(int)>(1024);
v = v.<org.apache.dubbo.remoting.transport.codec.CodecAdapter: org.apache.dubbo.remoting.Codec codec>;
interfaceinvoke v.<org.apache.dubbo.remoting.Codec: void encode(org.apache.dubbo.remoting.Channel,java.io.OutputStream,java.lang.Object)>(v, v, v);
v = virtualinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayOutputStream: byte[] toByteArray()>();
interfaceinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBuffer: void writeBytes(byte[])>(v);
return;
}
public java.lang.Object decode(org.apache.dubbo.remoting.Channel, org.apache.dubbo.remoting.buffer.ChannelBuffer) throws java.io.IOException
{
byte[] v;
org.apache.dubbo.remoting.buffer.ChannelBuffer v;
org.apache.dubbo.common.io.UnsafeByteArrayInputStream v;
org.apache.dubbo.remoting.Channel v;
org.apache.dubbo.remoting.Codec v;
int v, v, v, v;
java.lang.Object v, v, v;
org.apache.dubbo.remoting.transport.codec.CodecAdapter v;
v := @this: org.apache.dubbo.remoting.transport.codec.CodecAdapter;
v := @parameter: org.apache.dubbo.remoting.Channel;
v := @parameter: org.apache.dubbo.remoting.buffer.ChannelBuffer;
v = interfaceinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBuffer: int readableBytes()>();
v = newarray (byte)[v];
v = interfaceinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBuffer: int readerIndex()>();
interfaceinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBuffer: void readBytes(byte[])>(v);
v = new org.apache.dubbo.common.io.UnsafeByteArrayInputStream;
specialinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayInputStream: void <init>(byte[])>(v);
v = v.<org.apache.dubbo.remoting.transport.codec.CodecAdapter: org.apache.dubbo.remoting.Codec codec>;
v = interfaceinvoke v.<org.apache.dubbo.remoting.Codec: java.lang.Object decode(org.apache.dubbo.remoting.Channel,java.io.InputStream)>(v, v);
v = virtualinvoke v.<org.apache.dubbo.common.io.UnsafeByteArrayInputStream: int position()>();
v = v + v;
interfaceinvoke v.<org.apache.dubbo.remoting.buffer.ChannelBuffer: void readerIndex(int)>(v);
v = <org.apache.dubbo.remoting.Codec: java.lang.Object NEED_MORE_INPUT>;
if v != v goto label;
v = <org.apache.dubbo.remoting.Codec2$DecodeResult: org.apache.dubbo.remoting.Codec2$DecodeResult NEED_MORE_INPUT>;
goto label;
label:
v = v;
label:
return v;
}
public org.apache.dubbo.remoting.Codec getCodec()
{
org.apache.dubbo.remoting.Codec v;
org.apache.dubbo.remoting.transport.codec.CodecAdapter v;
v := @this: org.apache.dubbo.remoting.transport.codec.CodecAdapter;
v = v.<org.apache.dubbo.remoting.transport.codec.CodecAdapter: org.apache.dubbo.remoting.Codec codec>;
return v;
}
}