Package com.yahoo.documentapi.messagebus
Class MessageBusVisitorSession
java.lang.Object
com.yahoo.documentapi.messagebus.MessageBusVisitorSession
- All Implemented Interfaces:
VisitorControlSession,VisitorSession
A visitor session for tracking progress for and potentially receiving data from a visitor using a MessageBus source and destination session. The source session is used to initiate visiting by sending create visitor messages to storage and the destination session is used for receiving progress. If the visitor is not set up to send data to a remote destination, data will also be received through the destination session.
Create the visitor session by calling the
DocumentAccess.createVisitorSession method.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic interfacestatic classstatic classstatic classMessage bus implementations of interfacesstatic classstatic classstatic interfaceAbstract away notion of destination session into a generic Receiver interface to allow easy mocking.static interfacestatic interfaceAbstract away notion of source session into a generic Sender interface to allow easy mocking.static interfacestatic enumstatic classstatic classstatic class -
Constructor Summary
ConstructorsConstructorDescriptionMessageBusVisitorSession(VisitorParameters visitorParameters, MessageBusVisitorSession.AsyncTaskExecutor taskExecutor, MessageBusVisitorSession.SenderFactory senderFactory, MessageBusVisitorSession.ReceiverFactory receiverFactory, com.yahoo.messagebus.routing.RoutingTable routingTable) MessageBusVisitorSession(VisitorParameters visitorParameters, MessageBusVisitorSession.AsyncTaskExecutor taskExecutor, MessageBusVisitorSession.SenderFactory senderFactory, MessageBusVisitorSession.ReceiverFactory receiverFactory, com.yahoo.messagebus.routing.RoutingTable routingTable, MessageBusVisitorSession.Clock clock) -
Method Summary
Modifier and TypeMethodDescriptionvoidabort()Aborts the session.voidAcknowledges a response previously retrieved by thegetNextmethod.static MessageBusVisitorSessioncreateForMessageBus(com.yahoo.messagebus.MessageBus mbus, ScheduledExecutorService scheduledExecutorService, VisitorParameters params) voiddestroy()Destroys this session and frees up any resources it has held.getNext()Returns the next response of this session.getNext(int timeoutMilliseconds) Returns the next response of this session.Retrieves the last progress token gotten for this visitor.com.yahoo.messagebus.TracegetTrace()Returns the tracing information so far about the visitor.booleanFor unit test purposes only, not to be used by any external parties.booleanisDone()Checks if visiting is done.voidstart()booleanwaitUntilDone(long timeoutMs) Waits until visiting is done, or the given timeout (in ms) expires.
-
Constructor Details
-
MessageBusVisitorSession
public MessageBusVisitorSession(VisitorParameters visitorParameters, MessageBusVisitorSession.AsyncTaskExecutor taskExecutor, MessageBusVisitorSession.SenderFactory senderFactory, MessageBusVisitorSession.ReceiverFactory receiverFactory, com.yahoo.messagebus.routing.RoutingTable routingTable) throws com.yahoo.document.select.parser.ParseException - Throws:
com.yahoo.document.select.parser.ParseException
-
MessageBusVisitorSession
public MessageBusVisitorSession(VisitorParameters visitorParameters, MessageBusVisitorSession.AsyncTaskExecutor taskExecutor, MessageBusVisitorSession.SenderFactory senderFactory, MessageBusVisitorSession.ReceiverFactory receiverFactory, com.yahoo.messagebus.routing.RoutingTable routingTable, MessageBusVisitorSession.Clock clock) throws com.yahoo.document.select.parser.ParseException - Throws:
com.yahoo.document.select.parser.ParseException
-
-
Method Details
-
createForMessageBus
public static MessageBusVisitorSession createForMessageBus(com.yahoo.messagebus.MessageBus mbus, ScheduledExecutorService scheduledExecutorService, VisitorParameters params) throws com.yahoo.document.select.parser.ParseException - Throws:
com.yahoo.document.select.parser.ParseException
-
start
public void start() -
getSessionName
-
isDone
public boolean isDone()Description copied from interface:VisitorSessionChecks if visiting is done.- Specified by:
isDonein interfaceVisitorSession- Returns:
- True if visiting is done (either by error or success).
-
getProgress
Description copied from interface:VisitorSessionRetrieves the last progress token gotten for this visitor.- Specified by:
getProgressin interfaceVisitorSession- Returns:
- The progress token.
-
getTrace
public com.yahoo.messagebus.Trace getTrace()Description copied from interface:VisitorSessionReturns the tracing information so far about the visitor.- Specified by:
getTracein interfaceVisitorSession- Returns:
- Returns the trace.
-
waitUntilDone
Description copied from interface:VisitorSessionWaits until visiting is done, or the given timeout (in ms) expires. Will wait forever if timeout is 0.- Specified by:
waitUntilDonein interfaceVisitorSession- Parameters:
timeoutMs- The maximum amount of milliseconds to wait.- Returns:
- True if visiting is done (either by error or success).
- Throws:
InterruptedException- If an interrupt signal was received while waiting.
-
ack
Description copied from interface:VisitorControlSessionAcknowledges a response previously retrieved by thegetNextmethod.- Specified by:
ackin interfaceVisitorControlSession- Parameters:
token- The ack token. You must get this from the visitor response returned by thegetNextmethod.
-
abort
public void abort()Description copied from interface:VisitorControlSessionAborts the session.- Specified by:
abortin interfaceVisitorControlSession
-
getNext
Description copied from interface:VisitorControlSessionReturns the next response of this session. This method returns immediately.- Specified by:
getNextin interfaceVisitorControlSession- Returns:
- the next response, or null if no response is ready at this time
-
getNext
Description copied from interface:VisitorControlSessionReturns the next response of this session. This will block until a response is ready or until the given timeout is reached- Specified by:
getNextin interfaceVisitorControlSession- Parameters:
timeoutMilliseconds- the max time to wait for a response. If the number is 0, this will block without any timeout limit- Returns:
- the next response, or null if no response becomes ready before the timeout expires
- Throws:
InterruptedException- if this thread is interrupted while waiting
-
isDestroying
public boolean isDestroying()For unit test purposes only, not to be used by any external parties.- Returns:
- true if destroy() has been--or is being--invoked.
-
destroy
public void destroy()Description copied from interface:VisitorControlSessionDestroys this session and frees up any resources it has held.- Specified by:
destroyin interfaceVisitorControlSession
-