Package io.protostuff
Class KvpOutput
- java.lang.Object
-
- io.protostuff.WriteSession
-
- io.protostuff.KvpOutput
-
- All Implemented Interfaces:
Output
public final class KvpOutput extends WriteSession implements Output
An output for serializing kvp-encoded messages (from a byte array as source). A kvp encoding is a binary encoding w/c contains a key-value sequence. On the wire, a serialized field (key-value) would look like: [key-len][key][value-len][value]The keys and values are length-delimited (uint16 little endian).
Note that this encoding does not support nested messages. This encoding is mostly useful for headers w/c contain information about the content it carries (see http://projects.unbit.it/uwsgi/wiki/uwsgiProtocol).
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.protostuff.WriteSession
WriteSession.FlushHandler
-
-
Field Summary
Fields Modifier and Type Field Description (package private) byte[]numBuf(package private) booleannumericprivate Schema<?>schema-
Fields inherited from class io.protostuff.WriteSession
flushHandler, head, nextBufferSize, out, sink, size, tail
-
-
Constructor Summary
Constructors Constructor Description KvpOutput(LinkedBuffer head, Schema<?> schema, boolean numeric)KvpOutput(LinkedBuffer head, java.io.OutputStream out, Schema<?> schema, boolean numeric)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description KvpOutputuse(Schema<?> schema, boolean clearBuffer)voidwriteBool(int fieldNumber, boolean value, boolean repeated)Writes a boolean field.voidwriteByteArray(int fieldNumber, byte[] value, boolean repeated)Writes a byte array field.voidwriteByteRange(boolean utf8String, int fieldNumber, byte[] value, int offset, int length, boolean repeated)Writes a binary or a pre-encoded utf8 string.voidwriteBytes(int fieldNumber, ByteString value, boolean repeated)Writes a ByteString(wraps byte array) field.voidwriteBytes(int fieldNumber, java.nio.ByteBuffer value, boolean repeated)Writes a ByteBuffer field.voidwriteDouble(int fieldNumber, double value, boolean repeated)Writes a double field.voidwriteEnum(int fieldNumber, int value, boolean repeated)Writes a enum(its number) field.private LinkedBufferwriteField(int number, int valueLen, LinkedBuffer lb)private LinkedBufferwriteField(int number, LinkedBuffer lb)voidwriteFixed32(int fieldNumber, int value, boolean repeated)Writes a fixed int(4 bytes) field.voidwriteFixed64(int fieldNumber, long value, boolean repeated)Writes a fixed long(8 bytes) field.voidwriteFloat(int fieldNumber, float value, boolean repeated)Writes a float field.voidwriteInt32(int fieldNumber, int value, boolean repeated)Writes a variable int field.voidwriteInt64(int fieldNumber, long value, boolean repeated)Writes a variable long field.<T> voidwriteObject(int fieldNumber, T value, Schema<T> schema, boolean repeated)Writes an object(using its schema) field.voidwriteSFixed32(int fieldNumber, int value, boolean repeated)Writes a signed+fixed int(4 bytes) field.voidwriteSFixed64(int fieldNumber, long value, boolean repeated)Writes a signed+fixed long(8 bytes) field.voidwriteSInt32(int fieldNumber, int value, boolean repeated)Writes a signed int field.voidwriteSInt64(int fieldNumber, long value, boolean repeated)Writes a signed long field.voidwriteString(int fieldNumber, java.lang.CharSequence value, boolean repeated)Writes a String field.voidwriteUInt32(int fieldNumber, int value, boolean repeated)Writes an unsigned int field.voidwriteUInt64(int fieldNumber, long value, boolean repeated)Writes an unsigned long field.-
Methods inherited from class io.protostuff.WriteSession
clear, flush, flush, flush, getSize, reset, toByteArray
-
-
-
-
Field Detail
-
numBuf
final byte[] numBuf
-
numeric
final boolean numeric
-
schema
private Schema<?> schema
-
-
Constructor Detail
-
KvpOutput
public KvpOutput(LinkedBuffer head, Schema<?> schema, boolean numeric)
-
KvpOutput
public KvpOutput(LinkedBuffer head, java.io.OutputStream out, Schema<?> schema, boolean numeric)
-
-
Method Detail
-
writeField
private LinkedBuffer writeField(int number, LinkedBuffer lb) throws java.io.IOException
- Throws:
java.io.IOException
-
writeField
private LinkedBuffer writeField(int number, int valueLen, LinkedBuffer lb) throws java.io.IOException
- Throws:
java.io.IOException
-
writeBool
public void writeBool(int fieldNumber, boolean value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a boolean field.
-
writeByteArray
public void writeByteArray(int fieldNumber, byte[] value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a byte array field.- Specified by:
writeByteArrayin interfaceOutput- Throws:
java.io.IOException
-
writeByteRange
public void writeByteRange(boolean utf8String, int fieldNumber, byte[] value, int offset, int length, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a binary or a pre-encoded utf8 string.- Specified by:
writeByteRangein interfaceOutput- Throws:
java.io.IOException
-
writeBytes
public void writeBytes(int fieldNumber, ByteString value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a ByteString(wraps byte array) field.- Specified by:
writeBytesin interfaceOutput- Throws:
java.io.IOException
-
writeDouble
public void writeDouble(int fieldNumber, double value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a double field.- Specified by:
writeDoublein interfaceOutput- Throws:
java.io.IOException
-
writeEnum
public void writeEnum(int fieldNumber, int value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a enum(its number) field.
-
writeFixed32
public void writeFixed32(int fieldNumber, int value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a fixed int(4 bytes) field.- Specified by:
writeFixed32in interfaceOutput- Throws:
java.io.IOException
-
writeFixed64
public void writeFixed64(int fieldNumber, long value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a fixed long(8 bytes) field.- Specified by:
writeFixed64in interfaceOutput- Throws:
java.io.IOException
-
writeFloat
public void writeFloat(int fieldNumber, float value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a float field.- Specified by:
writeFloatin interfaceOutput- Throws:
java.io.IOException
-
writeInt32
public void writeInt32(int fieldNumber, int value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a variable int field.- Specified by:
writeInt32in interfaceOutput- Throws:
java.io.IOException
-
writeInt64
public void writeInt64(int fieldNumber, long value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a variable long field.- Specified by:
writeInt64in interfaceOutput- Throws:
java.io.IOException
-
writeObject
public <T> void writeObject(int fieldNumber, T value, Schema<T> schema, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites an object(using its schema) field.- Specified by:
writeObjectin interfaceOutput- Throws:
java.io.IOException
-
writeSFixed32
public void writeSFixed32(int fieldNumber, int value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a signed+fixed int(4 bytes) field.- Specified by:
writeSFixed32in interfaceOutput- Throws:
java.io.IOException
-
writeSFixed64
public void writeSFixed64(int fieldNumber, long value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a signed+fixed long(8 bytes) field.- Specified by:
writeSFixed64in interfaceOutput- Throws:
java.io.IOException
-
writeSInt32
public void writeSInt32(int fieldNumber, int value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a signed int field.- Specified by:
writeSInt32in interfaceOutput- Throws:
java.io.IOException
-
writeSInt64
public void writeSInt64(int fieldNumber, long value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a signed long field.- Specified by:
writeSInt64in interfaceOutput- Throws:
java.io.IOException
-
writeString
public void writeString(int fieldNumber, java.lang.CharSequence value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites a String field.- Specified by:
writeStringin interfaceOutput- Throws:
java.io.IOException
-
writeUInt32
public void writeUInt32(int fieldNumber, int value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites an unsigned int field.- Specified by:
writeUInt32in interfaceOutput- Throws:
java.io.IOException
-
writeUInt64
public void writeUInt64(int fieldNumber, long value, boolean repeated) throws java.io.IOExceptionDescription copied from interface:OutputWrites an unsigned long field.- Specified by:
writeUInt64in interfaceOutput- Throws:
java.io.IOException
-
writeBytes
public void writeBytes(int fieldNumber, java.nio.ByteBuffer value, boolean repeated) throws java.io.IOExceptionWrites a ByteBuffer field.- Specified by:
writeBytesin interfaceOutput- Throws:
java.io.IOException
-
-