CCF
Loading...
Searching...
No Matches
Public Member Functions | List of all members
http::HttpRpcContext Class Reference

#include <http_rpc_context.h>

Inherits ccf::RpcContextImpl.

Public Member Functions

 HttpRpcContext (std::shared_ptr< ccf::SessionContext > s, ccf::HttpVersion http_version, llhttp_method verb_, const std::string_view &url_, ccf::http::HeaderMap headers_, const std::vector< uint8_t > &body_, const std::shared_ptr< ccf::http::HTTPResponder > &responder_=nullptr, const std::vector< uint8_t > &raw_request_={})
 
ccf::http::HeaderMap get_response_headers () const
 
ccf::http::HeaderMap get_response_trailers () const
 
ccf::http_status get_response_http_status () const
 
ccf::FrameFormat frame_format () const override
 
const std::vector< uint8_t > & get_request_body () const override
 
const std::string & get_request_query () const override
 
const ccf::RESTVerbget_request_verb () const override
 
std::string get_request_path () const override
 
const std::vector< uint8_t > & get_serialised_request () override
 
std::string get_method () const override
 
void set_method (const std::string_view &p)
 
const ccf::http::HeaderMapget_request_headers () const override
 Returns map of all headers found in the request.
 
std::optional< std::string > get_request_header (const std::string_view &name) const override
 
const std::string & get_request_url () const override
 
std::shared_ptr< ccf::http::HTTPResponderget_responder () const override
 
template<typename T >
void _set_response_body (T &&body)
 
void set_response_body (const std::vector< uint8_t > &body) override
 Sets the main body or payload of the response.
 
void set_response_body (std::vector< uint8_t > &&body) override
 Sets the main body or payload of the response.
 
void set_response_body (std::string &&body) override
 Sets the main body or payload of the response.
 
const std::vector< uint8_t > & get_response_body () const override
 
std::vector< uint8_t > && take_response_body () override
 
void set_response_status (int status) override
 Sets initial status code summarising result of RPC.
 
int get_response_status () const override
 
void set_response_header (const std::string_view &name, const std::string_view &value) override
 
void clear_response_headers () override
 
void set_response_trailer (const std::string_view &name, const std::string_view &value) override
 
void set_apply_writes (bool apply) override
 
bool should_apply_writes () const override
 
void reset_response () override
 
std::vector< uint8_t > serialise_response () const override
 
- Public Member Functions inherited from ccf::RpcContextImpl
 RpcContextImpl (const std::shared_ptr< SessionContext > &s, HttpVersion v=HttpVersion::HTTP1)
 
std::shared_ptr< SessionContextget_session_context () const override
 
void set_user_data (std::shared_ptr< void > data) override
 
void * get_user_data () const override
 
void set_claims_digest (ccf::ClaimsDigest::Digest &&digest) override
 
const ccf::PathParamsget_request_path_params () override
 
const ccf::PathParamsget_decoded_request_path_params () override
 
HttpVersion get_http_version () const
 
void set_error (ccf::http_status status, const std::string &code, std::string &&msg, const std::vector< nlohmann::json > &details={}) override
 Construct error response, formatted as JSON OData.
 
void set_error (ccf::ErrorDetails &&error) override
 Construct error response, formatted as JSON OData.
 
void set_response_json (const nlohmann::json &body, ccf::http_status status) override
 
- Public Member Functions inherited from ccf::RpcContext
virtual ~RpcContext ()=default
 
virtual void set_response_header (const std::string_view &name, size_t n)
 
virtual void set_response_header (const http::HeaderKeyValue &kv)
 
virtual void set_response_trailer (const std::string_view &name, size_t n)
 
virtual void set_response_trailer (const http::HeaderKeyValue &kv)
 

Additional Inherited Members

- Public Attributes inherited from ccf::RpcContextImpl
ccf::ClaimsDigest claims = ccf::empty_claims()
 
ccf::PathParams path_params
 
ccf::PathParams decoded_path_params
 
bool response_is_pending = false
 
bool terminate_session = false
 
- Protected Attributes inherited from ccf::RpcContextImpl
std::shared_ptr< SessionContextsession
 
HttpVersion http_version
 
std::shared_ptr< void > user_data
 

Constructor & Destructor Documentation

◆ HttpRpcContext()

http::HttpRpcContext::HttpRpcContext ( std::shared_ptr< ccf::SessionContext s,
ccf::HttpVersion  http_version,
llhttp_method  verb_,
const std::string_view &  url_,
ccf::http::HeaderMap  headers_,
const std::vector< uint8_t > &  body_,
const std::shared_ptr< ccf::http::HTTPResponder > &  responder_ = nullptr,
const std::vector< uint8_t > &  raw_request_ = {} 
)
inline

Member Function Documentation

◆ _set_response_body()

template<typename T >
void http::HttpRpcContext::_set_response_body ( T &&  body)
inline

◆ clear_response_headers()

void http::HttpRpcContext::clear_response_headers ( )
inlineoverridevirtual

Implements ccf::RpcContext.

◆ frame_format()

ccf::FrameFormat http::HttpRpcContext::frame_format ( ) const
inlineoverridevirtual

Returns frame format describing the protocol that the request was received over.

Implements ccf::RpcContext.

◆ get_method()

std::string http::HttpRpcContext::get_method ( ) const
inlineoverridevirtual

Implements ccf::RpcContext.

◆ get_request_body()

const std::vector< uint8_t > & http::HttpRpcContext::get_request_body ( ) const
inlineoverridevirtual

Implements ccf::RpcContext.

◆ get_request_header()

std::optional< std::string > http::HttpRpcContext::get_request_header ( const std::string_view &  name) const
inlineoverridevirtual

Returns value associated with named header, or nullopt of this header was not present.

Implements ccf::RpcContext.

◆ get_request_headers()

const ccf::http::HeaderMap & http::HttpRpcContext::get_request_headers ( ) const
inlineoverridevirtual

Returns map of all headers found in the request.

Implements ccf::RpcContext.

◆ get_request_path()

std::string http::HttpRpcContext::get_request_path ( ) const
inlineoverridevirtual

Implements ccf::RpcContext.

◆ get_request_query()

const std::string & http::HttpRpcContext::get_request_query ( ) const
inlineoverridevirtual

Implements ccf::RpcContext.

◆ get_request_url()

const std::string & http::HttpRpcContext::get_request_url ( ) const
inlineoverridevirtual

Returns full URL provided in request, rather than split into path + query.

Implements ccf::RpcContext.

◆ get_request_verb()

const ccf::RESTVerb & http::HttpRpcContext::get_request_verb ( ) const
inlineoverridevirtual

Implements ccf::RpcContext.

◆ get_responder()

std::shared_ptr< ccf::http::HTTPResponder > http::HttpRpcContext::get_responder ( ) const
inlineoverridevirtual

Implements ccf::RpcContext.

◆ get_response_body()

const std::vector< uint8_t > & http::HttpRpcContext::get_response_body ( ) const
inlineoverridevirtual

Implements ccf::RpcContext.

◆ get_response_headers()

ccf::http::HeaderMap http::HttpRpcContext::get_response_headers ( ) const
inline

◆ get_response_http_status()

ccf::http_status http::HttpRpcContext::get_response_http_status ( ) const
inline

◆ get_response_status()

int http::HttpRpcContext::get_response_status ( ) const
inlineoverridevirtual

Implements ccf::RpcContext.

◆ get_response_trailers()

ccf::http::HeaderMap http::HttpRpcContext::get_response_trailers ( ) const
inline

◆ get_serialised_request()

const std::vector< uint8_t > & http::HttpRpcContext::get_serialised_request ( )
inlineoverridevirtual

Implements ccf::RpcContextImpl.

◆ reset_response()

void http::HttpRpcContext::reset_response ( )
inlineoverridevirtual

Implements ccf::RpcContextImpl.

◆ serialise_response()

std::vector< uint8_t > http::HttpRpcContext::serialise_response ( ) const
inlineoverridevirtual

Implements ccf::RpcContextImpl.

◆ set_apply_writes()

void http::HttpRpcContext::set_apply_writes ( bool  apply)
inlineoverridevirtual

Tells the framework to apply or not apply this transaction. By default that decision is based on the response status, with successes applied and errors producing no persistent writes. This value will override, allowing changes to be persisted/dropped regardless of response type.

Implements ccf::RpcContext.

◆ set_method()

void http::HttpRpcContext::set_method ( const std::string_view &  p)
inline

◆ set_response_body() [1/3]

void http::HttpRpcContext::set_response_body ( const std::vector< uint8_t > &  body)
inlineoverridevirtual

Sets the main body or payload of the response.

Implements ccf::RpcContext.

◆ set_response_body() [2/3]

void http::HttpRpcContext::set_response_body ( std::string &&  body)
inlineoverridevirtual

Sets the main body or payload of the response.

Implements ccf::RpcContext.

◆ set_response_body() [3/3]

void http::HttpRpcContext::set_response_body ( std::vector< uint8_t > &&  body)
inlineoverridevirtual

Sets the main body or payload of the response.

Implements ccf::RpcContext.

◆ set_response_header()

void http::HttpRpcContext::set_response_header ( const std::string_view &  name,
const std::string_view &  value 
)
inlineoverridevirtual

Implements ccf::RpcContext.

◆ set_response_status()

void http::HttpRpcContext::set_response_status ( int  status)
inlineoverridevirtual

Sets initial status code summarising result of RPC.

Implements ccf::RpcContext.

◆ set_response_trailer()

void http::HttpRpcContext::set_response_trailer ( const std::string_view &  name,
const std::string_view &  value 
)
inlineoverridevirtual

Implements ccf::RpcContext.

◆ should_apply_writes()

bool http::HttpRpcContext::should_apply_writes ( ) const
inlineoverridevirtual

Implements ccf::RpcContextImpl.

◆ take_response_body()

std::vector< uint8_t > && http::HttpRpcContext::take_response_body ( )
inlineoverridevirtual

Implements ccf::RpcContext.


The documentation for this class was generated from the following file: