colossus.controller

OutputController

trait OutputController[Input, Output] extends WorkerItem with MasterController[Input, Output]

The OutputController maintains all state dealing with writing messages in a controller. It maintains a queue of messages pending write and properly handles writing both regular messages as well as streams.

Linear Supertypes
MasterController[Input, Output], ConnectionHandler, WorkerItem, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. OutputController
  2. MasterController
  3. ConnectionHandler
  4. WorkerItem
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def codec: Codec[Output, Input]

    Attributes
    protected
    Definition Classes
    MasterController
  2. abstract def connected(endpoint: WriteEndpoint): Unit

    This handler is called when a Worker new Connection is established.

    This handler is called when a Worker new Connection is established. A Connection can be either an incoming (ie: something to connected to the server), or outgoing(ie: the server connected to a remote system).

    endpoint

    The endpoint which wraps the java NIO layer.

    Definition Classes
    ConnectionHandler
  3. abstract def connectionClosed(cause: DisconnectCause): Unit

    Connection was closed on our end, either by a shutdown, or by normal means

    Connection was closed on our end, either by a shutdown, or by normal means

    cause

    why the connection was closed

    Attributes
    protected
    Definition Classes
    ConnectionHandler
  4. abstract def connectionLost(cause: DisconnectError): Unit

    Connection lost is caused by termination, closed, etc

    Connection lost is caused by termination, closed, etc

    cause

    why the connection was lost

    Attributes
    protected
    Definition Classes
    ConnectionHandler
  5. abstract def connectionState: ConnectionState

    Attributes
    protected
    Definition Classes
    MasterController
  6. abstract def controllerConfig: ControllerConfig

    Attributes
    protected
    Definition Classes
    MasterController
  7. abstract def disconnect(): Unit

    Definition Classes
    MasterController
  8. implicit abstract def namespace: MetricNamespace

    Definition Classes
    MasterController
  9. abstract def receivedData(data: DataBuffer): Unit

    Handler which is called when data is received from a Connection.

    Handler which is called when data is received from a Connection.

    data

    DataBuffer read from the underlying Connection.

    Definition Classes
    ConnectionHandler
  10. abstract def receivedMessage(message: Any, sender: ActorRef): Unit

    Provides a way to send this WorkerItem a message from an Actor by way of WorkerCommand.

    Provides a way to send this WorkerItem a message from an Actor by way of WorkerCommand.Message.

    message

    The message that was sent

    sender

    The sender who sent the message

    Definition Classes
    WorkerItem
  11. abstract def shutdownRequest(): Unit

    the connection handler should begin its graceful shutdown procedure.

    the connection handler should begin its graceful shutdown procedure. For both servers and clients this can be triggered either by a call to gracefulDisconnect or to become. For ServerConnectionHandlers this can also occur when the Server begins shutting down.

    Definition Classes
    ConnectionHandler

Concrete Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def canPush: Boolean

    Attributes
    protected
  8. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. def connectionTerminated(cause: DisconnectCause): Unit

    Called from Worker when a connection has been terminated either by an error or by normal means.

    Called from Worker when a connection has been terminated either by an error or by normal means.

    cause

    why the connection was terminated

    Definition Classes
    ConnectionHandler
  10. val context: Context

    Definition Classes
    WorkerItem
  11. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  15. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  16. def id: Long

    Definition Classes
    WorkerItem
  17. def idleCheck(period: Duration): Unit

    Called periodically on every attached connection handler, this can be used for checking if an ongoing operation has timed out.

    Called periodically on every attached connection handler, this can be used for checking if an ongoing operation has timed out.

    Be aware that this is totally independant of a connection's idle timeout, which is only based on the last time there was any I/O.

    period

    the frequency at which this method is called. Currently this is hardcoded to WorkerManager.IdleCheckFrequency, but may become application dependent in the future.

    Definition Classes
    OutputControllerConnectionHandler
  18. def isBound: Boolean

    Definition Classes
    WorkerItem
  19. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  20. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  21. final def notify(): Unit

    Definition Classes
    AnyRef
  22. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  23. def onBind(): Unit

    Called when the item is bound to a worker.

    Called when the item is bound to a worker.

    Attributes
    protected
    Definition Classes
    WorkerItem
  24. def onUnbind(): Unit

    Called when the item has been unbound from a worker

    Called when the item has been unbound from a worker

    Attributes
    protected
    Definition Classes
    WorkerItem
  25. def pauseWrites(): Unit

    Pauses writing of the next item in the queue.

    Pauses writing of the next item in the queue. If there is currently a message in the process of writing, it will be unaffected. New messages can still be pushed to the queue as long as it is not full

    Attributes
    protected
  26. def purgePending(reason: Throwable): Unit

    Purge all pending messages

    Purge all pending messages

    If a message is currently being written, it is not affected

    Attributes
    protected
  27. def push(item: Output, createdMillis: Long = System.currentTimeMillis)(postWrite: (OutputResult) ⇒ Unit): Boolean

    Push a message to be written

    Push a message to be written

    Pushing a message does not necessarily mean it will be written, but rather that the message is queued to be written. Messages can be queue regardless of the state of the underlying connection, even if the connection is never reconnected. It is up to the caller to determine whether a message should be pushed based on connection state.

    item

    the message to push

    createdMillis

    the timestamp of when the message was created, defaults to now if not specified

    postWrite

    called either when writing has completed or failed

    returns

    true if the message was successfully enqueued, false if the queue is full

    Attributes
    protected
  28. def readyForData(buffer: DataOutBuffer): MoreDataResult

    Definition Classes
    OutputControllerConnectionHandler
  29. def resumeWrites(): Unit

    Resumes writing of messages if currently paused, otherwise has no affect

    Resumes writing of messages if currently paused, otherwise has no affect

    Attributes
    protected
  30. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  31. def toString(): String

    Definition Classes
    AnyRef → Any
  32. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  35. def worker: WorkerRef

    Definition Classes
    WorkerItem
  36. def writesEnabled: Boolean

    Attributes
    protected

Inherited from MasterController[Input, Output]

Inherited from ConnectionHandler

Inherited from WorkerItem

Inherited from AnyRef

Inherited from Any

Ungrouped