Package db.buffers

Class DataBuffer

  • All Implemented Interfaces:
    Buffer, java.io.Externalizable, java.io.Serializable

    public class DataBuffer
    extends java.lang.Object
    implements Buffer, java.io.Externalizable
    DataBuffer provides an accessible binary buffer for use with a BufferMgr and BufferFile.
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      ChangeModifier Constructor Description
        DataBuffer()
      Constructor for de-serialization
      protected DataBuffer​(byte[] data)
      Construct a data buffer.
      protected DataBuffer​(int bufsize)
      Construct a data buffer.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      ChangeModifier and Type Method Description
      void clear()
      Sets all the values in the buffer to 0;
      void copy​(int offset, DataBuffer buf, int bufOffset, int length)
      Copy data from another buffer into this buffer.
      static void enableCompressedSerializationOutput​(boolean enable)  
      void get​(int offset, byte[] bytes)
      Get the byte data located at the specified offset and store into the bytes array provided.
      void get​(int offset, byte[] bytes, int dataOffset, int length)
      Get the byte data located at the specified offset and store into the data array at the specified data offset.
      byte[] get​(int offset, int length)
      Get the byte data located at the specified offset.
      byte getByte​(int offset)
      Get the 8-bit byte value located at the specified offset.
      NEWprotected byte[] getData()
      Get the storage array associated with this buffer.
      int getId()
      Get the ID associated with this buffer.
      int getInt​(int offset)
      Get the 32-bit integer value located at the specified offset.
      long getLong​(int offset)
      Get the 64-bit long value located at the specified offset.
      short getShort​(int offset)
      Get the 16-bit short value located at the specified offset.
      boolean isDirty()
      Return true if this buffer contains modified data.
      boolean isEmpty()
      Return true if this buffer is empty/unused.
      int length()
      Get the length of the buffer in bytes.
      void move​(int src, int dest, int length)
      Move the data within this buffer.
      int put​(int offset, byte[] bytes)
      Put the bytes provided into the buffer at the specified offset.
      int put​(int offset, byte[] bytes, int dataOffset, int length)
      Put a specified number of bytes from the array provided into the buffer at the specified offset.
      int putByte​(int offset, byte b)
      Put the 8-bit byte value into the buffer at the specified offset.
      int putInt​(int offset, int v)
      Put the 32-bit integer value into the buffer at the specified offset.
      int putLong​(int offset, long v)
      Put the 64-bit long value into the buffer at the specified offset.
      int putShort​(int offset, short v)
      Put the 16-bit short value into the buffer at the specified offset.
      void readExternal​(java.io.ObjectInput in)  
      protected void setData​(byte[] data)
      Get the storage array associated with this buffer.
      NEWprotected void setDirty​(boolean state)
      Set the dirty flag.
      NEWprotected void setEmpty​(boolean state)
      Set the empty flag.
      NEWprotected void setId​(int id)
      Set the ID associated with this buffer.
      static boolean usingCompressedSerializationOutput()  
      void writeExternal​(java.io.ObjectOutput out)  
      • Methods inherited from class java.lang.Object

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

      • COMPRESSED_SERIAL_OUTPUT_PROPERTY

        public static final java.lang.String COMPRESSED_SERIAL_OUTPUT_PROPERTY
        See Also:
        Constant Field Values
      • data NEW

        protected byte[] data

Constructor Detail

  • Method Detail

    • enableCompressedSerializationOutput

      public static void enableCompressedSerializationOutput​(boolean enable)
    • usingCompressedSerializationOutput

      public static boolean usingCompressedSerializationOutput()
    • getData NEW

      protected byte[] getData()
      Get the storage array associated with this buffer.
      Returns:
      byte storage array.
    • setData NEW

      protected void setData​(byte[] data)
      Get the storage array associated with this buffer.
    • getId

      public int getId()
      Get the ID associated with this buffer.
      Specified by:
      getId in interface Buffer
      Returns:
      buffer ID.
    • setId NEW

      protected void setId​(int id)
      Set the ID associated with this buffer.
      Parameters:
      id - buffer ID
    • isDirty

      public boolean isDirty()
      Return true if this buffer contains modified data. When this buffer is released to the BufferMgr, the data is consumed and this flag reset to false.
    • setDirty NEW

      protected void setDirty​(boolean state)
      Set the dirty flag.
      Parameters:
      state - flag state.
    • isEmpty

      public boolean isEmpty()
      Return true if this buffer is empty/unused. Writing to empty buffer does not change the state of this flag.
    • setEmpty NEW

      protected void setEmpty​(boolean state)
      Set the empty flag.
      Parameters:
      state - flag state
    • length

      public int length()
      Description copied from interface: Buffer
      Get the length of the buffer in bytes. The length reflects the number of bytes which have been allocated to the buffer.
      Specified by:
      length in interface Buffer
      Returns:
      length of allocated buffer.
    • get

      public void get​(int offset,
                      byte[] bytes,
                      int dataOffset,
                      int length)
               throws java.lang.ArrayIndexOutOfBoundsException
      Description copied from interface: Buffer
      Get the byte data located at the specified offset and store into the data array at the specified data offset.
      Specified by:
      get in interface Buffer
      Parameters:
      offset - byte offset from the start of the buffer.
      bytes - byte array to store the data.
      dataOffset - offset into the data buffer
      length - amount of data to read
      Throws:
      java.lang.ArrayIndexOutOfBoundsException - if an invalid offset, dataOffset, or length is specified.
    • get

      public void get​(int offset,
                      byte[] bytes)
      Description copied from interface: Buffer
      Get the byte data located at the specified offset and store into the bytes array provided.
      Specified by:
      get in interface Buffer
      Parameters:
      offset - byte offset from start of buffer.
      bytes - byte array to store data
    • get

      public byte[] get​(int offset,
                        int length)
                 throws java.lang.ArrayIndexOutOfBoundsException
      Description copied from interface: Buffer
      Get the byte data located at the specified offset.
      Specified by:
      get in interface Buffer
      Parameters:
      offset - byte offset from start of buffer.
      Returns:
      the byte array.
      Throws:
      java.lang.ArrayIndexOutOfBoundsException - is thrown if an invalid offset is specified or the end of the buffer was encountered while reading the data.
    • getByte

      public byte getByte​(int offset)
      Description copied from interface: Buffer
      Get the 8-bit byte value located at the specified offset.
      Specified by:
      getByte in interface Buffer
      Parameters:
      offset - byte offset from start of buffer.
      Returns:
      the byte value at the specified offset.
    • getInt

      public int getInt​(int offset)
      Description copied from interface: Buffer
      Get the 32-bit integer value located at the specified offset.
      Specified by:
      getInt in interface Buffer
      Parameters:
      offset - byte offset from start of buffer.
      Returns:
      the integer value at the specified offset.
    • getShort

      public short getShort​(int offset)
      Description copied from interface: Buffer
      Get the 16-bit short value located at the specified offset.
      Specified by:
      getShort in interface Buffer
      Parameters:
      offset - byte offset from start of buffer.
      Returns:
      the short value at the specified offset.
    • getLong

      public long getLong​(int offset)
      Description copied from interface: Buffer
      Get the 64-bit long value located at the specified offset.
      Specified by:
      getLong in interface Buffer
      Parameters:
      offset - byte offset from start of buffer.
      Returns:
      the long value at the specified offset.
    • put

      public int put​(int offset,
                     byte[] bytes,
                     int dataOffset,
                     int length)
      Description copied from interface: Buffer
      Put a specified number of bytes from the array provided into the buffer at the specified offset. The number of bytes stored is specified by the length specified.
      Specified by:
      put in interface Buffer
      Parameters:
      offset - byte offset from start of buffer.
      bytes - the byte data to be stored.
      dataOffset - the starting offset into the data.
      length - the number of bytes to be stored.
      Returns:
      the next available offset into the buffer, or -1 if the buffer is full.
    • put

      public int put​(int offset,
                     byte[] bytes)
      Description copied from interface: Buffer
      Put the bytes provided into the buffer at the specified offset. The number of bytes stored is determined by the length of the bytes array.
      Specified by:
      put in interface Buffer
      Parameters:
      offset - byte offset from start of buffer.
      bytes - the byte data to be stored.
      Returns:
      the next available offset into the buffer, or -1 if the buffer is full.
    • putByte

      public int putByte​(int offset,
                         byte b)
      Description copied from interface: Buffer
      Put the 8-bit byte value into the buffer at the specified offset.
      Specified by:
      putByte in interface Buffer
      Parameters:
      offset - byte offset from start of buffer.
      b - the byte value to be stored.
      Returns:
      the next available offset into the buffer, or -1 if the buffer is full.
    • putInt

      public int putInt​(int offset,
                        int v)
      Description copied from interface: Buffer
      Put the 32-bit integer value into the buffer at the specified offset.
      Specified by:
      putInt in interface Buffer
      Parameters:
      offset - byte offset from start of buffer.
      v - the integer value to be stored.
      Returns:
      the next available offset into the buffer, or -1 if the buffer is full.
    • putShort

      public int putShort​(int offset,
                          short v)
      Description copied from interface: Buffer
      Put the 16-bit short value into the buffer at the specified offset.
      Specified by:
      putShort in interface Buffer
      Parameters:
      offset - byte offset from start of buffer.
      v - the short value to be stored.
      Returns:
      the next available offset into the buffer, or -1 if the buffer is full.
    • putLong

      public int putLong​(int offset,
                         long v)
      Description copied from interface: Buffer
      Put the 64-bit long value into the buffer at the specified offset.
      Specified by:
      putLong in interface Buffer
      Parameters:
      offset - byte offset from start of buffer.
      v - the long value to be stored.
      Returns:
      the next available offset into the buffer, or -1 if the buffer is full.
    • clear

      public void clear()
      Sets all the values in the buffer to 0;
    • move

      public void move​(int src,
                       int dest,
                       int length)
      Move the data within this buffer.
      Parameters:
      src - source offset within this buffer
      dest - destination offset within this buffer
      length - length of data to be moved
      Throws:
      java.lang.ArrayIndexOutOfBoundsException - is thrown if parameters result in data access beyond the buffer size.
    • copy

      public void copy​(int offset,
                       DataBuffer buf,
                       int bufOffset,
                       int length)
      Copy data from another buffer into this buffer.
      Parameters:
      offset - offset within this buffer.
      buf - source buffer
      bufOffset - source buffer offset
      length - amount of data to copy.
      Throws:
      java.lang.ArrayIndexOutOfBoundsException - is thrown if parameters result in data access beyond the buffer size.
    • writeExternal

      public void writeExternal​(java.io.ObjectOutput out)
                         throws java.io.IOException
      Specified by:
      writeExternal in interface java.io.Externalizable
      Throws:
      java.io.IOException
    • readExternal

      public void readExternal​(java.io.ObjectInput in)
                        throws java.io.IOException,
                               java.lang.ClassNotFoundException
      Specified by:
      readExternal in interface java.io.Externalizable
      Throws:
      java.io.IOException
      java.lang.ClassNotFoundException