## com.rbnb.api
Interface PlugIn

All Superinterfaces:
  Client, ClientInterface, Cloneable, PlugInInterface, RegisteredInterface, RmapInterface, Serializable, UsernameInterface

    public interface PlugIn

extends Client, PlugInInterface

Client-side representation of a plugin client application connection to the RBNB server.

Since:
  V2.0
Author:
  Ian Brown
Version:
  09/29/2004

Field Summary

Fields inherited from interface com.rbnb.api.ClientInterface
`CLIENT, FOREVER, MIRROR, PLUGIN`

Method Summary
`long` `bytesTransferred()`
`Object` `clone()` Clones this object.
`Object` `fetch(long timeOutI)` Retrieves the next request from the `Server`.
`void` `fillRequestOptions(RequestOptions roO)` Fills the input `RequestOptions` object with values read from the server.

Methods inherited from interface com.rbnb.api.Client
`isSynchronized, start, start, start, stop, stop, stop, stop, synchronizeWserver`

Methods inherited from interface com.rbnb.api.PlugInInterface
`register, reRegister`

Methods inherited from interface com.rbnb.api.ClientInterface
`getRemoteID, getType, isRunning, setRemoteID, setType, tryReconnect`

Methods inherited from interface com.rbnb.api.RegisteredInterface
`getRegistered`

Methods inherited from interface com.rbnb.api.RmapInterface
`addChild, compareNames, compareNames, compareTo, findChild, findDescendant, getFullName, getName, getParent, removeChild, removeChildAt, setName, toString, toString`

Methods inherited from interface com.rbnb.api.UsernameInterface
`getUsername, setUsername`

Method Detail

### clone

    Object clone()

  Clones this object.

  This same abstract declaration is also included in RmapInterface.java, but for some unknown reason J# gives a compiler error if it is not also included here.

  Specified by:
    `clone` in interface `Client`
  Specified by:
    `clone` in interface `ClientInterface`
  Specified by:
    `clone` in interface `PlugInInterface`
  Specified by:
    `clone` in interface `RmapInterface`
  Returns:
    the clone.
  Since:
    V2.5
  See Also:
    `Cloneable`
  Author:
    John Wilson
  Version:
    09/29/2004

### fillRequestOptions

    void fillRequestOptions(RequestOptions roO)

  Fills the input `RequestOptions` object with values read from the server.

  Parameters:
    `roO` - the `RequestOptions` to fill.
  Since:
    V2.2
  Author:
    Ian Brown
  Version:
    06/11/2003

### bytesTransferred

    long bytesTransferred()

### fetch

    Object fetch(long timeOutI)
                 throws AddressException,
                        SerializeException,
                        EOFException,
                        IOException,
                        InterruptedException

  Retrieves the next request from the `Server`.

  The request can either be an `Rmap` hierarchy or an `Ask` object. In the latter case, the `Ask` object specifies that it is looking for registration information and the additional information is an `Rmap` hierarchy.

  The `Rmap` hierarchy of the request returned consists of a top-level `DataRequest` object with a name and time/frame information that identifies which request this is. This information should be copied to an `Rmap` at the top of the response hierarchy.

  Parameters:
    `timeOutI` - timeout in milliseconds.
    - 0 means return a response only if one is ready,
    - `FOREVER` means wait for a response to show up, or
    - anything else means wait for a response to show up or for the timeout period to elapse.
  Returns:
    the request as an `Object`:
    - null is returned if the timeout period is exceeded before a request is seen,
    - an `EndOfStream` object is returned if the request ends normally,
    - an `Ask` object requesting registration, or
    - an `Rmap` containing the request is returned.
  Throws:
    `AddressException` - thrown if there is a problem with an address.
    `SerializeException` - thrown if there is a problem with the serialization.
    `EOFException` - thrown if the end of the input stream is reached.
    `InterruptedIOException` - thrown if the I/O is interrupted.
    `IOException` - thrown if there is an error during I/O.
    `IllegalStateException` - thrown if there is no active request.
    `InterruptedException` - thrown if the operation is interrupted.
  Since:
    V2.0
  See Also:
    `DataRequest`, `Rmap`, `RmapInterface.addChild(com.rbnb.api.Rmap)`
  Author:
    Ian Brown
  Version:
    04/15/2002