public MsgEchoClientHandler() { super(false); final ByteBuf byteBuf = Unpooled.buffer(MsgEchoClient.SIZE); for (int i = 0; i < byteBuf.capacity(); i++) { byteBuf.writeByte((byte) i); } message = new UdtMessage(byteBuf); }
public MsgEchoPeerHandler(final int messageSize) { super(false); final ByteBuf byteBuf = Unpooled.buffer(messageSize); for (int i = 0; i < byteBuf.capacity(); i++) { byteBuf.writeByte((byte) i); } message = new UdtMessage(byteBuf); }
@Override protected int doReadMessages(List<Object> buf) throws Exception { final int maximumMessageSize = config.getReceiveBufferSize(); final ByteBuf byteBuf = config.getAllocator().directBuffer( maximumMessageSize); final int receivedMessageSize = byteBuf.writeBytes(javaChannel(), maximumMessageSize); if (receivedMessageSize <= 0) { byteBuf.release(); return 0; } if (receivedMessageSize >= maximumMessageSize) { javaChannel().close(); throw new ChannelException( "Invalid config : increase receive buffer size to avoid message truncation"); } // delivers a message buf.add(new UdtMessage(byteBuf)); return 1; }
@Override protected boolean doWriteMessage(Object msg, ChannelOutboundBuffer in) throws Exception { // expects a message final UdtMessage message = (UdtMessage) msg; final ByteBuf byteBuf = message.content(); final int messageSize = byteBuf.readableBytes(); final long writtenBytes; if (byteBuf.nioBufferCount() == 1) { writtenBytes = javaChannel().write(byteBuf.nioBuffer()); } else { writtenBytes = javaChannel().write(byteBuf.nioBuffers()); } // did not write the message if (writtenBytes <= 0 && messageSize > 0) { return false; } // wrote message completely if (writtenBytes != messageSize) { throw new Error( "Provider error: failed to write message. Provider library should be upgraded."); } return true; }
@Override protected final Object filterOutboundMessage(Object msg) throws Exception { if (msg instanceof UdtMessage) { return msg; } throw new UnsupportedOperationException( "unsupported message type: " + StringUtil.simpleClassName(msg) + EXPECTED_TYPE); }
public EchoMessageHandler(final Meter meter, final int messageSize) { this.meter = meter; final ByteBuf byteBuf = Unpooled.buffer(messageSize); for (int i = 0; i < byteBuf.capacity(); i++) { byteBuf.writeByte((byte) i); } message = new UdtMessage(byteBuf); }
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { UdtMessage udtMsg = (UdtMessage) msg; if (meter != null) { meter.mark(udtMsg.content().readableBytes()); } ctx.writeAndFlush(msg); }
public MsgEchoClientHandler(final int messageSize) { super(false); final ByteBuf byteBuf = Unpooled.buffer(messageSize); for (int i = 0; i < byteBuf.capacity(); i++) { byteBuf.writeByte((byte) i); } message = new UdtMessage(byteBuf); }
@Override public void channelRead0(ChannelHandlerContext ctx, UdtMessage msg) { ctx.write(msg); }
@Override public void channelRead0(ChannelHandlerContext ctx, UdtMessage message) { ctx.write(message); }
@Override public void channelRead0(ChannelHandlerContext ctx, UdtMessage msg) throws Exception { meter.mark(msg.content().readableBytes()); ctx.write(msg); }
@Override public void channelRead0(ChannelHandlerContext ctx, UdtMessage message) throws Exception { meter.mark(message.content().readableBytes()); ctx.write(message); }
@Override public void messageReceived(ChannelHandlerContext ctx, UdtMessage msg) throws Exception { meter.mark(msg.content().readableBytes()); ctx.write(msg); }
@Override public void messageReceived(ChannelHandlerContext ctx, UdtMessage message) throws Exception { meter.mark(message.content().readableBytes()); ctx.write(message); }