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_, const 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
 
std::vector< uint8_t > & get_response_body ()
 
ccf::http_status get_response_http_status () const
 
virtual ccf::FrameFormat frame_format () const override
 
virtual void set_tx_id (const ccf::TxID &tx_id) override
 
virtual const std::vector< uint8_t > & get_request_body () const override
 
virtual const std::string & get_request_query () const override
 
virtual const ccf::RESTVerbget_request_verb () const override
 
virtual std::string get_request_path () const override
 
virtual const std::vector< uint8_t > & get_serialised_request () override
 
virtual std::string get_method () const override
 
void set_method (const std::string_view &p)
 
virtual const ccf::http::HeaderMapget_request_headers () const override
 Returns map of all headers found in the request.
 
virtual std::optional< std::string > get_request_header (const std::string_view &name) const override
 
virtual const std::string & get_request_url () const override
 
virtual std::shared_ptr< ccf::http::HTTPResponderget_responder () const override
 
template<typename T >
void _set_response_body (T &&body)
 
virtual void set_response_body (const std::vector< uint8_t > &body) override
 Sets the main body or payload of the response.
 
virtual void set_response_body (std::vector< uint8_t > &&body) override
 Sets the main body or payload of the response.
 
virtual void set_response_body (std::string &&body) override
 Sets the main body or payload of the response.
 
virtual const std::vector< uint8_t > & get_response_body () const override
 
virtual void set_response_status (int status) override
 Sets initial status code summarising result of RPC.
 
virtual int get_response_status () const override
 
virtual void set_response_header (const std::string_view &name, const std::string_view &value) override
 
virtual void clear_response_headers () override
 
virtual void set_response_trailer (const std::string_view &name, const std::string_view &value) override
 
virtual void set_apply_writes (bool apply) override
 
virtual bool should_apply_writes () const override
 
virtual void reset_response () override
 
virtual 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
 
virtual void set_user_data (std::shared_ptr< void > data) override
 
virtual void * get_user_data () const override
 
void set_claims_digest (ccf::ClaimsDigest::Digest &&digest) override
 
virtual const ccf::PathParamsget_request_path_params () override
 
virtual const ccf::PathParamsget_decoded_request_path_params () override
 
HttpVersion get_http_version () const
 
virtual 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_,
const 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()

virtual void http::HttpRpcContext::clear_response_headers ( )
inlineoverridevirtual

Implements ccf::RpcContext.

◆ frame_format()

virtual 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()

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

Implements ccf::RpcContext.

◆ get_request_body()

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

Implements ccf::RpcContext.

◆ get_request_header()

virtual 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()

virtual 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()

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

Implements ccf::RpcContext.

◆ get_request_query()

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

Implements ccf::RpcContext.

◆ get_request_url()

virtual 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()

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

Implements ccf::RpcContext.

◆ get_responder()

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

Implements ccf::RpcContext.

◆ get_response_body() [1/2]

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

◆ get_response_body() [2/2]

virtual 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()

virtual 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()

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

Implements ccf::RpcContextImpl.

◆ reset_response()

virtual void http::HttpRpcContext::reset_response ( )
inlineoverridevirtual

Implements ccf::RpcContextImpl.

◆ serialise_response()

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

Implements ccf::RpcContextImpl.

◆ set_apply_writes()

virtual 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]

virtual 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]

virtual 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]

virtual 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()

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

Implements ccf::RpcContext.

◆ set_response_status()

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

Sets initial status code summarising result of RPC.

Implements ccf::RpcContext.

◆ set_response_trailer()

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

Implements ccf::RpcContext.

◆ set_tx_id()

virtual void http::HttpRpcContext::set_tx_id ( const ccf::TxID tx_id)
inlineoverridevirtual

Implements ccf::RpcContextImpl.

◆ should_apply_writes()

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

Implements ccf::RpcContextImpl.


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