Package io.protostuff

Class 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).

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      KvpOutput use​(Schema<?> schema, boolean clearBuffer)  
      void writeBool​(int fieldNumber, boolean value, boolean repeated)
      Writes a boolean field.
      void writeByteArray​(int fieldNumber, byte[] value, boolean repeated)
      Writes a byte array field.
      void writeByteRange​(boolean utf8String, int fieldNumber, byte[] value, int offset, int length, boolean repeated)
      Writes a binary or a pre-encoded utf8 string.
      void writeBytes​(int fieldNumber, ByteString value, boolean repeated)
      Writes a ByteString(wraps byte array) field.
      void writeBytes​(int fieldNumber, java.nio.ByteBuffer value, boolean repeated)
      Writes a ByteBuffer field.
      void writeDouble​(int fieldNumber, double value, boolean repeated)
      Writes a double field.
      void writeEnum​(int fieldNumber, int value, boolean repeated)
      Writes a enum(its number) field.
      private LinkedBuffer writeField​(int number, int valueLen, LinkedBuffer lb)  
      private LinkedBuffer writeField​(int number, LinkedBuffer lb)  
      void writeFixed32​(int fieldNumber, int value, boolean repeated)
      Writes a fixed int(4 bytes) field.
      void writeFixed64​(int fieldNumber, long value, boolean repeated)
      Writes a fixed long(8 bytes) field.
      void writeFloat​(int fieldNumber, float value, boolean repeated)
      Writes a float field.
      void writeInt32​(int fieldNumber, int value, boolean repeated)
      Writes a variable int field.
      void writeInt64​(int fieldNumber, long value, boolean repeated)
      Writes a variable long field.
      <T> void writeObject​(int fieldNumber, T value, Schema<T> schema, boolean repeated)
      Writes an object(using its schema) field.
      void writeSFixed32​(int fieldNumber, int value, boolean repeated)
      Writes a signed+fixed int(4 bytes) field.
      void writeSFixed64​(int fieldNumber, long value, boolean repeated)
      Writes a signed+fixed long(8 bytes) field.
      void writeSInt32​(int fieldNumber, int value, boolean repeated)
      Writes a signed int field.
      void writeSInt64​(int fieldNumber, long value, boolean repeated)
      Writes a signed long field.
      void writeString​(int fieldNumber, java.lang.CharSequence value, boolean repeated)
      Writes a String field.
      void writeUInt32​(int fieldNumber, int value, boolean repeated)
      Writes an unsigned int field.
      void writeUInt64​(int fieldNumber, long value, boolean repeated)
      Writes an unsigned long field.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • numBuf

        final byte[] numBuf
      • numeric

        final boolean numeric
      • schema

        private Schema<?> schema
    • Constructor Detail

      • 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.IOException
        Description copied from interface: Output
        Writes a boolean field.
        Specified by:
        writeBool in interface Output
        Throws:
        java.io.IOException
      • writeByteArray

        public void writeByteArray​(int fieldNumber,
                                   byte[] value,
                                   boolean repeated)
                            throws java.io.IOException
        Description copied from interface: Output
        Writes a byte array field.
        Specified by:
        writeByteArray in interface Output
        Throws:
        java.io.IOException
      • writeByteRange

        public void writeByteRange​(boolean utf8String,
                                   int fieldNumber,
                                   byte[] value,
                                   int offset,
                                   int length,
                                   boolean repeated)
                            throws java.io.IOException
        Description copied from interface: Output
        Writes a binary or a pre-encoded utf8 string.
        Specified by:
        writeByteRange in interface Output
        Throws:
        java.io.IOException
      • writeBytes

        public void writeBytes​(int fieldNumber,
                               ByteString value,
                               boolean repeated)
                        throws java.io.IOException
        Description copied from interface: Output
        Writes a ByteString(wraps byte array) field.
        Specified by:
        writeBytes in interface Output
        Throws:
        java.io.IOException
      • writeDouble

        public void writeDouble​(int fieldNumber,
                                double value,
                                boolean repeated)
                         throws java.io.IOException
        Description copied from interface: Output
        Writes a double field.
        Specified by:
        writeDouble in interface Output
        Throws:
        java.io.IOException
      • writeEnum

        public void writeEnum​(int fieldNumber,
                              int value,
                              boolean repeated)
                       throws java.io.IOException
        Description copied from interface: Output
        Writes a enum(its number) field.
        Specified by:
        writeEnum in interface Output
        Throws:
        java.io.IOException
      • writeFixed32

        public void writeFixed32​(int fieldNumber,
                                 int value,
                                 boolean repeated)
                          throws java.io.IOException
        Description copied from interface: Output
        Writes a fixed int(4 bytes) field.
        Specified by:
        writeFixed32 in interface Output
        Throws:
        java.io.IOException
      • writeFixed64

        public void writeFixed64​(int fieldNumber,
                                 long value,
                                 boolean repeated)
                          throws java.io.IOException
        Description copied from interface: Output
        Writes a fixed long(8 bytes) field.
        Specified by:
        writeFixed64 in interface Output
        Throws:
        java.io.IOException
      • writeFloat

        public void writeFloat​(int fieldNumber,
                               float value,
                               boolean repeated)
                        throws java.io.IOException
        Description copied from interface: Output
        Writes a float field.
        Specified by:
        writeFloat in interface Output
        Throws:
        java.io.IOException
      • writeInt32

        public void writeInt32​(int fieldNumber,
                               int value,
                               boolean repeated)
                        throws java.io.IOException
        Description copied from interface: Output
        Writes a variable int field.
        Specified by:
        writeInt32 in interface Output
        Throws:
        java.io.IOException
      • writeInt64

        public void writeInt64​(int fieldNumber,
                               long value,
                               boolean repeated)
                        throws java.io.IOException
        Description copied from interface: Output
        Writes a variable long field.
        Specified by:
        writeInt64 in interface Output
        Throws:
        java.io.IOException
      • writeObject

        public <T> void writeObject​(int fieldNumber,
                                    T value,
                                    Schema<T> schema,
                                    boolean repeated)
                             throws java.io.IOException
        Description copied from interface: Output
        Writes an object(using its schema) field.
        Specified by:
        writeObject in interface Output
        Throws:
        java.io.IOException
      • writeSFixed32

        public void writeSFixed32​(int fieldNumber,
                                  int value,
                                  boolean repeated)
                           throws java.io.IOException
        Description copied from interface: Output
        Writes a signed+fixed int(4 bytes) field.
        Specified by:
        writeSFixed32 in interface Output
        Throws:
        java.io.IOException
      • writeSFixed64

        public void writeSFixed64​(int fieldNumber,
                                  long value,
                                  boolean repeated)
                           throws java.io.IOException
        Description copied from interface: Output
        Writes a signed+fixed long(8 bytes) field.
        Specified by:
        writeSFixed64 in interface Output
        Throws:
        java.io.IOException
      • writeSInt32

        public void writeSInt32​(int fieldNumber,
                                int value,
                                boolean repeated)
                         throws java.io.IOException
        Description copied from interface: Output
        Writes a signed int field.
        Specified by:
        writeSInt32 in interface Output
        Throws:
        java.io.IOException
      • writeSInt64

        public void writeSInt64​(int fieldNumber,
                                long value,
                                boolean repeated)
                         throws java.io.IOException
        Description copied from interface: Output
        Writes a signed long field.
        Specified by:
        writeSInt64 in interface Output
        Throws:
        java.io.IOException
      • writeString

        public void writeString​(int fieldNumber,
                                java.lang.CharSequence value,
                                boolean repeated)
                         throws java.io.IOException
        Description copied from interface: Output
        Writes a String field.
        Specified by:
        writeString in interface Output
        Throws:
        java.io.IOException
      • writeUInt32

        public void writeUInt32​(int fieldNumber,
                                int value,
                                boolean repeated)
                         throws java.io.IOException
        Description copied from interface: Output
        Writes an unsigned int field.
        Specified by:
        writeUInt32 in interface Output
        Throws:
        java.io.IOException
      • writeUInt64

        public void writeUInt64​(int fieldNumber,
                                long value,
                                boolean repeated)
                         throws java.io.IOException
        Description copied from interface: Output
        Writes an unsigned long field.
        Specified by:
        writeUInt64 in interface Output
        Throws:
        java.io.IOException
      • writeBytes

        public void writeBytes​(int fieldNumber,
                               java.nio.ByteBuffer value,
                               boolean repeated)
                        throws java.io.IOException
        Writes a ByteBuffer field.
        Specified by:
        writeBytes in interface Output
        Throws:
        java.io.IOException