| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package io.v.v23.rpc; |
| |
| import io.v.v23.naming.Endpoint; |
| import io.v.v23.security.Blessings; |
| import io.v.v23.security.Call; |
| |
| /** |
| * The in-flight call state on the server, not including methods to stream args and results. |
| */ |
| public interface ServerCall { |
| /** |
| * Returns the security-related state associated with the call. |
| */ |
| Call security(); |
| |
| /** |
| * Returns the object name suffix for the request. |
| */ |
| String suffix(); |
| |
| /** |
| * Returns the endpoint at the local end of communication. |
| */ |
| Endpoint localEndpoint(); |
| |
| /** |
| * Returns the endpoint at the remote end of communication. |
| */ |
| Endpoint remoteEndpoint(); |
| |
| /** |
| * Returns blessings bound to the server's private key (technically, the server principal's |
| * private key) provided by the client of the RPC. |
| * <p> |
| * This method can return {@code null}, which indicates that the client did not provide any |
| * blessings to the server with the request. |
| * <p> |
| * Note that these blessings are distinct from the blessings used by the client and |
| * server to authenticate with each other (RemoteBlessings and LocalBlessings respectively). |
| * |
| * @return blessings bound to the server's private key. |
| */ |
| Blessings grantedBlessings(); |
| |
| /** |
| * Returns the {@link Server} that this call is associated with. |
| */ |
| Server server(); |
| } |