Class NioByteStoreAccess

  • All Implemented Interfaces:
    ByteStoreAccess

    public abstract class NioByteStoreAccess
    extends java.lang.Object
    implements ByteStoreAccess
    Partial implementation of ByteStoreAccess. Not thread-safe.
    Since:
    20 Aug 2010
    Author:
    Mark Taylor
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      static java.nio.ByteBuffer[] copyBuffers​(java.nio.ByteBuffer[] bufs)
      Utility method to make a deep copy of an array of ByteBuffers.
      static ByteStoreAccess createAccess​(java.nio.ByteBuffer[] bbufs)
      Returns a reader implementation for an array of ByteBuffers.
      protected abstract java.nio.ByteBuffer getBuffer​(int nbyte)
      Returns a buffer with at least the requested number of bytes between the current position and the limit.
      byte readByte()
      Reads a byte from the current position.
      void readBytes​(byte[] b, int offset, int length)
      Reads bytes into a buffer from the current position.
      char readChar()
      Reads a char from the current position.
      double readDouble()
      Reads a double from the current position.
      float readFloat()
      Reads a float from the current position.
      int readInt()
      Reads an int from the current position.
      long readLong()
      Reads a long from the current position.
      short readShort()
      Reads a short from the current position.
      • Methods inherited from class java.lang.Object

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

      • NioByteStoreAccess

        public NioByteStoreAccess()
    • Method Detail

      • getBuffer

        protected abstract java.nio.ByteBuffer getBuffer​(int nbyte)
                                                  throws java.io.IOException
        Returns a buffer with at least the requested number of bytes between the current position and the limit. When nbyte bytes have been read from the returned buffer, the current position of this ByteStoreAccess will have advanced by nbyte bytes. The position in the case that this call is made with no corresponding read is undefined, so it's important that the read is actually done (don't call this method speculatively).

        If no such buffer is available (the end of the storage has been reached), then an IOException will be thrown.

        Parameters:
        nbyte - number of bytes required
        Returns:
        buffer from which nbyte bytes can be read
        Throws:
        java.io.IOException
      • readByte

        public byte readByte()
                      throws java.io.IOException
        Description copied from interface: ByteStoreAccess
        Reads a byte from the current position.
        Specified by:
        readByte in interface ByteStoreAccess
        Returns:
        read value
        Throws:
        java.io.IOException
      • readShort

        public short readShort()
                        throws java.io.IOException
        Description copied from interface: ByteStoreAccess
        Reads a short from the current position.
        Specified by:
        readShort in interface ByteStoreAccess
        Returns:
        read value
        Throws:
        java.io.IOException
      • readChar

        public char readChar()
                      throws java.io.IOException
        Description copied from interface: ByteStoreAccess
        Reads a char from the current position.
        Specified by:
        readChar in interface ByteStoreAccess
        Returns:
        read value
        Throws:
        java.io.IOException
      • readInt

        public int readInt()
                    throws java.io.IOException
        Description copied from interface: ByteStoreAccess
        Reads an int from the current position.
        Specified by:
        readInt in interface ByteStoreAccess
        Returns:
        read value
        Throws:
        java.io.IOException
      • readLong

        public long readLong()
                      throws java.io.IOException
        Description copied from interface: ByteStoreAccess
        Reads a long from the current position.
        Specified by:
        readLong in interface ByteStoreAccess
        Returns:
        read value
        Throws:
        java.io.IOException
      • readFloat

        public float readFloat()
                        throws java.io.IOException
        Description copied from interface: ByteStoreAccess
        Reads a float from the current position.
        Specified by:
        readFloat in interface ByteStoreAccess
        Returns:
        read value
        Throws:
        java.io.IOException
      • readDouble

        public double readDouble()
                          throws java.io.IOException
        Description copied from interface: ByteStoreAccess
        Reads a double from the current position.
        Specified by:
        readDouble in interface ByteStoreAccess
        Returns:
        read value
        Throws:
        java.io.IOException
      • readBytes

        public void readBytes​(byte[] b,
                              int offset,
                              int length)
                       throws java.io.IOException
        Description copied from interface: ByteStoreAccess
        Reads bytes into a buffer from the current position.
        Specified by:
        readBytes in interface ByteStoreAccess
        Parameters:
        b - buffer to receive bytes
        offset - offset into b for first byte
        length - number of bytes to read
        Throws:
        java.io.IOException
      • copyBuffers

        public static java.nio.ByteBuffer[] copyBuffers​(java.nio.ByteBuffer[] bufs)
        Utility method to make a deep copy of an array of ByteBuffers.
        Parameters:
        bufs - input buffers
        Returns:
        matching array with buffers that are duplicates of the input elements
      • createAccess

        public static ByteStoreAccess createAccess​(java.nio.ByteBuffer[] bbufs)
        Returns a reader implementation for an array of ByteBuffers.
        Parameters:
        bbufs - buffer array
        Returns:
        reader implementation