com.tibbo.aggregate.common.protocol

## Interface AggreGateDeviceController<I extends Command,O extends Command>

- All Superinterfaces:
    RemoteConnector
  All Known Implementing Classes:
    AbstractAggreGateDeviceController, RemoteServerController

      public interface AggreGateDeviceController<I extends Command,O extends Command>
      extends RemoteConnector

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `connect()`
    `void` | `disconnect()`
    `java.util.List<ReplyMonitor<OutgoingAggreGateCommand,IncomingAggreGateCommand>>` | `getActiveCommands()`
    `AggreGateDevice` | `getDevice()`
    `CommandProcessorStatistics` | `getStatistics()`
    `boolean` | `isActive()`
    `void` | `login()`
    `I` | `sendCommand(O cmd)`
    `void` | `start()`

    - ### Methods inherited from interface com.tibbo.aggregate.common.util.RemoteConnector

      `getCallerController, getContextManager, getSettings`

- - ### Method Detail

    - #### getDevice

          AggreGateDevice getDevice()

    - #### connect

          void connect()
                throws DisconnectionException,
                       java.io.IOException,
                       java.lang.InterruptedException,
                       RemoteDeviceErrorException,
                       ContextException

      Throws:
        `DisconnectionException`
        `java.io.IOException`
        `java.lang.InterruptedException`
        `RemoteDeviceErrorException`
        `ContextException`

    - #### disconnect

          void disconnect()
                   throws java.io.IOException,
                          java.lang.InterruptedException,
                          RemoteDeviceErrorException

      Throws:
        `java.io.IOException`
        `java.lang.InterruptedException`
        `RemoteDeviceErrorException`

    - #### login

          void login()
              throws ContextException

      Throws:
        `ContextException`

    - #### start

          void start()
              throws java.io.IOException,
                     java.lang.InterruptedException,
                     ContextException,
                     RemoteDeviceErrorException

      Throws:
        `java.io.IOException`
        `java.lang.InterruptedException`
        `ContextException`
        `RemoteDeviceErrorException`

    - #### isActive

          boolean isActive()

    - #### getStatistics

          CommandProcessorStatistics getStatistics()

    - #### sendCommand

          I sendCommand(O cmd)
                 throws DisconnectionException,
                        java.io.IOException,
                        java.lang.InterruptedException,
                        RemoteDeviceErrorException,
                        ContextException

      Throws:
        `DisconnectionException`
        `java.io.IOException`
        `java.lang.InterruptedException`
        `RemoteDeviceErrorException`
        `ContextException`

    - #### getActiveCommands

          java.util.List<ReplyMonitor<OutgoingAggreGateCommand,IncomingAggreGateCommand>> getActiveCommands()