Class

colossus.service

BasicServiceHandler

Related Doc: package service

Permalink

class BasicServiceHandler[C <: CodecDSL] extends ServiceServer[service.BasicServiceHandler.C.Input, service.BasicServiceHandler.C.Output] with DSLHandler[C]

Linear Supertypes
DSLHandler[C], ConnectionContext[C], ServiceServer[C.Input, C.Output], ServerConnectionHandler, Controller[C.Input, C.Output], OutputController[C.Input, C.Output], InputController[C.Input, C.Output], MasterController[C.Input, C.Output], ConnectionHandler, WorkerItem, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. BasicServiceHandler
  2. DSLHandler
  3. ConnectionContext
  4. ServiceServer
  5. ServerConnectionHandler
  6. Controller
  7. OutputController
  8. InputController
  9. MasterController
  10. ConnectionHandler
  11. WorkerItem
  12. AnyRef
  13. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Instance Constructors

  1. new BasicServiceHandler(config: ServiceConfig[C.Input, C.Output], worker: WorkerRef, provider: CodecProvider[C], initializer: HandlerGenerator[C])(implicit ex: ExecutionContext, tagDecorator: TagDecorator[C.Input, C.Output] = ...)

    Permalink

Type Members

  1. case class QueuedItem(item: Output, postWrite: (OutputResult) ⇒ Unit, creationTimeMillis: Long) extends Product with Serializable

    Permalink
    Definition Classes
    OutputController
  2. case class SyncPromise(request: I) extends Product with Serializable

    Permalink
    Definition Classes
    ServiceServer

Value Members

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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

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

    Permalink
    Definition Classes
    AnyRef → Any
  4. def addError(err: Throwable, extraTags: TagMap = TagMap.Empty): Unit

    Permalink
    Definition Classes
    ServiceServer
  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def become(handler: PartialHandler[C]): Unit

    Permalink

    Set a partial function for the request processing handler for the connection.

    Set a partial function for the request processing handler for the connection. Any request that falls through the handler will be automatically converted into an error response with a UnhandledRequestException as the cause

    Definition Classes
    BasicServiceHandlerConnectionContext
  7. def binding: Option[WorkerItemBinding]

    Permalink

    When bound to a worker, this contains the [WorkerItemBinding]

    When bound to a worker, this contains the [WorkerItemBinding]

    Definition Classes
    WorkerItem
  8. def boundWorker: Option[WorkerRef]

    Permalink
    Definition Classes
    WorkerItem
  9. implicit val callbackExecutor: CallbackExecutor

    Permalink
    Definition Classes
    ServiceServer
  10. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. val codec: Codec[C.Output, C.Input]

    Permalink
    Definition Classes
    ControllerMasterController
  12. val concurrentRequests: Local[Counter]

    Permalink
    Definition Classes
    ServiceServer
  13. def connected(e: WriteEndpoint): Unit

    Permalink

    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).

    Definition Classes
    BasicServiceHandlerControllerConnectionHandler
  14. def connectionClosed(cause: DisconnectCause): Unit

    Permalink

    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

    Definition Classes
    ServiceServerControllerConnectionHandler
  15. def connectionInfo: Option[ConnectionInfo]

    Permalink

    Returns a read-only trait containing live information about the connection.

    Returns a read-only trait containing live information about the connection.

    Definition Classes
    Controller
  16. def connectionLost(cause: DisconnectError): Unit

    Permalink

    Connection lost is caused by termination, closed, etc

    Connection lost is caused by termination, closed, etc

    cause

    why the connection was lost

    Definition Classes
    ServiceServerControllerConnectionHandler
  17. def connectionTerminated(cause: DisconnectCause): Unit

    Permalink

    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
  18. val controllerConfig: ControllerConfig

    Permalink
    Definition Classes
    ControllerMasterController
  19. def currentRequestBufferSize: Int

    Permalink
    Definition Classes
    ServiceServer
  20. def disconnect(): Unit

    Permalink
    Definition Classes
    ControllerMasterController
  21. final def eq(arg0: AnyRef): Boolean

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

    Permalink
    Definition Classes
    AnyRef → Any
  23. val errors: Local[Rate]

    Permalink
    Definition Classes
    ServiceServer
  24. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  25. def fullHandler: PartialFunction[C.Input, Callback[C.Output]]

    Permalink
    Attributes
    protected
  26. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  27. def gracefulDisconnect(): Unit

    Permalink

    Terminate the connection, but allow any outstanding requests to complete (or timeout) before disconnecting

    Terminate the connection, but allow any outstanding requests to complete (or timeout) before disconnecting

    Definition Classes
    ServiceServerController
  28. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  29. def id: Option[Long]

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

    Permalink

    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
    ServiceServerOutputControllerConnectionHandler
  31. val initializer: HandlerGenerator[C]

    Permalink
  32. def isBound: Boolean

    Permalink
    Definition Classes
    WorkerItem
  33. def isConnected: Boolean

    Permalink
    Definition Classes
    Controller
  34. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  35. val latency: Local[Histogram]

    Permalink
    Definition Classes
    ServiceServer
  36. val log: LoggingAdapter

    Permalink
    Definition Classes
    ServiceServer
  37. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  38. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  39. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  40. def onBind(): Unit

    Permalink

    Called when the item is bound to a worker.

    Called when the item is bound to a worker.

    Attributes
    protected
    Definition Classes
    WorkerItem
  41. def onError(handler: ErrorHandler[C]): Unit

    Permalink

    Attach a handler for non-recoverable errors.

    Attach a handler for non-recoverable errors. This includes uncaught exceptions, unhandled requests, request timeouts, and other server-level errors. In every case, this handler should not attempt to actually process the request, but instead simply return an appropriately formatted error response.

    Definition Classes
    BasicServiceHandlerConnectionContext
  42. def onUnbind(): Unit

    Permalink

    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
  43. def outputQueueFull: Boolean

    Permalink
    Definition Classes
    OutputController
  44. def pauseReads(): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    InputController
  45. def pauseWrites(): Unit

    Permalink

    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
    Definition Classes
    OutputController
  46. def process(f: (C.Input) ⇒ Callback[C.Output]): Unit

    Permalink

    Set a function for the request processing handler for the connection

    Set a function for the request processing handler for the connection

    Definition Classes
    ConnectionContext
  47. def processFailure(request: C.Input, reason: Throwable): C.Output

    Permalink
    Attributes
    protected
    Definition Classes
    BasicServiceHandlerServiceServer
  48. def processMessage(request: C.Input): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    ServiceServerInputController
  49. def processRequest(i: C.Input): Callback[C.Output]

    Permalink
    Attributes
    protected
    Definition Classes
    BasicServiceHandlerServiceServer
  50. def purgeAll(reason: Throwable): Unit

    Permalink

    Purge both pending and outgoing messages

    Purge both pending and outgoing messages

    Attributes
    protected
    Definition Classes
    OutputController
  51. def purgeOutgoing(reason: Throwable): Unit

    Permalink

    Purge the outgoing message, if there is one

    Purge the outgoing message, if there is one

    If a message is currently being streamed, the stream will be terminated

    Attributes
    protected
    Definition Classes
    OutputController
  52. def purgePending(reason: Throwable): Unit

    Permalink

    Purge all pending messages

    Purge all pending messages

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

    Attributes
    protected
    Definition Classes
    OutputController
  53. def push(item: C.Output, createdMillis: Long = System.currentTimeMillis)(postWrite: (OutputResult) ⇒ Unit): Boolean

    Permalink

    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
    Definition Classes
    OutputController
  54. def pushResponse(request: C.Input, response: C.Output, startTime: Long): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    ServiceServer
  55. def queueSize: Int

    Permalink
    Definition Classes
    OutputController
  56. def readsEnabled: Boolean

    Permalink
    Definition Classes
    InputController
  57. def readyForData(): Unit

    Permalink

    This function is called to signal to the handler that it can resume writing data.

    This function is called to signal to the handler that it can resume writing data. It is called as part of the WriteEndPoint event loop write cycle, where previously this handler attempted to write data, but the buffers were filled up. This is called once the buffers are empty again and able to receive data. This handler should be in a state where it is paused on writing data until this handler is invoked.

    Definition Classes
    OutputControllerConnectionHandler
  58. def receive(handler: PartialFunction[Any, Unit]): Unit

    Permalink

    Set the handler for actor messages intended for this connection.

    Set the handler for actor messages intended for this connection.

    Definition Classes
    BasicServiceHandlerConnectionContext
  59. def receivedData(data: DataBuffer): Unit

    Permalink

    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
    InputControllerConnectionHandler
  60. def receivedMessage(message: Any, sender: ActorRef): Unit

    Permalink

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

    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
    BasicServiceHandlerWorkerItem
  61. val requests: Local[Rate]

    Permalink
    Definition Classes
    ServiceServer
  62. val requestsPerConnection: Local[Histogram]

    Permalink
    Definition Classes
    ServiceServer
  63. def resumeReads(): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    InputController
  64. def resumeWrites(): Unit

    Permalink

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

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

    Attributes
    protected
    Definition Classes
    OutputController
  65. def schedule(in: FiniteDuration, message: Any): Unit

    Permalink
    Definition Classes
    ServiceServer
  66. def sender(): ActorRef

    Permalink

    Gets the sender of the current message being processed in the receive handler

    Gets the sender of the current message being processed in the receive handler

    Definition Classes
    BasicServiceHandlerConnectionContext
  67. def shutdownRequest(): Unit

    Permalink

    The server is beginning to shutdown and is signaling to the connection that it should cleanup and terminate.

    The server is beginning to shutdown and is signaling to the connection that it should cleanup and terminate. This gives the connection time to gracefully shutdown, however eventually the server will timeout and forcefully close the connection

    Definition Classes
    ServiceServerServerConnectionHandler
  68. var state: ConnectionState

    Permalink
    Attributes
    protected
    Definition Classes
    ControllerMasterController
  69. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  70. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  71. def unhandled: PartialHandler[C]

    Permalink
    Attributes
    protected
  72. def unhandledError: ErrorHandler[C]

    Permalink
    Attributes
    protected
  73. def unhandledReceive: Receive

    Permalink
    Attributes
    protected
  74. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  77. def writesEnabled: Boolean

    Permalink
    Definition Classes
    OutputController

Inherited from DSLHandler[C]

Inherited from ConnectionContext[C]

Inherited from ServiceServer[C.Input, C.Output]

Inherited from ServerConnectionHandler

Inherited from Controller[C.Input, C.Output]

Inherited from OutputController[C.Input, C.Output]

Inherited from InputController[C.Input, C.Output]

Inherited from MasterController[C.Input, C.Output]

Inherited from ConnectionHandler

Inherited from WorkerItem

Inherited from AnyRef

Inherited from Any

Ungrouped