Class ByteBufferOutput

    • Constructor Detail

      • ByteBufferOutput

        public ByteBufferOutput()
        Creates an uninitialized Output, setBuffer(ByteBuffer) must be called before the Output is used.
      • ByteBufferOutput

        public ByteBufferOutput​(int bufferSize)
        Creates a new Output for writing to a direct ByteBuffer.
        Parameters:
        bufferSize - The size of the buffer. An exception is thrown if more bytes than this are written and flush() does not empty the buffer.
      • ByteBufferOutput

        public ByteBufferOutput​(int bufferSize,
                                int maxBufferSize)
        Creates a new Output for writing to a direct ByteBuffer.
        Parameters:
        bufferSize - The initial size of the buffer.
        maxBufferSize - If flush() does not empty the buffer, the buffer is doubled as needed until it exceeds maxBufferSize and an exception is thrown. Can be -1 for no maximum.
      • ByteBufferOutput

        public ByteBufferOutput​(ByteBuffer buffer)
        Creates a new Output for writing to a ByteBuffer.
      • ByteBufferOutput

        public ByteBufferOutput​(ByteBuffer buffer,
                                int maxBufferSize)
        Creates a new Output for writing to a ByteBuffer.
        Parameters:
        maxBufferSize - If flush() does not empty the buffer, the buffer is doubled as needed until it exceeds maxBufferSize and an exception is thrown. Can be -1 for no maximum.
    • Method Detail

      • setBuffer

        public void setBuffer​(byte[] buffer,
                              int maxBufferSize)
        Deprecated.
        Throws UnsupportedOperationException because this output uses a ByteBuffer, not a byte[].
        Overrides:
        setBuffer in class Output
        maxBufferSize - If Output.flush() does not empty the buffer, the buffer is doubled as needed until it exceeds maxBufferSize and an exception is thrown. Can be -1 for no maximum.
        See Also:
        getByteBuffer()
      • setBuffer

        public void setBuffer​(byte[] bytes,
                              int offset,
                              int count)
        Allocates a new direct ByteBuffer with the specified bytes and sets it as the new buffer.
        See Also:
        setBuffer(ByteBuffer)
      • setBuffer

        public void setBuffer​(ByteBuffer buffer,
                              int maxBufferSize)
        Sets a new buffer to write to. The bytes are not copied, the old buffer is discarded and the new buffer used in its place. The position and capacity are set to match the specified buffer. The total is reset. The OutputStream is set to null.
        Parameters:
        maxBufferSize - If flush() does not empty the buffer, the buffer is doubled as needed until it exceeds maxBufferSize and an exception is thrown. Can be -1 for no maximum.
      • getByteBuffer

        public ByteBuffer getByteBuffer()
        Returns the buffer. The bytes between zero and Output.position() are the data that has been written.
      • toBytes

        public byte[] toBytes()
        Description copied from class: Output
        Allocates and returns a new byte[] containing the bytes currently in the buffer between 0 and Output.position().
        Overrides:
        toBytes in class Output
      • setPosition

        public void setPosition​(int position)
        Description copied from class: Output
        Sets the current position in the buffer.
        Overrides:
        setPosition in class Output
      • reset

        public void reset()
        Description copied from class: Output
        Sets the position and total to 0.
        Specified by:
        reset in interface Pool.Poolable
        Overrides:
        reset in class Output
      • require

        protected boolean require​(int required)
                           throws KryoException
        Description copied from class: Output
        Ensures the buffer is large enough to read the specified number of bytes.
        Overrides:
        require in class Output
        Returns:
        true if the buffer has been resized.
        Throws:
        KryoException
      • flush

        public void flush()
                   throws KryoException
        Description copied from class: Output
        Flushes the buffered bytes. The default implementation writes the buffered bytes to the OutputStream, if any, and sets the position to 0. Can be overridden to flush the bytes somewhere else.
        Specified by:
        flush in interface Flushable
        Overrides:
        flush in class Output
        Throws:
        KryoException
      • write

        public void write​(byte[] bytes)
                   throws KryoException
        Description copied from class: Output
        Writes the bytes. Note the number of bytes is not written.
        Overrides:
        write in class Output
        Throws:
        KryoException
      • write

        public void write​(byte[] bytes,
                          int offset,
                          int length)
                   throws KryoException
        Description copied from class: Output
        Writes the bytes. Note the number of bytes is not written.
        Overrides:
        write in class Output
        Throws:
        KryoException
      • writeBytes

        public void writeBytes​(byte[] bytes,
                               int offset,
                               int count)
                        throws KryoException
        Description copied from class: Output
        Writes the bytes. Note the number of bytes is not written.
        Overrides:
        writeBytes in class Output
        Throws:
        KryoException
      • writeInt

        public void writeInt​(int bytes,
                             int count)
        Description copied from class: Output
        Writes count bytes from long, the last byte written is the lowest byte from the long. Note the number of bytes is not written.
        Overrides:
        writeInt in class Output
      • writeVarInt

        public int writeVarInt​(int value,
                               boolean optimizePositive)
                        throws KryoException
        Description copied from class: Output
        Writes a 1-5 byte int.
        Overrides:
        writeVarInt in class Output
        optimizePositive - If true, small positive numbers will be more efficient (1 byte) and small negative numbers will be inefficient (5 bytes).
        Returns:
        The number of bytes written.
        Throws:
        KryoException
        See Also:
        Output.varIntLength(int, boolean)
      • writeVarIntFlag

        public int writeVarIntFlag​(boolean flag,
                                   int value,
                                   boolean optimizePositive)
                            throws KryoException
        Description copied from class: Output
        Writes a 1-5 byte int, encoding the boolean value with a bit flag.
        Overrides:
        writeVarIntFlag in class Output
        optimizePositive - If true, small positive numbers will be more efficient (1 byte) and small negative numbers will be inefficient (5 bytes).
        Returns:
        The number of bytes written.
        Throws:
        KryoException
      • writeVarLong

        public int writeVarLong​(long value,
                                boolean optimizePositive)
                         throws KryoException
        Description copied from class: Output
        Writes a 1-9 byte long.
        Overrides:
        writeVarLong in class Output
        optimizePositive - If true, small positive numbers will be more efficient (1 byte) and small negative numbers will be inefficient (9 bytes).
        Returns:
        The number of bytes written.
        Throws:
        KryoException
        See Also:
        Output.varLongLength(long, boolean)
      • writeInts

        public void writeInts​(int[] array,
                              int offset,
                              int count)
                       throws KryoException
        Description copied from class: Output
        Writes an int array in bulk. This may be more efficient than writing them individually.
        Overrides:
        writeInts in class Output
        Throws:
        KryoException
      • writeLongs

        public void writeLongs​(long[] array,
                               int offset,
                               int count)
                        throws KryoException
        Description copied from class: Output
        Writes a long array in bulk. This may be more efficient than writing them individually.
        Overrides:
        writeLongs in class Output
        Throws:
        KryoException
      • writeFloats

        public void writeFloats​(float[] array,
                                int offset,
                                int count)
                         throws KryoException
        Description copied from class: Output
        Writes a float array in bulk. This may be more efficient than writing them individually.
        Overrides:
        writeFloats in class Output
        Throws:
        KryoException
      • writeDoubles

        public void writeDoubles​(double[] array,
                                 int offset,
                                 int count)
                          throws KryoException
        Description copied from class: Output
        Writes a double array in bulk. This may be more efficient than writing them individually.
        Overrides:
        writeDoubles in class Output
        Throws:
        KryoException
      • writeShorts

        public void writeShorts​(short[] array,
                                int offset,
                                int count)
                         throws KryoException
        Description copied from class: Output
        Writes a short array in bulk. This may be more efficient than writing them individually.
        Overrides:
        writeShorts in class Output
        Throws:
        KryoException
      • writeChars

        public void writeChars​(char[] array,
                               int offset,
                               int count)
                        throws KryoException
        Description copied from class: Output
        Writes a char array in bulk. This may be more efficient than writing them individually.
        Overrides:
        writeChars in class Output
        Throws:
        KryoException
      • writeBooleans

        public void writeBooleans​(boolean[] array,
                                  int offset,
                                  int count)
                           throws KryoException
        Description copied from class: Output
        Writes a boolean array in bulk. This may be more efficient than writing them individually.
        Overrides:
        writeBooleans in class Output
        Throws:
        KryoException