Class EventPublisher

  • All Implemented Interfaces:
    java.util.concurrent.Flow.Publisher<java.util.Map<java.lang.String,​java.lang.Object>>

    public class EventPublisher
    extends java.lang.Object
    implements java.util.concurrent.Flow.Publisher<java.util.Map<java.lang.String,​java.lang.Object>>
    Jsonrpc implementation of Flow.Publisher
    • Field Detail

      • log

        private static final org.slf4j.Logger log
      • executorService

        private final java.util.concurrent.ExecutorService executorService
      • scheduledExecutorService

        private final java.util.concurrent.ScheduledExecutorService scheduledExecutorService
      • eventTimeoutInHours

        private final int eventTimeoutInHours
    • Constructor Detail

      • EventPublisher

        public EventPublisher​(java.util.concurrent.ExecutorService executorService,
                              int eventTimeoutInHours)
    • Method Detail

      • scheduleCleanupTask

        private void scheduleCleanupTask()
      • cleanupOldEvents

        public void cleanupOldEvents()
      • subscribe

        public void subscribe​(java.util.concurrent.Flow.Subscriber<? super java.util.Map<java.lang.String,​java.lang.Object>> subscriber)
        Specified by:
        subscribe in interface java.util.concurrent.Flow.Publisher<java.util.Map<java.lang.String,​java.lang.Object>>
      • publish

        public void publish​(java.lang.String subscriptionId,
                            java.util.Map<java.lang.String,​java.lang.Object> params)
                     throws java.io.IOException
        Throws:
        java.io.IOException
      • process

        public void process​(JsonRpcEvent event)
        This method is used by @link ResponseWorker to submit an @link JsonRpcEvent for processing.
        Parameters:
        event - which is submitted for processing.
      • countEvents

        public int countEvents​(JsonRpcEvent event)
      • close

        public void close()