Headers must be sent before any messages, which must be sent before closing.
No generic method for determining message receipt or providing acknowledgement is provided. Applications are expected to utilize normal messages for such signals, as a response naturally acknowledges its request.
Methods are guaranteed to be non-blocking. Implementations are not required to be thread-safe.
DO NOT MOCK: Use InProcessTransport and make a fake server instead.
| Modifier and Type | Class and Description |
|---|---|
| public abstract static class |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public abstract void | |
| public Attributes | |
| public String | Returns: the authority string.null if not available.Gets the authority this call is addressed to. |
| public abstract MethodDescriptor | |
| public SecurityLevel | Returns: non-null SecurityLevel enumReturns the level of security guarantee in communications Determining the level of security offered by the transport for RPCs on server-side. |
| public abstract boolean | isCancelled()
Returns |
| public boolean | isReady()
If |
| public abstract void | request(int
the requested number of messages to be delivered to the listener. numMessages)Requests up to the given number of messages from the call to be delivered to
|
| public abstract void | sendHeaders(Metadata
metadata to send prior to any response body. headers)Send response header metadata prior to sending a response message. |
| public abstract void | |
| public void | setCompression(String
the name of the compressor to use. compressor)Sets the compression algorithm for this call. |
| public void | setMessageCompression(boolean enabled)
Enables per-message compression, if an encoding type has been negotiated. |
| ServerCall | back to summary |
|---|---|
| public ServerCall() | |
| close | back to summary |
|---|---|
| public abstract void close(Status status, Metadata trailers) Close the call with the provided status. No further sending or receiving will occur. If If no errors or cancellations are known to have occurred, then a Since This method implies the caller completed processing the RPC, but it does not imply the RPC
is complete. The call implementation will need additional time to complete the RPC and during
this time the client is still able to cancel the request or a network error might cause the
RPC to fail. If you wish to know when the call is actually completed/closed, you have to use
| |
| getAttributes | back to summary |
|---|---|
| public Attributes getAttributes() Returns properties of a single call. Attributes originate from the transport and can be altered by
| |
| getAuthority | back to summary |
|---|---|
| public String getAuthority() Gets the authority this call is addressed to. | |
| getMethodDescriptor | back to summary |
|---|---|
| public abstract MethodDescriptor The | |
| getSecurityLevel | back to summary |
|---|---|
| public SecurityLevel getSecurityLevel() Returns the level of security guarantee in communications Determining the level of security offered by the transport for RPCs on server-side. This can be approximated by looking for the SSLSession, but that doesn't work for ALTS and maybe some future TLS approaches. May return a lower security level when it cannot be determined precisely.
| |
| isCancelled | back to summary |
|---|---|
| public abstract boolean isCancelled() Returns This method may safely be called concurrently from multiple threads. | |
| isReady | back to summary |
|---|---|
| public boolean isReady() If If This abstract class's implementation always returns | |
| request | back to summary |
|---|---|
| public abstract void request(int numMessages) Requests up to the given number of messages from the call to be delivered to
Servers use this mechanism to provide back-pressure to the client for flow-control. This method is safe to call from multiple threads without external synchronization.
| |
| sendHeaders | back to summary |
|---|---|
| public abstract void sendHeaders(Metadata headers) Send response header metadata prior to sending a response message. This method may
only be called once and cannot be called after calls to Since
| |
| sendMessage | back to summary |
|---|---|
| public abstract void sendMessage(RespT message) Send a response message. Messages are the primary form of communication associated with RPCs. Multiple response messages may exist for streaming calls.
| |
| setCompression | back to summary |
|---|---|
| public void setCompression(String compressor) Sets the compression algorithm for this call. This compression is utilized for sending. If
the server does not support the compression algorithm, the call will fail. This method may
only be called before It is safe to call this even if the client does not support the compression format chosen. The implementation will handle negotiation with the client and may fall back to no compression.
| |
| setMessageCompression | back to summary |
|---|---|
| public void setMessageCompression(boolean enabled) Enables per-message compression, if an encoding type has been negotiated. If no message encoding has been negotiated, this is a no-op. By default per-message compression is enabled, but may not have any effect if compression is not enabled on the call. | |
Any contexts are guaranteed to arrive before any messages, which are guaranteed before half close, which is guaranteed before completion.
Implementations are free to block for extended periods of time. Implementations are not required to be thread-safe, but they must not be thread-hostile. The caller is free to call an instance from multiple threads, but only one call simultaneously. A single thread may interleave calls to multiple instances, so implementations using ThreadLocals must be careful to avoid leaking inappropriate state (e.g., clearing the ThreadLocal before returning).
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public void | onCancel()
The call was cancelled and the server is encouraged to abort processing to save resources, since the client will not process any further messages. |
| public void | |
| public void | |
| public void | |
| public void | onReady()
This indicates that the call may now be capable of sending additional messages (via
|
| Listener | back to summary |
|---|---|
| public Listener() | |
| onCancel | back to summary |
|---|---|
| public void onCancel() The call was cancelled and the server is encouraged to abort processing to save resources, since the client will not process any further messages. Cancellations can be caused by timeouts, explicit cancellation by the client, network errors, etc. There will be no further callbacks for the call. | |
| onComplete | back to summary |
|---|---|
| public void onComplete() The call is considered complete and There will be no further callbacks for the call. | |
| onHalfClose | back to summary |
|---|---|
| public void onHalfClose() The client completed all message sending. However, the call may still be cancelled. | |
| onMessage | back to summary |
|---|---|
| public void onMessage(ReqT message) A request message has been received. For streaming calls, there may be zero or more request messages.
| |
| onReady | back to summary |
|---|---|
| public void onReady() This indicates that the call may now be capable of sending additional messages (via
Because there is a processing delay to deliver this notification, it is possible for
concurrent writes to cause | |