@Override public LinkedBuffer writeStrUTF8(final CharSequence value, final WriteSession session, LinkedBuffer lb) throws IOException { return StringSerializer.writeUTF8(value, session, lb); }
@Override public LinkedBuffer writeStrUTF8VarDelimited(final CharSequence value, final WriteSession session, LinkedBuffer lb) throws IOException { return StringSerializer.writeUTF8VarDelimited(value, session, lb); }
public LinkedBuffer packString(CharSequence value, WriteSession session, LinkedBuffer lb) throws IOException { if (value.length() == 0) { return packRawStringHeader(0, session, lb); } int sizeInBytes = StringSerializer.computeUTF8Size(value, 0, value.length()); return StringSerializer.writeUTF8(value, session, packRawStringHeader(sizeInBytes, session, lb)); }
return writeUTF8OneByteDelimited(str, 0, len, session, lb); return writeUTF8VarDelimited(str, 0, len, TWO_BYTE_LOWER_LIMIT, 2, session, lb); return writeUTF8VarDelimited(str, 0, len, THREE_BYTE_LOWER_LIMIT, 3, session, lb); return writeUTF8VarDelimited(str, 0, len, FOUR_BYTE_LOWER_LIMIT, 4, session, lb); return writeUTF8VarDelimited(str, 0, len, FIVE_BYTE_LOWER_LIMIT, 5, session, lb);
writeFixed2ByteInt(0, lb.buffer, 0, littleEndian); final LinkedBuffer rb = writeUTF8(str, 0, len, session, lb); writeFixed2ByteInt((session.size - lastSize), lb.buffer, 0, littleEndian); writeFixed2ByteInt(0, lb.buffer, lb.offset, littleEndian); lb.offset = withIntOffset; final LinkedBuffer rb = writeUTF8(str, 0, len, lb.buffer, withIntOffset, lb.buffer.length, session, lb); writeFixed2ByteInt((session.size - lastSize), lb.buffer, withIntOffset - 2, littleEndian); final LinkedBuffer rb = writeUTF8(str, 0, len, session, lb); writeFixed2ByteInt((session.size - lastSize), lb.buffer, withIntOffset - 2, littleEndian);
public static void checkVarDelimitedBoundry(int initialGap, int secondWriteSize) { int bufferSize = 256; final LinkedBuffer lb = LinkedBuffer.allocate(bufferSize); WriteSession session = new WriteSession(lb, bufferSize); // Should fill up the buffer with initialGap byte(s) left StringSerializer.writeUTF8(repeatChar('a', bufferSize - initialGap), session, lb); // Write a string of length secondWriteSize that should be larger // than the next buffer size assertTrue(secondWriteSize > bufferSize); StringSerializer.writeUTF8VarDelimited(repeatChar('a', secondWriteSize), session, lb); }
final int size = (value < 0) ? StringSerializer.stringSize(-value) + 1 : StringSerializer.stringSize(value); session.size += size; putBytesFromInt(value, lb.offset, size, lb.buffer);
final int size = (value < 0) ? stringSize(-value) + 1 : stringSize(value); putBytesFromLong(value, lb.offset, size, lb.buffer);
/** * The length of the utf8 bytes is written first (big endian) before the string - which is fixed 2-bytes. Same * behavior as {@link java.io.DataOutputStream#writeUTF(String)}. */ public static LinkedBuffer writeUTF8FixedDelimited(final CharSequence str, final WriteSession session, LinkedBuffer lb) { return writeUTF8FixedDelimited(str, false, session, lb); }
@Override public LinkedBuffer writeStrAscii(final CharSequence value, final WriteSession session, LinkedBuffer lb) throws IOException { return StringSerializer.writeAscii(value, session, lb); }
@Override public void writeInt32(int fieldNumber, int value, boolean repeated) throws IOException { final int size = (value < 0) ? stringSize(-value) + 1 : stringSize(value); tail = sink.writeStrFromInt( value, this, writeField( fieldNumber, size, tail)); }
@Override public LinkedBuffer writeStrFromLong(final long value, final WriteSession session, LinkedBuffer lb) throws IOException { return StringSerializer.writeLong(value, session, lb); }
@Override public LinkedBuffer writeStrFromInt(final int value, final WriteSession session, LinkedBuffer lb) throws IOException { return StringSerializer.writeInt(value, session, lb); }
@Override public LinkedBuffer writeStrFromFloat(final float value, final WriteSession session, LinkedBuffer lb) throws IOException { return StringSerializer.writeFloat(value, session, lb); }
@Override public LinkedBuffer writeStrFromDouble(final double value, final WriteSession session, LinkedBuffer lb) throws IOException { return StringSerializer.writeDouble(value, session, lb); }
@Override public void writeString(int fieldNumber, CharSequence value, boolean repeated) throws IOException { size += ProtobufOutput.computeRawVarint32Size(WireFormat.makeTag(fieldNumber, WireFormat.WIRETYPE_LENGTH_DELIMITED)); final int strSize = computeUTF8Size(value, 0, value.length()); size += ProtobufOutput.computeRawVarint32Size(strSize) + strSize; }
writeFixed2ByteInt(0, lb.buffer, withIntOffset - 2, littleEndian); lb.offset = withIntOffset; final LinkedBuffer rb = StringSerializer.writeUTF8(str, 0, len, lb.buffer, withIntOffset, lb.buffer.length, session, lb); writeFixed2ByteInt((session.size - lastSize), lb.buffer, withIntOffset - 2, littleEndian); writeFixed2ByteInt(0, lb.buffer, withIntOffset - 2, littleEndian); lb.offset = withIntOffset; final LinkedBuffer rb = StringSerializer.writeUTF8(str, 0, len, session, lb); writeFixed2ByteInt((session.size - lastSize), lb.buffer, withIntOffset - 2, littleEndian);
/** * Writes the stringified int into the {@link LinkedBuffer}. */ public static LinkedBuffer writeInt(final int value, final WriteSession session, LinkedBuffer lb) { if (value == Integer.MIN_VALUE) { final int valueLen = INT_MIN_VALUE.length; if (lb.offset + valueLen > lb.buffer.length) { // not enough size lb = new LinkedBuffer(session.nextBufferSize, lb); } System.arraycopy(INT_MIN_VALUE, 0, lb.buffer, lb.offset, valueLen); lb.offset += valueLen; session.size += valueLen; return lb; } final int size = (value < 0) ? stringSize(-value) + 1 : stringSize(value); if (lb.offset + size > lb.buffer.length) { // not enough size lb = new LinkedBuffer(session.nextBufferSize, lb); } putBytesFromInt(value, lb.offset, size, lb.buffer); lb.offset += size; session.size += size; return lb; }
final int size = (value < 0) ? StringSerializer.stringSize(-value) + 1 : StringSerializer.stringSize(value); session.size += size; putBytesFromLong(value, lb.offset, size, lb.buffer);
@Override public LinkedBuffer writeStrUTF8FixedDelimited(final CharSequence value, final boolean littleEndian, final WriteSession session, LinkedBuffer lb) throws IOException { return StringSerializer.writeUTF8FixedDelimited(value, littleEndian, session, lb); } },