@Override public boolean acceptInboundMessage(Object msg) throws Exception { if (msg instanceof DatagramPacket) { return decoder.acceptInboundMessage(((DatagramPacket) msg).content()); } return false; }
@Override protected void decode(ChannelHandlerContext ctx, DatagramPacket msg, List<Object> out) throws Exception { decoder.decode(ctx, msg.content(), out); }
@Override public boolean acceptInboundMessage(Object msg) throws Exception { if (msg instanceof DatagramPacket) { return decoder.acceptInboundMessage(((DatagramPacket) msg).content()); } return false; }
@Override protected void decode(ChannelHandlerContext ctx, DatagramPacket msg, List<Object> out) throws Exception { decoder.decode(ctx, msg.content(), out); }
@Override public boolean acceptInboundMessage(Object msg) throws Exception { if (msg instanceof DatagramPacket) { return decoder.acceptInboundMessage(((DatagramPacket) msg).content()); } return false; }
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { inPackets.incrementAndGet(); if (msg instanceof ByteBuf) { inSize.addAndGet(((ByteBuf) msg).readableBytes()); } else if (msg instanceof DatagramPacket) { inSize.addAndGet(((DatagramPacket) msg).content().readableBytes()); } super.channelRead(ctx, msg); }
/** * Try to add the given {@link DatagramPacket}. Returns {@code true} on success, * {@code false} otherwise. */ boolean add(DatagramPacket packet) { if (count == packets.length) { return false; } ByteBuf content = packet.content(); int len = content.readableBytes(); if (len == 0) { return true; } NativeDatagramPacket p = packets[count]; InetSocketAddress recipient = packet.recipient(); if (!p.init(content, recipient)) { return false; } count++; return true; }
@Override public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception { outPackets.incrementAndGet(); if (msg instanceof ByteBuf) { outSize.addAndGet(((ByteBuf) msg).readableBytes()); } else if (msg instanceof DatagramPacket) { outSize.addAndGet(((DatagramPacket) msg).content().readableBytes()); } super.write(ctx, msg, promise); } }
@Override public DatagramPacket retainedDuplicate() { return replace(content().retainedDuplicate()); }
@Override public DatagramPacket copy() { return replace(content().copy()); }
@Override public DatagramPacket duplicate() { return replace(content().duplicate()); }
@Override public DatagramPacket copy() { return replace(content().copy()); }
@Override public DatagramPacket retainedDuplicate() { return replace(content().retainedDuplicate()); }
@Override public DatagramPacket duplicate() { return replace(content().duplicate()); }
@Override protected void channelRead0(ChannelHandlerContext context, DatagramPacket packet) throws Exception { byte[] payload = new byte[packet.content().readInt()]; packet.content().readBytes(payload); Message message = SERIALIZER.decode(payload); Map<BiConsumer<Address, byte[]>, Executor> listeners = NettyUnicastService.this.listeners.get(message.subject()); if (listeners != null) { listeners.forEach((consumer, executor) -> executor.execute(() -> consumer.accept(message.source(), message.payload()))); } } })
public static Packet decodeFrame(DatagramPacket frame) { ByteBuf in = frame.content(); int readableBytes = in.readableBytes(); int bodyLength = in.readInt(); if (readableBytes < (bodyLength + Packet.HEADER_LEN)) { return null; } return decodePacket(new UDPPacket(in.readByte() , frame.sender()), in, bodyLength); }
@Override protected void decode(ChannelHandlerContext ctx, DatagramPacket msg, List<Object> out) throws Exception { out.add(ReferenceCountUtil.retain(SenderEnvelope.of(msg.content(), msg.sender()))); } }
public void handleMessage(Object msg) { if (msg instanceof DatagramPacket) { DatagramPacket packet = (DatagramPacket) msg; ByteBuf content = packet.content(); if (content.isDirect()) { content = VertxHandler.safeBuffer(content, chctx.alloc()); } handlePacket(new DatagramPacketImpl(packet.sender(), Buffer.buffer(content))); } }
@Override protected void decode(ChannelHandlerContext ctx, DatagramPacket packet, List<Object> out) throws Exception { final ByteBuf buf = packet.content(); final DnsQuery query = newQuery(packet, buf); boolean success = false; try { final int questionCount = buf.readUnsignedShort(); final int answerCount = buf.readUnsignedShort(); final int authorityRecordCount = buf.readUnsignedShort(); final int additionalRecordCount = buf.readUnsignedShort(); decodeQuestions(query, buf, questionCount); decodeRecords(query, DnsSection.ANSWER, buf, answerCount); decodeRecords(query, DnsSection.AUTHORITY, buf, authorityRecordCount); decodeRecords(query, DnsSection.ADDITIONAL, buf, additionalRecordCount); out.add(query); success = true; } finally { if (!success) { query.release(); } } }
if (msg instanceof DatagramPacket) { DatagramPacket p = (DatagramPacket) msg; ByteBuf content = p.content(); if (isSingleDirectBuffer(content)) { return p;