Package org.apache.catalina.tribes.io

## Class ObjectReader

- java.lang.Object
- - org.apache.catalina.tribes.io.ObjectReader

-     public class ObjectReader
      extends Object

  The object reader object is an object used in conjunction with java.nio TCP messages. This object stores the message bytes in a `XByteBuffer` until a full package has been received. This object uses an XByteBuffer which is an extendable object buffer that also allows for message encoding and decoding.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected boolean` | `accessed` |
    `protected long` | `lastAccess` |
    `protected static StringManager` | `sm` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ObjectReader​(int packetSize)` |
    `ObjectReader​(Socket socket)` | Creates an `ObjectReader` for a TCP socket
    `ObjectReader​(SocketChannel channel)` | Creates an `ObjectReader` for a TCP NIO socket channel

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `access()` |
    `int` | `append​(byte[] data, int off, int len, boolean count)` |
    `int` | `append​(ByteBuffer data, int len, boolean count)` | Append new bytes to buffer.
    `int` | `bufferSize()` |
    `void` | `close()` |
    `int` | `count()` | Returns the number of packages that the reader has read
    `ChannelMessage[]` | `execute()` | Send buffer to cluster listener (callback).
    `void` | `finish()` |
    `long` | `getLastAccess()` |
    `boolean` | `hasPackage()` |
    `boolean` | `isAccessed()` |
    `boolean` | `isCancelled()` |
    `void` | `setCancelled​(boolean cancelled)` |
    `void` | `setLastAccess​(long lastAccess)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### sm

          protected static final StringManager sm

    - #### lastAccess

          protected long lastAccess

    - #### accessed

          protected boolean accessed

  - ### Constructor Detail

    - #### ObjectReader

          public ObjectReader​(int packetSize)

    - #### ObjectReader

          public ObjectReader​(SocketChannel channel)

      Creates an `ObjectReader` for a TCP NIO socket channel
      Parameters:
        `channel` - - the channel to be read.

    - #### ObjectReader

          public ObjectReader​(Socket socket)

      Creates an `ObjectReader` for a TCP socket
      Parameters:
        `socket` - Socket

  - ### Method Detail

    - #### access

          public void access()

    - #### finish

          public void finish()

    - #### isAccessed

          public boolean isAccessed()

    - #### append

          public int append​(ByteBuffer data,
                            int len,
                            boolean count)

      Append new bytes to buffer.
      Parameters:
        `data` - new transfer buffer
        `len` - length in buffer
        `count` - whether to return the count
      Returns:
        number of messages that was sent to callback (or -1 if count == false)
      See Also:
        `XByteBuffer.countPackages()`

    - #### append

          public int append​(byte[] data,
                            int off,
                            int len,
                            boolean count)

    - #### execute

          public ChannelMessage[] execute()

      Send buffer to cluster listener (callback). Is message complete receiver send message to callback?
      Returns:
        number of received packages/messages
      See Also:
        `ReceiverBase.messageDataReceived(ChannelMessage)`, `XByteBuffer.doesPackageExist()`, `XByteBuffer.extractPackage(boolean)`

    - #### bufferSize

          public int bufferSize()

    - #### hasPackage

          public boolean hasPackage()

    - #### count

          public int count()

      Returns the number of packages that the reader has read
      Returns:
        int

    - #### close

          public void close()

    - #### getLastAccess

          public long getLastAccess()

    - #### isCancelled

          public boolean isCancelled()

    - #### setLastAccess

          public void setLastAccess​(long lastAccess)

    - #### setCancelled

          public void setCancelled​(boolean cancelled)