org.apache.tinkerpop.gremlin.server.handler

## Interface Session

- All Superinterfaces:
    Runnable
  All Known Implementing Classes:
    AbstractSession, MultiTaskSession, SingleTaskSession

      public interface Session
      extends Runnable

  Requests that arrive through the `UnifiedHandler` are all processed within a `Session` implementation. A session accepts a `SessionTask` as the work it is meant to perform and those tasks are constructed from incoming requests. A session may be as short-lived as processing a single task before exiting, as with the `SingleTaskSession` or may be longer-lived by handling multiple tasks, as with the `MultiTaskSession`.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static Timer` | `evalOpTimer`
    `static Timer` | `traversalOpTimer`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getSessionId()` Gets the identifier for the session.
    `boolean` | `isAcceptingTasks()` Determines if this session can accept additional tasks or not.
    `boolean` | `isBoundTo(Channel channel)` Determines if the supplied `Channel` object is the same as the one bound to the `Session`.
    `void` | `setSessionCancelFuture(ScheduledFuture<?> f)` Sets a reference to the job that will cancel this session if it exceeds its timeout period.
    `void` | `setSessionFuture(Future<?> f)` Sets a reference to the job itself that is running this session.
    `boolean` | `submitTask(SessionTask sessionTask)` Adds a task for session to complete.
    `void` | `triggerTimeout(long timeout, boolean causedBySession)` Provides a general way to interrupt the session by way of a timeout.

    - ### Methods inherited from interface java.lang.Runnable

      `run`

- - ### Field Detail

    - #### traversalOpTimer

          static final Timer traversalOpTimer

    - #### evalOpTimer

          static final Timer evalOpTimer

  - ### Method Detail

    - #### getSessionId

          String getSessionId()

      Gets the identifier for the session.

    - #### submitTask

          boolean submitTask(SessionTask sessionTask)
                      throws RejectedExecutionException

      Adds a task for session to complete.
      Throws:
        `RejectedExecutionException` - if the task cannot be queued

    - #### setSessionCancelFuture

          void setSessionCancelFuture(ScheduledFuture<?> f)

      Sets a reference to the job that will cancel this session if it exceeds its timeout period.

    - #### setSessionFuture

          void setSessionFuture(Future<?> f)

      Sets a reference to the job itself that is running this session.

    - #### triggerTimeout

          void triggerTimeout(long timeout,
                              boolean causedBySession)

      Provides a general way to interrupt the session by way of a timeout.
      Parameters:
        `timeout` - the length of time that passed for the timeout to have triggered
        `causedBySession` - determines if the timeout triggered due to a particular request (i.e. `false` or because of the session lifetime (i.e. `true`

    - #### isBoundTo

          boolean isBoundTo(Channel channel)

      Determines if the supplied `Channel` object is the same as the one bound to the `Session`.

    - #### isAcceptingTasks

          boolean isAcceptingTasks()

      Determines if this session can accept additional tasks or not.

Copyright © 2013–2021 Apache Software Foundation. All rights reserved.