Class EventPublisher
- java.lang.Object
-
- org.ovirt.vdsm.jsonrpc.client.events.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 ofFlow.Publisher
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
EventPublisher.EventCallable
Event processing task which is submit to aExecutorService
for processing.
-
Field Summary
Fields Modifier and Type Field Description private EventDecomposer
decomposer
private int
eventTimeoutInHours
private java.util.concurrent.ExecutorService
executorService
private static org.slf4j.Logger
log
private SubscriptionMatcher
matcher
private java.util.concurrent.ScheduledExecutorService
scheduledExecutorService
-
Constructor Summary
Constructors Constructor Description EventPublisher(java.util.concurrent.ExecutorService executorService, int eventTimeoutInHours)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
clean(SubscriptionHolder holder)
void
cleanupOldEvents()
void
close()
int
countEvents(JsonRpcEvent event)
private void
process(SubscriptionHolder holder)
void
process(JsonRpcEvent event)
This method is used by @linkResponseWorker
to submit an @linkJsonRpcEvent
for processing.void
publish(java.lang.String subscriptionId, java.util.Map<java.lang.String,java.lang.Object> params)
private void
scheduleCleanupTask()
void
subscribe(java.util.concurrent.Flow.Subscriber<? super java.util.Map<java.lang.String,java.lang.Object>> subscriber)
-
-
-
Field Detail
-
log
private static org.slf4j.Logger log
-
executorService
private java.util.concurrent.ExecutorService executorService
-
scheduledExecutorService
private java.util.concurrent.ScheduledExecutorService scheduledExecutorService
-
matcher
private SubscriptionMatcher matcher
-
decomposer
private EventDecomposer decomposer
-
eventTimeoutInHours
private 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 interfacejava.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
private void process(SubscriptionHolder holder)
-
clean
private void clean(SubscriptionHolder holder)
-
process
public void process(JsonRpcEvent event)
This method is used by @linkResponseWorker
to submit an @linkJsonRpcEvent
for processing.- Parameters:
event
- which is submitted for processing.
-
countEvents
public int countEvents(JsonRpcEvent event)
-
close
public void close()
-
-