20 static constexpr size_t InvalidSessionId = std::numeric_limits<size_t>::max();
43 size_t client_session_id_,
44 const std::vector<uint8_t>& caller_cert_,
45 const std::optional<ListenInterfaceID>& interface_id_ = std::nullopt) :
54 using PathParams = std::map<std::string, std::string, std::less<>>;
83 virtual std::shared_ptr<ccf::http::HTTPResponder>
get_responder()
const = 0;
103 const std::string_view& name)
const = 0;
132 const std::string_view& name,
const std::string_view& value) = 0;
144 const std::string_view& name,
const std::string_view& value) = 0;
155 const nlohmann::json& body,
http_status status) = 0;
160 const std::string& code,
162 const std::vector<nlohmann::json>& details = {}) = 0;
Definition rest_verb.h:45
Describes the currently executing RPC.
Definition rpc_context.h:58
virtual ~RpcContext()=default
Definition sha256_hash.h:16
virtual void * get_user_data() const =0
virtual std::string get_request_path() const =0
virtual const PathParams & get_decoded_request_path_params()=0
virtual const http::HeaderMap & get_request_headers() const =0
Returns map of all headers found in the request.
virtual const std::string & get_request_url() const =0
virtual ccf::FrameFormat frame_format() const =0
virtual const ccf::RESTVerb & get_request_verb() const =0
virtual const PathParams & get_request_path_params()=0
virtual std::shared_ptr< SessionContext > get_session_context() const =0
virtual std::optional< std::string > get_request_header(const std::string_view &name) const =0
virtual void set_user_data(std::shared_ptr< void > data)=0
virtual std::string get_method() const =0
virtual std::shared_ptr< ccf::http::HTTPResponder > get_responder() const =0
virtual const std::vector< uint8_t > & get_request_body() const =0
virtual const std::string & get_request_query() const =0
virtual int get_response_status() const =0
virtual void set_error(http_status status, const std::string &code, std::string &&msg, const std::vector< nlohmann::json > &details={})=0
Construct error response, formatted as JSON OData.
virtual void set_response_trailer(const std::string_view &name, const std::string_view &value)=0
virtual void clear_response_headers()=0
virtual void set_response_body(std::vector< uint8_t > &&body)=0
Sets the main body or payload of the response.
virtual void set_response_status(int status)=0
Sets initial status code summarising result of RPC.
virtual void set_response_trailer(const std::string_view &name, size_t n)
Definition rpc_context.h:145
virtual void set_response_trailer(const http::HeaderKeyValue &kv)
Definition rpc_context.h:149
virtual void set_response_header(const std::string_view &name, const std::string_view &value)=0
virtual const std::vector< uint8_t > & get_response_body() const =0
virtual void set_response_body(const std::vector< uint8_t > &body)=0
Sets the main body or payload of the response.
virtual void set_response_body(std::string &&body)=0
Sets the main body or payload of the response.
virtual void set_response_json(const nlohmann::json &body, http_status status)=0
virtual void set_error(ccf::ErrorDetails &&error)=0
Construct error response, formatted as JSON OData.
virtual void set_response_header(const std::string_view &name, size_t n)
Definition rpc_context.h:133
virtual void set_response_header(const http::HeaderKeyValue &kv)
Definition rpc_context.h:137
virtual void set_apply_writes(bool apply)=0
virtual void set_claims_digest(ccf::ClaimsDigest::Digest &&digest)=0
std::map< std::string, std::string, std::less<> > HeaderMap
Definition http_header_map.h:10
HeaderMap::value_type HeaderKeyValue
Definition http_header_map.h:11
Definition app_interface.h:14
@ error
Definition tls_session.h:24
std::map< std::string, std::string, std::less<> > PathParams
Definition rpc_context.h:54
std::string ListenInterfaceID
Definition rpc_context.h:21
llhttp_status http_status
Definition http_status.h:9
FrameFormat
Definition frame_format.h:8
Definition odata_error.h:58
Definition rpc_context.h:24
std::optional< ccf::View > active_view
Definition rpc_context.h:40
size_t client_session_id
Definition rpc_context.h:25
virtual ~SessionContext()=default
SessionContext(size_t client_session_id_, const std::vector< uint8_t > &caller_cert_, const std::optional< ListenInterfaceID > &interface_id_=std::nullopt)
Definition rpc_context.h:42
bool is_forwarded
Definition rpc_context.h:35
bool is_forwarding
Definition rpc_context.h:29
std::optional< ListenInterfaceID > interface_id
Definition rpc_context.h:32
std::vector< uint8_t > caller_cert
Definition rpc_context.h:28