Class Context
- java.lang.Object
-
- org.apache.tinkerpop.gremlin.server.Context
-
- Direct Known Subclasses:
SessionTask
public class Context extends Object
The context of Gremlin Server within which a particular request is made.- Author:
- Stephen Mallette (http://stephen.genoprime.com)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Context.RequestContentType
The type of the request as determined by the contents ofTokens.ARGS_GREMLIN
.
-
Constructor Summary
Constructors Constructor Description Context(RequestMessage requestMessage, io.netty.channel.ChannelHandlerContext ctx, Settings settings, GraphManager graphManager, GremlinExecutor gremlinExecutor, ScheduledExecutorService scheduledExecutorService)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
flush()
Flushes messages to the underlying transport.io.netty.channel.ChannelHandlerContext
getChannelHandlerContext()
Gets the Netty context.GraphManager
getGraphManager()
Gets the set ofGraph
objects configured in Gremlin Server.Object
getGremlinArgument()
GremlinExecutor
getGremlinExecutor()
Gets the executor chosen to evaluate incoming Gremlin scripts based on the request.Context.RequestContentType
getRequestContentType()
RequestMessage
getRequestMessage()
Gets the current request to Gremlin Server.long
getRequestTimeout()
The timeout for the request.ScheduledExecutorService
getScheduledExecutorService()
Settings
getSettings()
Gets the current configuration of Gremlin Server.boolean
getStartedResponse()
Gets whether the server has started processing the response for this request.ScheduledFuture<?>
getTimeoutExecutor()
String
getUserAgent()
Returns the user agent (if any) which was sent from the client during the web socket handshake.boolean
isFinalResponseWritten()
void
sendTimeoutResponse()
Writes a default timeout error response message to the underlying channel.void
sendTimeoutResponse(String message)
Writes a specific timeout error response message to the underlying channel.void
setStartedResponse()
Signal that the server has started processing the response.void
setTimeoutExecutor(ScheduledFuture<?> timeoutExecutor)
void
write(ResponseMessage message)
void
write(ResponseStatusCode code, Object responseMessage)
void
writeAndFlush(ResponseMessage message)
Writes a response message to the underlying channel while ensuring that at most onefinal
response is written.void
writeAndFlush(ResponseStatusCode code, Object responseMessage)
Writes a response message to the underlying channel while ensuring that at most onefinal
response is written.
-
-
-
Constructor Detail
-
Context
public Context(RequestMessage requestMessage, io.netty.channel.ChannelHandlerContext ctx, Settings settings, GraphManager graphManager, GremlinExecutor gremlinExecutor, ScheduledExecutorService scheduledExecutorService)
-
-
Method Detail
-
setTimeoutExecutor
public void setTimeoutExecutor(ScheduledFuture<?> timeoutExecutor)
-
getTimeoutExecutor
public ScheduledFuture<?> getTimeoutExecutor()
-
getRequestTimeout
public long getRequestTimeout()
The timeout for the request. If the request is a script it examines the script for a timeout setting usingwith()
. If that is not found then it examines the request itself to see if the timeout is provided byTokens.ARGS_EVAL_TIMEOUT
. If that is not provided then theSettings.evaluationTimeout
is utilized as the default.
-
isFinalResponseWritten
public boolean isFinalResponseWritten()
-
getRequestContentType
public Context.RequestContentType getRequestContentType()
-
getGremlinArgument
public Object getGremlinArgument()
-
getScheduledExecutorService
public ScheduledExecutorService getScheduledExecutorService()
-
getRequestMessage
public RequestMessage getRequestMessage()
Gets the current request to Gremlin Server.
-
getChannelHandlerContext
public io.netty.channel.ChannelHandlerContext getChannelHandlerContext()
Gets the Netty context.
-
getSettings
public Settings getSettings()
Gets the current configuration of Gremlin Server.
-
getGraphManager
public GraphManager getGraphManager()
Gets the set ofGraph
objects configured in Gremlin Server.
-
getGremlinExecutor
public GremlinExecutor getGremlinExecutor()
Gets the executor chosen to evaluate incoming Gremlin scripts based on the request.
-
getUserAgent
public String getUserAgent()
Returns the user agent (if any) which was sent from the client during the web socket handshake. Returns empty string if no user agent exists
-
getStartedResponse
public boolean getStartedResponse()
Gets whether the server has started processing the response for this request.
-
setStartedResponse
public void setStartedResponse()
Signal that the server has started processing the response.
-
sendTimeoutResponse
public void sendTimeoutResponse()
Writes a default timeout error response message to the underlying channel.
-
sendTimeoutResponse
public void sendTimeoutResponse(String message)
Writes a specific timeout error response message to the underlying channel.
-
writeAndFlush
public void writeAndFlush(ResponseMessage message)
Writes a response message to the underlying channel while ensuring that at most onefinal
response is written.Note: this method should be used instead of writing to the channel directly when multiple threads are expected to produce response messages concurrently.
Attempts to write more than one final response message will be ignored.
-
writeAndFlush
public void writeAndFlush(ResponseStatusCode code, Object responseMessage)
Writes a response message to the underlying channel while ensuring that at most onefinal
response is written.The caller must make sure that the provided response status code matches the content of the message.
Note: this method should be used instead of writing to the channel directly when multiple threads are expected to produce response messages concurrently.
Attempts to write more than one final response message will be ignored.
- See Also:
writeAndFlush(ResponseMessage)
-
write
public void write(ResponseMessage message)
-
write
public void write(ResponseStatusCode code, Object responseMessage)
-
flush
public void flush()
Flushes messages to the underlying transport.
-
-