Packages

  • package root
    Definition Classes
    root
  • package csw
    Definition Classes
    root
  • package command
    Definition Classes
    csw
  • package client

    This project defines the basic classes and traits for the Command Service.

    Command Service

    This project defines the basic classes and traits for the Command Service.

    Related projects are: - csw-messages:

    • This defines the types of command (Oneway/Submit etc.) and types of configurations (Setup/Observe/Wait etc.)
    • Complete usage of Messages is available at: https://tmtsoftware.github.io/csw/services/messages.html

    - framework:

    • This defines the Hcd and Assembly handlers, lifecycle manager and supervisor for components.
    • Framework allows component writer to override onValidation, onSubmit and onOneway handlers. (Note it allows overriding other handlers as well.)
    • On every command received by component, onValidation handler gets invoked where received command gets validated and validation response is returned.
    • Based on validation response and command type, onSubmit/onOneway hooks gets invoked where command gets processed.
    • Complete details of handling commands can be found here : https://tmtsoftware.github.io/csw/framework/handling-lifecycle.html#handling-commands

    Important classes in this project are:

    - csw.command.client.CommandResponseManager

    This class wraps CommandResponseManagerActor and provides helpers to interact with actor which is responsible for adding/updating/querying command result. Component writers will get handle to CommandResponseManager in their handlers.

    - CommandResponseManagerActor maintains four states:

    - csw.command.api.scaladsl.CommandService

    This class wraps the csw.location.models.AkkaLocation and provides helpers to send commands to component actor extracted from provided location. Normal component writers workflow would be to first resolve component using location service and then create CommandService instance using resolved location.

    Using this instance, you can Submit Command/Commands to other component or query for command result or subscribe for long running command result.

    When you have multiple commands targeted to multiple components then you can use ConfigDistributor. Using CommandDistributor utility you can send all these commands in one go and get aggregated response.

    Complete guide of usage of different API's provided by CommandService is available at: https://tmtsoftware.github.io/csw/command.html

    Definition Classes
    command
  • package cbor
    Definition Classes
    client
  • package extensions
    Definition Classes
    client
  • package internal
    Definition Classes
    client
  • package messages
    Definition Classes
    client
  • package models
    Definition Classes
    client
  • CRMCacheProperties
  • CommandResponseManager
  • CommandResponseManagerActor
  • CommandServiceFactory
  • HttpCommandService
  • ICommandServiceFactory
  • SequencerCommandServiceFactory
  • Store
c

csw.command.client

HttpCommandService

case class HttpCommandService(system: ActorSystem[Nothing], locationService: LocationService, connection: HttpConnection) extends Product with Serializable

Support for sending commands to an HTTP service (normally from a CSW component).

system

the typed actor system

locationService

used to locate the service

connection

describes the connection to the HTTP service

Linear Supertypes
Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. HttpCommandService
  2. Serializable
  3. Product
  4. Equals
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new HttpCommandService(system: ActorSystem[Nothing], locationService: LocationService, connection: HttpConnection)

    system

    the typed actor system

    locationService

    used to locate the service

    connection

    describes the connection to the HTTP service

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
  6. val connection: HttpConnection
  7. implicit val ec: ExecutionContext
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. val locationService: LocationService
  12. implicit val mat: Materializer
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  16. def oneway(controlCommand: ControlCommand): Future[OnewayResponse]

    Posts a oneway command to the given HTTP connection and returns a OnewayResponse.

    Posts a oneway command to the given HTTP connection and returns a OnewayResponse. It is assumed that the HTTP service accepts the command as JSON encoded. Note that the HTTP service must also be registered with the Location Service.

    controlCommand

    the command to send to the service

    returns

    a future OnewayResponse: Accepted or Invalid, if there was an error

  17. def productElementNames: Iterator[String]
    Definition Classes
    Product
  18. def queryFinal(commandRunId: Id)(implicit timeout: Timeout): Future[SubmitResponse]

    Query for the final result of a long running command which was sent as Submit to get a csw.params.commands.CommandResponse.SubmitResponse as a Future

    Query for the final result of a long running command which was sent as Submit to get a csw.params.commands.CommandResponse.SubmitResponse as a Future

    commandRunId

    the runId of the command for which response is required

    returns

    a CommandResponse as a Future value

  19. def submit(controlCommand: ControlCommand): Future[SubmitResponse]

    Posts a submit command to the given HTTP connection and returns the response as a SubmitResponse.

    Posts a submit command to the given HTTP connection and returns the response as a SubmitResponse. It is assumed that the HTTP service accepts the command as JSON encoded and responds with a JSON encoded CommandResponse. Note that the HTTP service must also be registered with the Location Service.

    controlCommand

    the command to send to the service

    returns

    the command response or an Error response, if something fails

  20. def submitAllAndWait(submitCommands: List[ControlCommand])(implicit timeout: Timeout): Future[List[SubmitResponse]]

    Submit multiple commands and get a List of csw.params.commands.CommandResponse.SubmitResponse for all commands.

    Submit multiple commands and get a List of csw.params.commands.CommandResponse.SubmitResponse for all commands. The CommandResponse can be a response of validation (Accepted, Invalid) or a final Response. In case of response as Accepted, final CommandResponse can be obtained by using subscribe API.

    submitCommands

    the set of csw.params.commands.ControlCommand payloads

    returns

    a Source of CommandResponse as a stream of CommandResponses for all commands

  21. def submitAndWait(controlCommand: ControlCommand)(implicit timeout: Timeout): Future[SubmitResponse]

    Submit a command and Subscribe for the result if it was successfully validated as Started to get a final csw.params.commands.CommandResponse.SubmitResponse as a Future

    Submit a command and Subscribe for the result if it was successfully validated as Started to get a final csw.params.commands.CommandResponse.SubmitResponse as a Future

    controlCommand

    the csw.params.commands.ControlCommand payload

    returns

    a CommandResponse as a Future value

  22. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  23. implicit val sys: ActorSystem
  24. val system: ActorSystem[Nothing]
  25. def validate(controlCommand: ControlCommand): Future[ValidateResponse]

    Posts a validate command to the given HTTP connection and returns a ValidateResponse.

    Posts a validate command to the given HTTP connection and returns a ValidateResponse. It is assumed that the HTTP service accepts the command as JSON encoded. Note that the HTTP service must also be registered with the Location Service.

    controlCommand

    the command to send to the service

    returns

    a future OnewayResponse: Accepted or Invalid, if there was an error

  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  28. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated @deprecated
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped