@API(status=INTERNAL)
public abstract class AbstractAckIdEventLoop
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected java.lang.String |
ackId |
protected AuthSession |
authSession |
protected com.symphony.bdk.core.config.model.BdkConfig |
bdkConfig |
protected UserV2 |
botInfo |
protected DatafeedApi |
datafeedApi |
protected static java.lang.String |
INITIAL_ACK_ID
Initial ack ID value when starting the loop
|
protected java.util.concurrent.atomic.AtomicBoolean |
started |
Constructor and Description |
---|
AbstractAckIdEventLoop(DatafeedApi datafeedApi,
AuthSession authSession,
com.symphony.bdk.core.config.model.BdkConfig config,
UserV2 botInfo) |
Modifier and Type | Method and Description |
---|---|
protected void |
handleV4EventList(java.util.List<V4Event> events)
Handle a received listener by using the subscribed
RealTimeEventListener . |
long |
lastPullTimestamp()
The timestamp of the last successful pulling
|
protected java.lang.Void |
readAndHandleEvents() |
protected abstract V5EventList |
readEvents() |
protected void |
refresh() |
protected abstract void |
runLoop() |
void |
start()
Start the datafeed events service
|
void |
stop()
Stop the datafeed events service.
|
void |
subscribe(RealTimeEventListener listener)
The bot subscribes to a
RealTimeEventListener |
void |
unsubscribe(RealTimeEventListener listener)
The bot unsubscribes to a
RealTimeEventListener |
protected static final java.lang.String INITIAL_ACK_ID
protected java.lang.String ackId
protected final AuthSession authSession
protected final com.symphony.bdk.core.config.model.BdkConfig bdkConfig
protected final UserV2 botInfo
protected final java.util.concurrent.atomic.AtomicBoolean started
protected DatafeedApi datafeedApi
public AbstractAckIdEventLoop(DatafeedApi datafeedApi, AuthSession authSession, com.symphony.bdk.core.config.model.BdkConfig config, UserV2 botInfo)
protected java.lang.Void readAndHandleEvents() throws com.symphony.bdk.http.api.ApiException
com.symphony.bdk.http.api.ApiException
protected abstract V5EventList readEvents() throws com.symphony.bdk.http.api.ApiException
com.symphony.bdk.http.api.ApiException
public void subscribe(RealTimeEventListener listener)
RealTimeEventListener
subscribe
in interface DatafeedLoop
listener
- a Datafeed event listener to be subscribedpublic void unsubscribe(RealTimeEventListener listener)
RealTimeEventListener
unsubscribe
in interface DatafeedLoop
listener
- a Datafeed event listener to be unsubscribedpublic void start() throws AuthUnauthorizedException, com.symphony.bdk.http.api.ApiException
start
in interface DatafeedLoop
AuthUnauthorizedException
com.symphony.bdk.http.api.ApiException
protected abstract void runLoop() throws java.lang.Throwable
java.lang.Throwable
public void stop()
stop
in interface DatafeedLoop
protected void handleV4EventList(@Nullable java.util.List<V4Event> events) throws RequeueEventException
RealTimeEventListener
.events
- List of Datafeed events to be handledRequeueEventException
- Raised if a listener fails and the developer wants to explicitly not update the ack id.protected void refresh() throws AuthUnauthorizedException
AuthUnauthorizedException
public long lastPullTimestamp()
lastPullTimestamp
in interface DatafeedLoop