Exemplo n.º 1
0
 @Test
 public void byteAt() throws Exception {
   OkBuffer buffer = new OkBuffer();
   buffer.writeUtf8("a");
   buffer.writeUtf8(repeat('b', Segment.SIZE));
   buffer.writeUtf8("c");
   assertEquals('a', buffer.getByte(0));
   assertEquals('a', buffer.getByte(0)); // getByte doesn't mutate!
   assertEquals('c', buffer.getByte(buffer.size - 1));
   assertEquals('b', buffer.getByte(buffer.size - 2));
   assertEquals('b', buffer.getByte(buffer.size - 3));
 }
Exemplo n.º 2
0
  @Override
  public String readUtf8Line(boolean throwOnEof) throws IOException {
    long start = 0;
    long newline;
    while ((newline = buffer.indexOf((byte) '\n', start)) == -1) {
      start = buffer.size;
      if (source.read(buffer, Segment.SIZE) == -1) {
        if (throwOnEof) throw new EOFException();
        return buffer.size != 0 ? readUtf8((int) buffer.size) : null;
      }
    }

    if (newline > 0 && buffer.getByte(newline - 1) == '\r') {
      // Read everything until '\r\n', then skip the '\r\n'.
      String result = readUtf8((int) (newline - 1));
      skip(2);
      return result;

    } else {
      // Read everything until '\n', then skip the '\n'.
      String result = readUtf8((int) (newline));
      skip(1);
      return result;
    }
  }
Exemplo n.º 3
0
 @Test
 public void getByteOfEmptyBuffer() throws Exception {
   OkBuffer buffer = new OkBuffer();
   try {
     buffer.getByte(0);
     fail();
   } catch (IndexOutOfBoundsException expected) {
   }
 }