colossus.service

ServiceServer

abstract class ServiceServer[I, O] extends ConnectionHandler

The ServiceServer provides an interface and basic functionality to create a server that processes requests and returns responses over a codec.

A Codec is simply the format in which the data is represented. Http, Redis protocol, Memcached protocl are all examples(and natively supported). It is entirely possible to use an additional Codec by creating a Codec to parse the desired protocol.

Requests can be processed synchronously or asynchronously. The server will ensure that all responses are written back in the order that they are received.

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ServiceServer
  2. ConnectionHandler
  3. WorkerItem
  4. AnyRef
  5. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ServiceServer(codec: ServerCodec[I, O], config: ServiceConfig, worker: WorkerRef)(implicit ex: ExecutionContext)

Type Members

  1. case class SyncPromise(request: I) extends Product with Serializable

Abstract Value Members

  1. abstract def processFailure(request: I, reason: Throwable): Completion[O]

    Attributes
    protected
  2. abstract def processRequest(request: I): Response[O]

    Attributes
    protected

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. val ERRORS: MetricAddress

  7. val LATENCY: MetricAddress

  8. val REQPERCON: MetricAddress

  9. val REQUESTS: MetricAddress

  10. def addError(err: Throwable, extraTags: TagMap = TagMap.Empty): Unit

  11. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  12. def bind(worker: WorkerRef): Unit

    Attempt to bind this WorkerItem to the worker.

    Attempt to bind this WorkerItem to the worker. When the binding succeeds, onBind() is called and the item will be able to receive events and messages. Notice that this method is asynchronous.

    worker

    The worker to bind to

    Definition Classes
    WorkerItem
  13. def binding: Option[WorkerItemBinding]

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

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

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

    Definition Classes
    WorkerItem
  15. implicit val callbackExecutor: CallbackExecutor

  16. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. val concurrentRequests: Local[Counter]

  18. 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
    ServiceServerConnectionHandler
  19. 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

    Definition Classes
    ServiceServerConnectionHandler
  20. 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

    Definition Classes
    ServiceServerConnectionHandler
  21. def connectionTerminated(cause: DisconnectCause): Unit

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

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

    cause

    why the connection was terminated

    Definition Classes
    ConnectionHandler
  22. def disconnect(): Unit

  23. final def eq(arg0: AnyRef): Boolean

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

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

  26. def finalize(): Unit

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

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

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

    Definition Classes
    WorkerItem
  30. 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
    ServiceServerConnectionHandler
  31. def isBound: Boolean

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

    Definition Classes
    Any
  33. val latency: Local[Histogram]

  34. val log: LoggingAdapter

  35. final def ne(arg0: AnyRef): Boolean

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

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

    Definition Classes
    AnyRef
  38. 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
  39. 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
  40. def readyForData(): Unit

    this is called if we previously filled up the write buffer and had to wait for it to clear up, and now it's ready

    this is called if we previously filled up the write buffer and had to wait for it to clear up, and now it's ready

    Definition Classes
    ServiceServerConnectionHandler
  41. 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
    ServiceServerConnectionHandler
  42. 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
    ServiceServerWorkerItem
  43. val requests: Local[Rate]

  44. val requestsPerConnection: Local[Histogram]

  45. def respond(f: ⇒ Response[O]): Response[O]

  46. def schedule(in: FiniteDuration, message: Any): Unit

  47. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  48. def toString(): String

    Definition Classes
    AnyRef → Any
  49. def unbind(): Unit

    Unbinds the WorkerItem, if it is bound.

    Unbinds the WorkerItem, if it is bound. When unbinding is complete, onUnbind() is called. This method is asynchronous.

    Definition Classes
    WorkerItem
  50. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from ConnectionHandler

Inherited from WorkerItem

Inherited from AnyRef

Inherited from Any

Ungrouped