Package io.netty.buffer

Examples of io.netty.buffer.ByteBuf


        throws IOException
        {
            int headerLength = frame.header.version >= Server.VERSION_3
                             ? Header.MODERN_LENGTH
                             : Header.LEGACY_LENGTH;
            ByteBuf header = CBUtil.allocator.buffer(headerLength);

            Message.Type type = frame.header.type;
            header.writeByte(type.direction.addToVersion(frame.header.version));
            header.writeByte(Header.Flag.serialize(frame.header.flags));

            if (frame.header.version >= Server.VERSION_3)
                header.writeShort(frame.header.streamId);
            else
                header.writeByte(frame.header.streamId);

            header.writeByte(type.opcode);
            header.writeInt(frame.body.readableBytes());

            results.add(Unpooled.wrappedBuffer(header, frame.body));
        }
View Full Code Here



    assert !Arrays.asList(dataBodies).contains(null);
    assert rpcConfig.checkSend(rpcType, protobufBody.getClass(), clazz);

    ByteBuf pBuffer = null;
    boolean completed = false;

    try {
      Preconditions.checkNotNull(protobufBody);
      ChannelListenerWithCoordinationId futureListener = queue.get(listener, clazz, connection);
      OutboundRpcMessage m = new OutboundRpcMessage(RpcMode.REQUEST, rpcType, futureListener.getCoordinationId(), protobufBody, dataBodies);
      connection.acquirePermit();
      ChannelFuture channelFuture = connection.getChannel().writeAndFlush(m);
      channelFuture.addListener(futureListener);
      completed = true;
    } catch (InterruptedException e) {
      completed = true;
      listener.failed(new RpcException("Interrupted while attempting to acquire outbound queue.", e));
    } finally {
      if (!completed) {
        if (pBuffer != null) pBuffer.release();
        if (dataBodies != null) {
          for (ByteBuf b : dataBodies) {
            b.release();
          }
View Full Code Here

          in.resetReaderIndex();
          return;
        } else {
          // need to make buffer copy, otherwise netty will try to refill this buffer if we move the readerIndex forward...
          // TODO: Can we avoid this copy?
          ByteBuf outBuf = in.copy(in.readerIndex(), length);
          in.skipBytes(length);
         
          if (RpcConstants.EXTRA_DEBUGGING)
            logger.debug(String.format(
                "ReaderIndex is %d after length header of %d bytes and frame body of length %d bytes.",
View Full Code Here

public class TestEndianess {
 
  @Test
  public void testLittleEndian(){
    DirectBufferAllocator a = new DirectBufferAllocator();
    ByteBuf b = a.buffer(4);
    b.setInt(0, 35);
    assertEquals((int) b.getByte(0), 35);
    assertEquals((int) b.getByte(1), 0);
    assertEquals((int) b.getByte(2), 0);
    assertEquals((int) b.getByte(3), 0);
  }
View Full Code Here

    ByteBuf[] byteBufs = writableBatch.getBuffers();
    int bytes = 0;
    for (int i = 0; i < byteBufs.length; i++) {
      bytes += byteBufs[i].writerIndex();
    }
    ByteBuf byteBuf = allocator.buffer(bytes);
    int index = 0;
    for (int i = 0; i < byteBufs.length; i++) {
      byteBufs[i].readBytes(byteBuf, index, byteBufs[i].writerIndex());
      index += byteBufs[i].writerIndex();
    }
    byteBuf.writerIndex(bytes);
    try {
      batchLoader.load(writableBatch.getDef(), byteBuf);
      boolean firstColumn = true;
      int recordCount = 0;
      for (VectorWrapper<?> v : batchLoader) {
View Full Code Here

        return PacketType.valueOfInner(typeId);
    }

    @Deprecated
    public Packet decodePacket(String string, UUID uuid) throws IOException {
        ByteBuf buf = Unpooled.copiedBuffer(string, CharsetUtil.UTF_8);
        try {
            return null;
        } finally {
            buf.release();
        }
    }
View Full Code Here

            int headEndIndex = buffer.bytesBefore((byte)-1);
            int len = (int) parseLong(buffer, headEndIndex);

            buffer.readerIndex(buffer.readerIndex() + headEndIndex);

            ByteBuf frame = buffer.slice(buffer.readerIndex() + 1, len);
            // skip this frame
            buffer.readerIndex(buffer.readerIndex() + 1 + len);
            return decode(uuid, frame);
        }
        return decode(uuid, buffer);
View Full Code Here

    }

    public void encodeJsonP(Integer jsonpIndex, Queue<Packet> packets, ByteBuf out, ByteBufAllocator allocator, int limit) throws IOException {
        boolean jsonpMode = jsonpIndex != null;

        ByteBuf buf = out;
        if (jsonpMode) {
            buf = allocateBuffer(allocator);
        }

        int i = 0;
        while (true) {
            Packet packet = packets.poll();
            if (packet == null || i == limit) {
                break;
            }

            ByteBuf packetBuf = allocateBuffer(allocator);
            encodePacket(packet, packetBuf, allocator, true, jsonpMode);

            int packetSize = packetBuf.writerIndex();
            if (jsonpMode) {
                // scan for \\\"
                int count = count(packetBuf, Unpooled.copiedBuffer("\\\"", CharsetUtil.UTF_8));
                packetSize -= count;
            }
View Full Code Here

        }
        return res;
    }

    public void encodePacket(Packet packet, ByteBuf buffer, ByteBufAllocator allocator, boolean binary, boolean jsonp) throws IOException {
        ByteBuf buf = buffer;
        if (!binary) {
            buf = allocateBuffer(allocator);
        }
        byte type = toChar(packet.getType().getValue());
        buf.writeByte(type);

        switch (packet.getType()) {

            case PONG: {
                buf.writeBytes(packet.getData().toString().getBytes(CharsetUtil.UTF_8));
                break;
            }

            case OPEN: {
                ByteBufOutputStream out = new ByteBufOutputStream(buf);
                if (jsonp) {
                    jsonSupport.writeJsonpValue(out, packet.getData());
                } else {
                    jsonSupport.writeValue(out, packet.getData());
                }
                break;
            }

            case MESSAGE: {
                byte subType = toChar(packet.getSubType().getValue());
                buf.writeByte(subType);

                if (packet.getSubType() == PacketType.CONNECT) {
                    if (!packet.getNsp().isEmpty()) {
                        buf.writeBytes(packet.getNsp().getBytes(CharsetUtil.UTF_8));
                    }
                } else {
                    if (!packet.getNsp().isEmpty()) {
                        buf.writeBytes(packet.getNsp().getBytes(CharsetUtil.UTF_8));
                        buf.writeBytes(new byte[] {','});
                    }
                }

                if (packet.getAckId() != null) {
                    byte[] ackId = toChars(packet.getAckId());
                    buf.writeBytes(ackId);
                }

                List<Object> values = new ArrayList<Object>();

                if (packet.getSubType() == PacketType.EVENT
                        || packet.getSubType() == PacketType.ERROR) {
                    values.add(packet.getName());
                }

                if (packet.getSubType() == PacketType.EVENT
                        || packet.getSubType() == PacketType.ACK
                            || packet.getSubType() == PacketType.ERROR) {
                    List<Object> args = packet.getData();
                    values.addAll(args);
                    ByteBufOutputStream out = new ByteBufOutputStream(buf);
                    if (jsonp) {
                        jsonSupport.writeJsonpValue(out, values);
                    } else {
                        if (binary) {
                            // handling websocket encoding bug
                            ByteBuf b = allocateBuffer(allocator);
                            try {
                                ByteBufOutputStream os = new ByteBufOutputStream(b);
                                jsonSupport.writeValue(os, values);

                                CharsetEncoder enc = CharsetUtil.ISO_8859_1.newEncoder();
                                String str = b.toString(CharsetUtil.ISO_8859_1);
                                if (enc.canEncode(str)) {
                                    buf.writeBytes(str.getBytes(CharsetUtil.UTF_8));
                                } else {
                                    buf.writeBytes(b);
                                }
                            }
                            finally {
                                b.release();
                            }
                        } else {
                            jsonSupport.writeValue(out, values);
                        }
                    }
View Full Code Here

    }
    int size = (int) l;
    if (size == -1) {
      return null;
    }
    ByteBuf buffer = is.readSlice(size);
    int cr = is.readByte();
    int lf = is.readByte();
    if (cr != CR || lf != LF) {
      throw new IOException("Improper line ending: " + cr + ", " + lf);
    }
View Full Code Here

TOP

Related Classes of io.netty.buffer.ByteBuf

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.