Class WrapperObjectInputStream

  • All Implemented Interfaces:
    com.oracle.coherence.common.io.InputStreaming, InputStreaming, Closeable, DataInput, ObjectInput, AutoCloseable

    public class WrapperObjectInputStream
    extends WrapperDataInputStream
    implements ObjectInput
    This is an imitation ObjectInputStream class that provides the ObjectInput interface by delegating to an object that implements the ObjectInput interface. Primarily, this is intended as a base class for building specific-purpose ObjectInput wrappers.
    Author:
    cp 2004.08.20
    • Constructor Detail

      • WrapperObjectInputStream

        public WrapperObjectInputStream​(ObjectInput in)
        Construct a WrapperObjectInputStream that will read from the specified object implementing the ObjectInput interface.
        Parameters:
        in - an object implementing ObjectInput to read from
    • Method Detail

      • getObjectInput

        public ObjectInput getObjectInput()
        Obtain the underlying object providing the ObjectInput interface that this object is delegating to.
        Returns:
        the underlying ObjectInput
      • read

        public int read()
                 throws IOException
        Read the next byte of data from the InputStream. The value byte is returned as an int in the range 0 to 255. If the end of the stream has been reached, the value -1 is returned.

        This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

        Specified by:
        read in interface com.oracle.coherence.common.io.InputStreaming
        Specified by:
        read in interface ObjectInput
        Overrides:
        read in class WrapperDataInputStream
        Returns:
        the next byte of data, or -1 if the end of the stream has been reached
        Throws:
        IOException - if an I/O error occurs
      • read

        public int read​(byte[] ab)
                 throws IOException
        Read some number of bytes from the input stream and store them into the passed array ab. The number of bytes actually read is returned.

        This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

        Specified by:
        read in interface com.oracle.coherence.common.io.InputStreaming
        Specified by:
        read in interface ObjectInput
        Overrides:
        read in class WrapperDataInputStream
        Parameters:
        ab - the array to store the bytes which are read from the stream
        Returns:
        the number of bytes read from the stream, or -1 if no bytes were read from the stream because the end of the stream had been reached
        Throws:
        NullPointerException - if the passed array is null
        IOException - if an I/O error occurs
      • read

        public int read​(byte[] ab,
                        int of,
                        int cb)
                 throws IOException
        Read up to cb bytes from the input stream and store them into the passed array ab starting at offset of. The number of bytes actually read is returned.

        This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.

        Specified by:
        read in interface com.oracle.coherence.common.io.InputStreaming
        Specified by:
        read in interface ObjectInput
        Overrides:
        read in class WrapperDataInputStream
        Parameters:
        ab - the array to store the bytes which are read from the stream
        of - the offset into the array that the read bytes will be stored
        cb - the maximum number of bytes to read
        Returns:
        the number of bytes read from the stream, or -1 if no bytes were read from the stream because the end of the stream had been reached
        Throws:
        NullPointerException - if the passed array is null
        IndexOutOfBoundsException - if of or cb is negative, or of+cb is greater than the length of the ab
        IOException - if an I/O error occurs
      • skip

        public long skip​(long cb)
                  throws IOException
        Skips over up to the specified number of bytes of data from this InputStream. The number of bytes actually skipped over may be fewer than the number specified to skip, and may even be zero; this can be caused by an end-of-file condition, but can also occur even when there is data remaining in the InputStream. As a result, the caller should check the return value from this method, which indicates the actual number of bytes skipped.
        Specified by:
        skip in interface com.oracle.coherence.common.io.InputStreaming
        Specified by:
        skip in interface ObjectInput
        Overrides:
        skip in class WrapperDataInputStream
        Parameters:
        cb - the maximum number of bytes to skip over
        Returns:
        the actual number of bytes that were skipped over
        Throws:
        IOException - if an I/O error occurs
      • available

        public int available()
                      throws IOException
        Returns the number of bytes that can be read (or skipped over) from this input stream without causing a blocking I/O condition to occur. This method reflects the assumed implementation of various buffering InputStreams, which can guarantee non-blocking reads up to the extent of their buffers, but beyond that the read operations will have to read from some underlying (and potentially blocking) source.
        Specified by:
        available in interface com.oracle.coherence.common.io.InputStreaming
        Specified by:
        available in interface ObjectInput
        Overrides:
        available in class WrapperDataInputStream
        Returns:
        the number of bytes that can be read from this InputStream without blocking
        Throws:
        IOException - if an I/O error occurs