colossus.service

ServiceClient

class ServiceClient[I, O] extends Controller[O, I] with ClientConnectionHandler with ServiceClientLike[I, O] with ManualUnbindHandler

A ServiceClient is a non-blocking, synchronous interface that handles sending atomic commands on a connection and parsing their replies

Notice - The client will not begin to connect until it is bound to a worker, so when using the default constructor a service client will not connect on it's own. You must either call bind on the client or use the constructor that accepts a worker

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ServiceClient
  2. ManualUnbindHandler
  3. ServiceClientLike
  4. LocalClient
  5. ClientLike
  6. ClientConnectionHandler
  7. Controller
  8. ConnectionHandler
  9. WorkerItem
  10. AnyRef
  11. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ServiceClient(codec: Codec[I, O], config: ClientConfig, worker: WorkerRef)(implicit tagDecorator: TagDecorator[I, O] = TagDecorator.default[I, O])

Type Members

  1. case class AsyncRequest(request: I, handler: (Try[O]) ⇒ Unit) extends Product with Serializable

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

    Definition Classes
    Controller
  3. type ResponseHandler = (Try[O]) ⇒ Unit

  4. case class SourcedRequest(message: I, handler: (Try[O]) ⇒ Unit) extends Product with Serializable

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 binding: Option[WorkerItemBinding]

    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]

    Definition Classes
    WorkerItem
  9. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. val config: ClientConfig

    Definition Classes
    ServiceClientServiceClientLike
  11. 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
    ServiceClientControllerConnectionHandler
  12. 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
    ServiceClientControllerConnectionHandler
  13. def connectionFailed(): Unit

    Event handler for when a connection failed.

    Event handler for when a connection failed.

    Definition Classes
    ServiceClientClientConnectionHandler
  14. 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
    ServiceClientControllerConnectionHandler
  15. def connectionStatus: ConnectionStatus

    returns

    Underlying WriteEndpoint's ConnectionStatus, defaults to Connecting if there is no WriteEndpoint

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

    Definition Classes
    Controller
  18. def disconnect(): Unit

    Definition Classes
    Controller
  19. final def eq(arg0: AnyRef): Boolean

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

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

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

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

    Allow any requests in transit to complete, but cancel all pending requests and don't allow any new ones

    Allow any requests in transit to complete, but cancel all pending requests and don't allow any new ones

    Definition Classes
    ServiceClientServiceClientLikeController
  24. def hashCode(): Int

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

    Definition Classes
    WorkerItem
  26. 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
    ServiceClientConnectionHandler
  27. def isBound: Boolean

    Definition Classes
    WorkerItem
  28. def isConnected: Boolean

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

    Definition Classes
    Any
  30. lazy val log: LoggingAdapter

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

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

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

    Definition Classes
    AnyRef
  34. def onBind(): Unit

    Called when the item is bound to a worker.

    Called when the item is bound to a worker.

    Definition Classes
    ServiceClientWorkerItem
  35. 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
  36. def pauseReads(): Unit

    Attributes
    protected
    Definition Classes
    Controller
  37. 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
    Definition Classes
    Controller
  38. def paused: Boolean

    Attributes
    protected
    Definition Classes
    Controller
  39. def processMessage(response: O): Unit

    Definition Classes
    ServiceClientController
  40. def purgeAll(): Unit

    Purge both pending and outgoing messages

    Purge both pending and outgoing messages

    Attributes
    protected
    Definition Classes
    Controller
  41. def purgeOutgoing(): Unit

    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
    Controller
  42. def purgePending(): Unit

    Purge all pending messages

    Purge all pending messages

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

    Attributes
    protected
    Definition Classes
    Controller
  43. def push(item: I)(postWrite: (OutputResult) ⇒ Unit): Boolean

    Push a message to be written

    Push a message to be written

    item

    the message to push

    postWrite

    called either when writing has completed or failed

    Attributes
    protected
    Definition Classes
    Controller
  44. def readyForData(): Unit

    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
    ControllerConnectionHandler
  45. def receivedData(data: DataBuffer): Unit

    ***** INPUT ******

    ***** INPUT ******

    data

    DataBuffer read from the underlying Connection.

    Definition Classes
    ControllerConnectionHandler
  46. 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
    ServiceClientWorkerItem
  47. def resumeReads: Unit

    Attributes
    protected
    Definition Classes
    Controller
  48. 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
    Definition Classes
    Controller
  49. def send(request: I): Callback[O]

    Create a callback for sending a request.

    Create a callback for sending a request. this allows you to do something like service.sendCB("request"){response => "YAY"}.map{str => println(str)}.execute()

    Definition Classes
    ServiceClientClientLike
  50. def shared: SharedClient[I, O]

    Create a shared interface that is thread safe and returns Futures

    Create a shared interface that is thread safe and returns Futures

    Definition Classes
    ServiceClientServiceClientLike
  51. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  52. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  56. val worker: WorkerRef

Inherited from ManualUnbindHandler

Inherited from ServiceClientLike[I, O]

Inherited from LocalClient[I, O]

Inherited from ClientLike[I, O, Callback]

Inherited from ClientConnectionHandler

Inherited from Controller[O, I]

Inherited from ConnectionHandler

Inherited from WorkerItem

Inherited from AnyRef

Inherited from Any

Ungrouped