Class DatahoseLoopImpl
java.lang.Object
com.symphony.bdk.core.service.datafeed.impl.AbstractAckIdEventLoop
com.symphony.bdk.core.service.datafeed.impl.DatahoseLoopImpl
- All Implemented Interfaces:
DatafeedLoop
,DatahoseLoop
@API(status=INTERNAL)
public class DatahoseLoopImpl
extends AbstractAckIdEventLoop
implements DatahoseLoop
-
Field Summary
Modifier and TypeFieldDescriptionprotected final BotAuthSession
protected final com.symphony.bdk.core.config.model.BdkConfig
protected final UserV2
protected DatafeedApi
protected final CustomEnhancedAuthSession
protected final AtomicBoolean
Fields inherited from class com.symphony.bdk.core.service.datafeed.impl.AbstractAckIdEventLoop
ackId, INITIAL_ACK_ID
-
Constructor Summary
ConstructorDescriptionDatahoseLoopImpl
(DatafeedApi datafeedApi, BotAuthSession authSession, CustomEnhancedAuthSession enhancedAuthSession, com.symphony.bdk.core.config.model.BdkConfig config, UserV2 botInfo) DatahoseLoopImpl
(DatafeedApi datafeedApi, BotAuthSession authSession, com.symphony.bdk.core.config.model.BdkConfig config, UserV2 botInfo) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
handleV4EventList
(List<V4Event> events) Handle a received listener by using the subscribedRealTimeEventListener
.long
The timestamp of the last successful pullingprotected V5EventList
protected void
refresh()
protected void
runLoop()
void
start()
Start the datafeed events servicevoid
stop()
Stop the datafeed events service.void
subscribe
(RealTimeEventListener listener) The bot subscribes to aRealTimeEventListener
void
unsubscribe
(RealTimeEventListener listener) The bot unsubscribes to aRealTimeEventListener
Methods inherited from class com.symphony.bdk.core.service.datafeed.impl.AbstractAckIdEventLoop
readAndHandleEvents
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.symphony.bdk.core.service.datafeed.DatafeedLoop
lastPullTimestamp
Methods inherited from interface com.symphony.bdk.core.service.datafeed.DatahoseLoop
start, stop, subscribe, unsubscribe
-
Field Details
-
authSession
-
enhancedAuthSession
-
bdkConfig
protected final com.symphony.bdk.core.config.model.BdkConfig bdkConfig -
botInfo
-
started
-
datafeedApi
-
-
Constructor Details
-
DatahoseLoopImpl
public DatahoseLoopImpl(DatafeedApi datafeedApi, BotAuthSession authSession, CustomEnhancedAuthSession enhancedAuthSession, com.symphony.bdk.core.config.model.BdkConfig config, UserV2 botInfo) -
DatahoseLoopImpl
public DatahoseLoopImpl(DatafeedApi datafeedApi, BotAuthSession authSession, com.symphony.bdk.core.config.model.BdkConfig config, UserV2 botInfo)
-
-
Method Details
-
runLoop
- Throws:
Throwable
-
readEvents
- Specified by:
readEvents
in classAbstractAckIdEventLoop
- Throws:
com.symphony.bdk.http.api.ApiException
-
subscribe
The bot subscribes to aRealTimeEventListener
- Specified by:
subscribe
in interfaceDatafeedLoop
- Parameters:
listener
- a Datafeed event listener to be subscribed
-
unsubscribe
The bot unsubscribes to aRealTimeEventListener
- Specified by:
unsubscribe
in interfaceDatafeedLoop
- Parameters:
listener
- a Datafeed event listener to be unsubscribed
-
start
Start the datafeed events service- Specified by:
start
in interfaceDatafeedLoop
- Throws:
AuthUnauthorizedException
com.symphony.bdk.http.api.ApiException
-
stop
public void stop()Stop the datafeed events service. The datafeed service will be stopped after a small delay to finish the last read datafeed call.- Specified by:
stop
in interfaceDatafeedLoop
-
handleV4EventList
Handle a received listener by using the subscribedRealTimeEventListener
.- Parameters:
events
- List of Datafeed events to be handled- Throws:
RequeueEventException
- Raised if a listener fails and the developer wants to explicitly not update the ack id.
-
refresh
- Throws:
AuthUnauthorizedException
-
lastPullTimestamp
public long lastPullTimestamp()The timestamp of the last successful pulling- Specified by:
lastPullTimestamp
in interfaceDatafeedLoop
- Returns:
- timestamp value in long
-