@Sharable public class Base64Decoder extends OneToOneDecoder {
@Sharable public class ProtobufVarint32LengthFieldPrepender extends OneToOneEncoder {
@Sharable public class EventEncoder extends OneToOneEncoder
@Sharable public class CompatibleMarshallingEncoder extends OneToOneEncoder {
@Sharable public class MessageBufferEventEncoder extends OneToOneEncoder
@Sharable public class ByteArrayToChannelBufferEncoder extends OneToOneEncoder
@Sharable public class MessageBufferEventDecoder extends OneToOneDecoder
@Sharable public class MessageBufferEventDecoder extends OneToOneDecoder
@Sharable public class ByteArrayDecoder extends OneToOneDecoder
@Sharable public class ByteArrayStreamDecoder extends OneToOneDecoder{ private static final Logger LOG = LoggerFactory.getLogger(ByteArrayStreamDecoder.class); @Override protected Object decode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { if ((null == msg)) { LOG.error("Incoming message is null"); return msg; } Event event = (Event)msg; if(event.getType() == Events.SESSION_MESSAGE) { ChannelBuffer buffer = (ChannelBuffer)event.getSource(); LOG.trace("BinaryArray with size:{} Received.", buffer.readableBytes()); ByteArrayInputStream bis = new ByteArrayInputStream(buffer.array()); event.setSource(bis); } return event; } }
/** * Encodes an RTSP message represented in {@link HttpMessage} into * a {@link ChannelBuffer}. * * @apiviz.landmark */ @Sharable public abstract class RtspMessageEncoder extends HttpMessageEncoder { /** * Creates a new instance. */ protected RtspMessageEncoder() { } @Override protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { // Ignore unrelated message types such as HttpChunk. if (!(msg instanceof HttpMessage)) { return msg; } return super.encode(ctx, channel, msg); } }
@Sharable public class IdleStateCheckHandler extends IdleStateAwareChannelHandler { private static final Logger LOG = LoggerFactory.getLogger(IdleStateCheckHandler.class); @Override public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception { if(e.getState() == IdleState.ALL_IDLE){ LOG.warn("Channel {} has been idle, it will be disconnected now: ",e.getChannel()); e.getChannel().close(); } } @Override public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception { LOG.warn("Channel {} has thrown exception {}",e.getChannel(),e); e.getChannel().close(); super.exceptionCaught(ctx, e); } }
@Sharable public class EventDecoder extends OneToOneDecoder { private static final Logger LOG = LoggerFactory.getLogger(EventDecoder.class); @Override protected Object decode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { if(null == msg) { LOG.error("Null msg received in EventDecoder"); return msg; } ChannelBuffer buffer = (ChannelBuffer)msg; int opcode = buffer.readUnsignedByte(); if(Events.LOG_IN == opcode || Events.RECONNECT == opcode){ buffer.readUnsignedByte();// To read-destroy the protocol version byte. } return Events.event(buffer, opcode); } }
/** * Encodes an {@link SocksMessage} into a {@link ChannelBuffer}. * {@link OneToOneEncoder} implementation. * Use this with {@link SocksInitRequest}, {@link SocksInitResponse}, {@link SocksAuthRequest}, * {@link SocksAuthResponse}, {@link SocksCmdRequest} and {@link SocksCmdResponse} */ @ChannelHandler.Sharable public class SocksMessageEncoder extends OneToOneEncoder { private static final int DEFAULT_ENCODER_BUFFER_SIZE = 1024; @Override protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { ChannelBuffer buffer = null; if (msg instanceof SocksMessage) { buffer = ChannelBuffers.buffer(DEFAULT_ENCODER_BUFFER_SIZE); ((SocksMessage) msg).encodeAsByteBuf(buffer); } return buffer; } }
@Sharable public class NulEncoder extends OneToOneEncoder { private static final Logger LOG = LoggerFactory.getLogger(NulEncoder.class); @Override protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { if(!(msg instanceof ChannelBuffer)) { LOG.error("Expected channel buffer but recieved: {}", msg .getClass().getCanonicalName()); return msg; } ChannelBuffer nulBuffer = ChannelBuffers.wrappedBuffer(new byte[] { 0 }); ChannelBuffer buffer = ChannelBuffers.wrappedBuffer((ChannelBuffer)msg,nulBuffer); return buffer; } }
@Sharable public class NettyHandler extends SimpleChannelHandler {
@Sharable public class NettyHandler extends SimpleChannelHandler {
@Sharable public class EventSourceToAMF3Encoder extends JavaObjectToAMF3Encoder { @Override protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { Event event = (Event)msg; ChannelBuffer payload = (ChannelBuffer) super.encode(ctx, channel, event.getSource()); return Events.event(payload, event.getType()); } }
@Sharable private class InternalEncoder extends OneToOneEncoder { @Override protected Object encode(ChannelHandlerContext ctx, Channel ch, Object msg) throws Exception { org.apache.dubbo.remoting.buffer.ChannelBuffer buffer = org.apache.dubbo.remoting.buffer.ChannelBuffers.dynamicBuffer(1024); NettyChannel channel = NettyChannel.getOrAddChannel(ch, url, handler); try { codec.encode(channel, buffer, msg); } finally { NettyChannel.removeChannelIfDisconnected(ch); } return ChannelBuffers.wrappedBuffer(buffer.toByteBuffer()); } }
@Sharable private class InternalEncoder extends OneToOneEncoder { @Override protected Object encode(ChannelHandlerContext ctx, Channel ch, Object msg) throws Exception { org.apache.dubbo.remoting.buffer.ChannelBuffer buffer = org.apache.dubbo.remoting.buffer.ChannelBuffers.dynamicBuffer(1024); NettyChannel channel = NettyChannel.getOrAddChannel(ch, url, handler); try { codec.encode(channel, buffer, msg); } finally { NettyChannel.removeChannelIfDisconnected(ch); } return ChannelBuffers.wrappedBuffer(buffer.toByteBuffer()); } }