Packages

  • package root
    Definition Classes
    root
  • package csw
    Definition Classes
    root
  • package event
    Definition Classes
    csw
  • package client

    This module implements an Event Service responsible for publishing an csw.params.events.Event or subscribing to an csw.params.events.Event.

    Event Service

    This module implements an Event Service responsible for publishing an csw.params.events.Event or subscribing to an csw.params.events.Event. An event is published on a csw.params.events.EventKey. The event key is composed of a csw.prefix.models.Prefix depicting the source and an csw.params.events.EventName. The subscriber can subscribe to the csw.params.events.EventKey to receive all events published on the Key.

    Example: Event Service
    val eventServiceFactory          = new EventServiceFactory()
    val eventService: EventService   = eventServiceFactory.make(locationService)

    Using above code, you can create instance of csw.event.api.scaladsl.EventService. EventService is the factory to create publishers and subscribers.

    You can choose to use defaultPublisher in case you want to share same connection for publishing different events.

    Example: Event Publisher

    Event Publisher provides asynchronous APIs to publish one or more Events

    val event = SystemEvent(prefix, EventName("filter_wheel"))
    
    val publisher    = eventService.defaultPublisher
    publisher.publish(event)
    Example: Event Subscriber (subscribe and get API)

    Event Subscriber provides asynchronous APIs to subscribe to one or more Event Keys. It also provides APIs to subscribe using a pattern. In addition, there are APIs to get latest events for one ore more Event Keys without making a subscription

    The EventSubscriber provides various API's to subscribe to csw.params.events.EventKey. One of such a subscribe method takes an ActorRef of an arbitrary actor or a callback function to be called when an event matching the given csw.params.events.EventKey is received. In the example below, we only provide the callback argument value. You could also provide an ActorRef of some actor that should receive the Event message.

     def callback(ev: Event): Unit = {
       // ...
     }
    
     async {
       val subscriber    = eventService.defaultSubscriber
       subscriber.subscribeCallback(Set(EventKey(prefix, EventName("filter_wheel"))), callback)
    
       val event = await(subscriber.get(event.eventKey))
    
       event match {
         case e: ObserveEvent => assert(e.prefix == expectedPrefix)
         case _               => fail("Expected ObserveEvent")
       }
    }

    csw provides two implementations for Event Service which can be accessed through csw-event-client : 1. RedisEventService - Redis as event store and publisher/subscriber functionality 2. KafkaEventService - Kafka as event store and publisher/subscriber functionality

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

    Definition Classes
    event
  • package internal
    Definition Classes
    client
  • package commons
    Definition Classes
    internal
  • package javawrappers
    Definition Classes
    commons
  • JEventService
  • JEventSubscriber

class JEventService extends IEventService

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. JEventService
  2. IEventService
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new JEventService(eventService: EventService)

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 asScala: EventService

    Returns the Scala API for this instance of event service

    Returns the Scala API for this instance of event service

    Definition Classes
    JEventServiceIEventService
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  7. lazy val defaultPublisher: IEventPublisher

    A default instance of csw.event.api.javadsl.IEventPublisher.

    A default instance of csw.event.api.javadsl.IEventPublisher. This could be shared across under normal operating conditions to share the underlying connection to event server.

    Definition Classes
    IEventService
  8. lazy val defaultSubscriber: IEventSubscriber

    A default instance of csw.event.api.javadsl.IEventSubscriber.

    A default instance of csw.event.api.javadsl.IEventSubscriber. This could be shared across under normal operating conditions to share the underlying connection to event server.

    Definition Classes
    IEventService
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  11. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. def makeNewPublisher(): JEventPublisher

    Create a new instance of csw.event.api.javadsl.IEventPublisher with a separate underlying connection than the default instance.

    Create a new instance of csw.event.api.javadsl.IEventPublisher with a separate underlying connection than the default instance. The new instance will be required when the location of Event Service is updated or in case the performance requirements of a publish operation demands a separate connection to be used.

    returns

    new instance of csw.event.api.javadsl.IEventPublisher

    Definition Classes
    JEventServiceIEventService
  15. def makeNewSubscriber(): JEventSubscriber

    Create a new instance of csw.event.api.javadsl.IEventPublisher with a separate underlying connection than the default instance.

    Create a new instance of csw.event.api.javadsl.IEventPublisher with a separate underlying connection than the default instance. The new instance will be required when the location of Event Service is updated or in case the performance requirements of a subscribe operation demands a separate connection to be used.

    returns

    new instance of csw.event.api.javadsl.IEventSubscriber

    Definition Classes
    JEventServiceIEventService
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  19. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  20. def toString(): String
    Definition Classes
    AnyRef → Any
  21. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  22. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  23. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

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

Inherited from IEventService

Inherited from AnyRef

Inherited from Any

Ungrouped