com.tibbo.aggregate.common.communication

## Class AsyncCommandProcessor<I extends Command,O extends Command,C extends AbstractDeviceController<I,O>>

- java.lang.Object
- - java.lang.Thread
  - - com.tibbo.aggregate.common.communication.AsyncCommandProcessor<I,O,C>

- All Implemented Interfaces:
    java.lang.Runnable

      public class AsyncCommandProcessor<I extends Command,O extends Command,C extends AbstractDeviceController<I,O>>
      extends java.lang.Thread

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class java.lang.Thread

      `java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler`

  - ### Field Summary

    - ### Fields inherited from class java.lang.Thread

      `MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AsyncCommandProcessor(C controller)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<ReplyMonitor<O,I>>` | `getActiveCommands()`
    `C` | `getController()`
    `CommandProcessorStatistics` | `getStatistics()`
    `void` | `interrupt()`
    `boolean` | `isActive()`
    `void` | `resetSentCommandTimeouts()`
    `void` | `run()`
    `I` | `sendSyncCommand(O cmd)`
    `void` | `sendUnrepliedCommand(O cmd)`

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

      `activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield`

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

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

- - ### Constructor Detail

    - #### AsyncCommandProcessor

          public AsyncCommandProcessor(C controller)

  - ### Method Detail

    - #### sendSyncCommand

          public I sendSyncCommand(O cmd)
                            throws DisconnectionException,
                                   java.io.IOException,
                                   java.lang.InterruptedException

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

    - #### sendUnrepliedCommand

          public void sendUnrepliedCommand(O cmd)
                                    throws DisconnectionException,
                                           java.io.IOException

      Throws:
        `DisconnectionException`
        `java.io.IOException`

    - #### resetSentCommandTimeouts

          public void resetSentCommandTimeouts()

    - #### run

          public void run()

      Specified by:
        `run` in interface `java.lang.Runnable`
      Overrides:
        `run` in class `java.lang.Thread`

    - #### isActive

          public boolean isActive()

    - #### getActiveCommands

          public java.util.List<ReplyMonitor<O,I>> getActiveCommands()

    - #### interrupt

          public void interrupt()

      Overrides:
        `interrupt` in class `java.lang.Thread`

    - #### getController

          public C getController()

    - #### getStatistics

          public CommandProcessorStatistics getStatistics()