userver: ugrpc::server::MiddlewareBase Class Reference
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
ugrpc::server::MiddlewareBase Class Reference

#include <userver/ugrpc/server/middlewares/base.hpp>

Detailed Description

+ Inheritance diagram for ugrpc::server::MiddlewareBase:

Public Member Functions

 MiddlewareBase (const MiddlewareBase &)=delete
 
MiddlewareBaseoperator= (const MiddlewareBase &)=delete
 
MiddlewareBaseoperator= (MiddlewareBase &&)=delete
 
virtual void OnCallStart (MiddlewareCallContext &context) const
 This hook is invoked once per Call (RPC), after the message metadata is received, but before the handler function is called.
 
virtual void PostRecvMessage (MiddlewareCallContext &context, google::protobuf::Message &request) const
 The function is invoked after each received message.
 
virtual void PreSendMessage (MiddlewareCallContext &context, google::protobuf::Message &response) const
 The function is invoked before each sended message.
 
virtual void OnCallFinish (MiddlewareCallContext &context, const grpc::Status &status) const
 This hook is invoked once per Call (RPC), after the handler function returns, but before the message is sent to the upstream client.
 

Member Function Documentation

◆ OnCallFinish()

virtual void ugrpc::server::MiddlewareBase::OnCallFinish ( MiddlewareCallContext & context,
const grpc::Status & status ) const
virtual

This hook is invoked once per Call (RPC), after the handler function returns, but before the message is sent to the upstream client.

All OnCallStart invoked in the reverse order relatively OnCallFinish. You can change grpc status and it will apply for a rpc call.

Warning
If Handler (grpc method) returns !ok status, OnCallFinish won't be called.

Reimplemented in ugrpc::server::middlewares::deadline_propagation::Middleware.

◆ OnCallStart()

virtual void ugrpc::server::MiddlewareBase::OnCallStart ( MiddlewareCallContext & context) const
virtual

This hook is invoked once per Call (RPC), after the message metadata is received, but before the handler function is called.

If all OnCallStart succeeded => OnCallFinish will invoked after a success method call.

Reimplemented in ugrpc::server::middlewares::baggage::Middleware, and ugrpc::server::middlewares::deadline_propagation::Middleware.

◆ PostRecvMessage()

virtual void ugrpc::server::MiddlewareBase::PostRecvMessage ( MiddlewareCallContext & context,
google::protobuf::Message & request ) const
virtual

The function is invoked after each received message.

PostRecvMessage is called:

  • unary: exactly once per Call (RPC)
  • stream: 0, 1 or more times

Reimplemented in grpc_protovalidate::server::Middleware.

◆ PreSendMessage()

virtual void ugrpc::server::MiddlewareBase::PreSendMessage ( MiddlewareCallContext & context,
google::protobuf::Message & response ) const
virtual

The function is invoked before each sended message.

PreSendMessage is called:

  • unary: 0 or 1 per Call (RPC), depending on whether the RPC returns a response or a failed status
  • stream: once per response message, that is, 0, 1, more times per Call (RPC).

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