Class MessageBusAsyncSession

java.lang.Object
com.yahoo.documentapi.messagebus.MessageBusAsyncSession
All Implemented Interfaces:
AsyncSession, MessageBusSession, Session

public class MessageBusAsyncSession extends Object implements MessageBusSession, AsyncSession
An access session which wraps a messagebus source session sending document messages. The sessions are multithread safe.
Author:
bratseth, Einar Rosenvinge
  • Method Details

    • put

      public Result put(com.yahoo.document.Document document)
      Description copied from interface: AsyncSession

      Puts a document. This method returns immediately.

      If this result is a success, this call will cause one or more DocumentResponse objects to appear within the timeout time of this session. The response returned later will either be a success, or contain the document submitted here. If it was not a success, this method has no further effects.

      Specified by:
      put in interface AsyncSession
      Parameters:
      document - the Document to put
      Returns:
      the synchronous result of this operation
    • put

      public Result put(com.yahoo.document.DocumentPut documentPut, DocumentOperationParameters parameters)
      Description copied from interface: AsyncSession

      Puts a document, with optional conditions on the operation. This method returns immediately.

      If this result is a success, this call will cause one or more DocumentResponse objects to appear within the timeout time of this session. The response returned later will either be a success, or contain the document submitted here. If it was not a success, this method has no further effects.

      Specified by:
      put in interface AsyncSession
      Parameters:
      documentPut - the DocumentPut to perform
      parameters - parameters for the operation
      Returns:
      the synchronous result of this operation
    • get

      public Result get(com.yahoo.document.DocumentId id)
      Description copied from interface: AsyncSession

      Gets a document. This method returns immediately.

      If this result is a success, this call will cause one or more DocumentResponse objects to appear within the timeout time of this session. The response returned later will contain the requested document if it is a success. If it was not a success, this method has no further effects.

      Specified by:
      get in interface AsyncSession
      Parameters:
      id - the id of the document to get
      Returns:
      the synchronous result of this operation
    • get

      public Result get(com.yahoo.document.DocumentId id, DocumentOperationParameters parameters)
      Description copied from interface: AsyncSession

      Gets a document. This method returns immediately.

      If this result is a success, this call will cause one or more DocumentResponse objects to appear within the timeout time of this session. The response returned later will contain the requested document if it is a success. If it was not a success, this method has no further effects.

      Specified by:
      get in interface AsyncSession
      Parameters:
      id - the id of the document to get
      parameters - parameters for the operation
      Returns:
      the synchronous result of this operation
    • remove

      public Result remove(com.yahoo.document.DocumentId id)
      Description copied from interface: AsyncSession

      Removes a document if it is present. This method returns immediately.

      If this result is a success, this call will cause one or more RemoveResponse objects to appear within the timeout time of this session. The response returned later will either be a success, or contain the document id submitted here. If it was not a success, this method has no further effects.

      Specified by:
      remove in interface AsyncSession
      Parameters:
      id - the id of the document to remove
      Returns:
      the synchronous result of this operation
    • remove

      public Result remove(com.yahoo.document.DocumentRemove remove, DocumentOperationParameters parameters)
      Description copied from interface: AsyncSession

      Removes a document if it is present. This method returns immediately.

      If this result is a success, this call will cause one or more DocumentIdResponse objects to appear within the timeout time of this session. The response returned later will either be a success, or contain the document id submitted here. If it was not a success, this method has no further effects.

      Specified by:
      remove in interface AsyncSession
      Parameters:
      remove - the document remove operation
      parameters - parameters for the operation
      Returns:
      the synchronous result of this operation
    • update

      public Result update(com.yahoo.document.DocumentUpdate update)
      Description copied from interface: AsyncSession

      Updates a document. This method returns immediately.

      If this result is a success, this call will cause one or more DocumentUpdateResponse within the timeout time of this session. The returned response returned later will either be a success or contain the update submitted here. If it was not a success, this method has no further effects.

      Specified by:
      update in interface AsyncSession
      Parameters:
      update - the updates to perform
      Returns:
      the synchronous result of this operation
    • update

      public Result update(com.yahoo.document.DocumentUpdate update, DocumentOperationParameters parameters)
      Description copied from interface: AsyncSession

      Updates a document. This method returns immediately.

      If this result is a success, this call will cause one or more DocumentUpdateResponse within the timeout time of this session. The returned response returned later will either be a success or contain the update submitted here. If it was not a success, this method has no further effects.

      Specified by:
      update in interface AsyncSession
      Parameters:
      update - the updates to perform
      parameters - parameters for the operation
      Returns:
      the synchronous result of this operation
    • send

      public Result send(com.yahoo.messagebus.Message msg)
      A convenience method for assigning the internal trace level and route string to a message before sending it through the internal mbus session object.
      Parameters:
      msg - the message to send.
      Returns:
      the document api result object.
    • getNext

      public Response getNext()
      Description copied from interface: Session
      Returns the next response of this session. This method returns immediately.
      Specified by:
      getNext in interface Session
      Returns:
      the next response, or null if no response is ready at this time
    • getNext

      public Response getNext(int timeoutMilliseconds) throws InterruptedException
      Description copied from interface: Session
      Returns the next response of this session. This will block until a response is ready or until the given timeout is reached
      Specified by:
      getNext in interface Session
      Parameters:
      timeoutMilliseconds - the max time to wait for a response.
      Returns:
      the next response, or null if no response becomes ready before the timeout expires
      Throws:
      InterruptedException - if this thread is interrupted while waiting
    • destroy

      public void destroy()
      Description copied from interface: Session
      Destroys this session and frees up any resources it has held. Making further calls on a destroyed session causes a runtime exception.
      Specified by:
      destroy in interface Session
    • getRoute

      public String getRoute()
      Description copied from interface: MessageBusSession
      Returns the route to send all messages to when sending through this session.
      Specified by:
      getRoute in interface MessageBusSession
      Returns:
      The route string.
    • setRoute

      public void setRoute(String route)
      Description copied from interface: MessageBusSession
      Sets the route to send all messages to when sending through this session.
      Specified by:
      setRoute in interface MessageBusSession
      Parameters:
      route - The route string.
    • getTraceLevel

      public int getTraceLevel()
      Description copied from interface: MessageBusSession
      Returns the trace level used when sending messages through this session.
      Specified by:
      getTraceLevel in interface MessageBusSession
      Returns:
      The trace level.
    • setTraceLevel

      public void setTraceLevel(int traceLevel)
      Description copied from interface: MessageBusSession
      Sets the trace level used when sending messages through this session.
      Specified by:
      setTraceLevel in interface MessageBusSession
      Parameters:
      traceLevel - The trace level to set.
    • getCurrentWindowSize

      public double getCurrentWindowSize()
      Description copied from interface: AsyncSession
      Returns the current send window size of the session.
      Specified by:
      getCurrentWindowSize in interface AsyncSession
      Returns:
      Returns the window size.