@InterfaceAudience.Private public abstract class ServerCall<T extends ServerRpcConnection> extends Object implements RpcCall, RpcResponse
Modifier and Type | Field and Description |
---|---|
protected ByteBuffAllocator |
bbAllocator |
protected CellBlockBuilder |
cellBlockBuilder |
protected ByteBufferListOutputStream |
cellBlockStream |
protected CellScanner |
cellScanner |
protected T |
connection |
protected long |
deadline |
private long |
exceptionSize |
protected org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader |
header |
protected int |
id |
protected boolean |
isError |
protected org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor |
md |
protected org.apache.hbase.thirdparty.com.google.protobuf.Message |
param |
protected long |
receiveTime |
private AtomicInteger |
reference |
protected InetAddress |
remoteAddress |
protected RpcServer.CallCleanup |
reqCleanup |
protected BufferChain |
response
Chain of buffers to send as response.
|
private long |
responseBlockSize |
private long |
responseCellSize |
private boolean |
retryImmediatelySupported |
protected RpcCallback |
rpcCallback |
protected org.apache.hbase.thirdparty.com.google.protobuf.BlockingService |
service |
protected long |
size |
private io.opentelemetry.api.trace.Span |
span |
protected long |
startTime |
protected int |
timeout |
protected User |
user |
Constructor and Description |
---|
ServerCall(int id,
org.apache.hbase.thirdparty.com.google.protobuf.BlockingService service,
org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor md,
org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader header,
org.apache.hbase.thirdparty.com.google.protobuf.Message param,
CellScanner cellScanner,
T connection,
long size,
InetAddress remoteAddress,
long receiveTime,
int timeout,
ByteBuffAllocator byteBuffAllocator,
CellBlockBuilder cellBlockBuilder,
RpcServer.CallCleanup reqCleanup) |
Modifier and Type | Method and Description |
---|---|
void |
cleanup()
Do the necessary cleanup after the call if needed.
|
private static ByteBuffer |
createHeaderAndMessageBytes(org.apache.hbase.thirdparty.com.google.protobuf.Message result,
org.apache.hbase.thirdparty.com.google.protobuf.Message header,
int totalSize,
int totalPBSize) |
(package private) static ByteBuffer |
createHeaderAndMessageBytes(org.apache.hbase.thirdparty.com.google.protobuf.Message result,
org.apache.hbase.thirdparty.com.google.protobuf.Message header,
int cellBlockSize,
List<ByteBuffer> cellBlock) |
long |
disconnectSince()
Check if the caller who made this IPC call has disconnected.
|
void |
done()
Call is done.
|
RpcCallback |
getCallBack() |
CellScanner |
getCellScanner()
Returns The CellScanner that can carry input and result payload.
|
org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo |
getClientVersionInfo()
Returns the client version info, or null if the information is not present
|
long |
getDeadline()
Return the deadline of this call.
|
org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader |
getHeader()
Returns The request header of this call.
|
org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor |
getMethod()
Returns The service method.
|
org.apache.hbase.thirdparty.com.google.protobuf.Message |
getParam()
Returns The call parameter message.
|
int |
getPriority()
Returns The Priority of this call.
|
long |
getReceiveTime()
Returns The timestamp when the call is constructed.
|
InetAddress |
getRemoteAddress()
Returns Address of remote client in this call
|
int |
getRemotePort()
Returns Port of remote address in this call
|
Optional<User> |
getRequestUser()
Returns the user credentials associated with the current RPC request or not present if no
credentials were provided.
|
BufferChain |
getResponse() |
long |
getResponseBlockSize() |
long |
getResponseCellSize()
The size of response cells that have been accumulated so far.
|
long |
getResponseExceptionSize() |
org.apache.hbase.thirdparty.com.google.protobuf.BlockingService |
getService()
Returns The service of this call.
|
long |
getSize()
Used to calculate the request call queue size.
|
long |
getStartTime()
Returns The time when the call starts to be executed.
|
int |
getTimeout()
Returns The timeout of this call.
|
void |
incrementResponseBlockSize(long blockSize) |
void |
incrementResponseCellSize(long cellSize)
Add on the given amount to the retained cell size.
|
void |
incrementResponseExceptionSize(long exSize) |
boolean |
isClientCellBlockSupported()
If the client connected and specified a codec to use, then we will use this codec making
cellblocks to return.
|
boolean |
isRetryImmediatelySupported() |
void |
releaseByWAL() |
void |
retainByWAL() |
void |
setCallBack(RpcCallback callback)
Sets a callback which has to be executed at the end of this RPC call.
|
(package private) static void |
setExceptionResponse(Throwable t,
String errorMsg,
org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ResponseHeader.Builder headerBuilder) |
void |
setResponse(org.apache.hbase.thirdparty.com.google.protobuf.Message m,
CellScanner cells,
Throwable t,
String errorMsg)
Set the response resulting from this RPC call.
|
void |
setStartTime(long t)
Set the time when the call starts to be executed.
|
String |
toShortString()
Returns A short string format of this call without possibly lengthy params
|
String |
toString() |
protected BufferChain |
wrapWithSasl(BufferChain bc) |
private static void |
writeToCOS(org.apache.hbase.thirdparty.com.google.protobuf.Message result,
org.apache.hbase.thirdparty.com.google.protobuf.Message header,
int totalSize,
ByteBuffer pbBuf) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
sendResponseIfReady
getRequestUserName
protected final int id
protected final org.apache.hbase.thirdparty.com.google.protobuf.BlockingService service
protected final org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor md
protected final org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader header
protected org.apache.hbase.thirdparty.com.google.protobuf.Message param
protected final CellScanner cellScanner
protected final T extends ServerRpcConnection connection
protected final long receiveTime
protected final int timeout
protected long startTime
protected final long deadline
protected final ByteBuffAllocator bbAllocator
protected final CellBlockBuilder cellBlockBuilder
protected BufferChain response
protected final long size
protected boolean isError
protected ByteBufferListOutputStream cellBlockStream
protected RpcServer.CallCleanup reqCleanup
protected final InetAddress remoteAddress
protected RpcCallback rpcCallback
private long responseCellSize
private long responseBlockSize
private long exceptionSize
private final boolean retryImmediatelySupported
private final AtomicInteger reference
private final io.opentelemetry.api.trace.Span span
ServerCall(int id, org.apache.hbase.thirdparty.com.google.protobuf.BlockingService service, org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor md, org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader header, org.apache.hbase.thirdparty.com.google.protobuf.Message param, CellScanner cellScanner, T connection, long size, InetAddress remoteAddress, long receiveTime, int timeout, ByteBuffAllocator byteBuffAllocator, CellBlockBuilder cellBlockBuilder, RpcServer.CallCleanup reqCleanup)
public void done()
done
in interface RpcResponse
public void cleanup()
RpcCall
public void retainByWAL()
public void releaseByWAL()
public org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader getHeader()
RpcCall
public int getPriority()
RpcCall
getPriority
in interface RpcCall
public String toShortString()
RpcCall
toShortString
in interface RpcCall
public void setResponse(org.apache.hbase.thirdparty.com.google.protobuf.Message m, CellScanner cells, Throwable t, String errorMsg)
RpcCall
setResponse
in interface RpcCall
m
- The result message as response.cells
- The CellScanner that possibly carries the payload.t
- The error Throwable resulting from the call.errorMsg
- Extra error message.static void setExceptionResponse(Throwable t, String errorMsg, org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.ResponseHeader.Builder headerBuilder)
static ByteBuffer createHeaderAndMessageBytes(org.apache.hbase.thirdparty.com.google.protobuf.Message result, org.apache.hbase.thirdparty.com.google.protobuf.Message header, int cellBlockSize, List<ByteBuffer> cellBlock) throws IOException
IOException
private static void writeToCOS(org.apache.hbase.thirdparty.com.google.protobuf.Message result, org.apache.hbase.thirdparty.com.google.protobuf.Message header, int totalSize, ByteBuffer pbBuf) throws IOException
IOException
private static ByteBuffer createHeaderAndMessageBytes(org.apache.hbase.thirdparty.com.google.protobuf.Message result, org.apache.hbase.thirdparty.com.google.protobuf.Message header, int totalSize, int totalPBSize) throws IOException
IOException
protected BufferChain wrapWithSasl(BufferChain bc) throws IOException
IOException
public long disconnectSince()
RpcCallContext
disconnectSince
in interface RpcCallContext
public boolean isClientCellBlockSupported()
RpcCallContext
isClientCellBlockSupported
in interface RpcCallContext
public long getResponseCellSize()
RpcCallContext
getResponseCellSize
in interface RpcCallContext
public void incrementResponseCellSize(long cellSize)
RpcCallContext
incrementResponseCellSize
in interface RpcCallContext
public long getResponseBlockSize()
getResponseBlockSize
in interface RpcCallContext
public void incrementResponseBlockSize(long blockSize)
incrementResponseBlockSize
in interface RpcCallContext
public long getResponseExceptionSize()
getResponseExceptionSize
in interface RpcCallContext
public void incrementResponseExceptionSize(long exSize)
incrementResponseExceptionSize
in interface RpcCallContext
public long getSize()
RpcCall
public long getDeadline()
RpcCall
getDeadline
in interface RpcCall
public Optional<User> getRequestUser()
RpcCallContext
getRequestUser
in interface RpcCallContext
public InetAddress getRemoteAddress()
RpcCallContext
getRemoteAddress
in interface RpcCallContext
public org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.VersionInfo getClientVersionInfo()
RpcCallContext
getClientVersionInfo
in interface RpcCallContext
public void setCallBack(RpcCallback callback)
RpcCallContext
setCallBack
in interface RpcCallContext
public boolean isRetryImmediatelySupported()
isRetryImmediatelySupported
in interface RpcCallContext
public org.apache.hbase.thirdparty.com.google.protobuf.BlockingService getService()
RpcCall
getService
in interface RpcCall
public org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor getMethod()
RpcCall
public org.apache.hbase.thirdparty.com.google.protobuf.Message getParam()
RpcCall
public CellScanner getCellScanner()
RpcCall
getCellScanner
in interface RpcCall
public long getReceiveTime()
RpcCall
getReceiveTime
in interface RpcCall
public long getStartTime()
RpcCall
getStartTime
in interface RpcCall
public void setStartTime(long t)
RpcCall
setStartTime
in interface RpcCall
public int getTimeout()
RpcCall
getTimeout
in interface RpcCall
public int getRemotePort()
RpcCall
getRemotePort
in interface RpcCall
public BufferChain getResponse()
getResponse
in interface RpcResponse
public RpcCallback getCallBack()
Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.