GRPC C++  1.50.0
Public Member Functions
grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 > Class Template Reference

Primary implementation of CallOpSetInterface. More...

#include <call_op_set.h>

Public Member Functions

 CallOpSet ()
 
 CallOpSet (const CallOpSet &other)
 
CallOpSetoperator= (const CallOpSet &other)
 
void FillOps (Call *call) override
 
bool FinalizeResult (void **tag, bool *status) override
 
void set_output_tag (void *return_tag)
 
void * core_cq_tag () override
 
void set_core_cq_tag (void *core_cq_tag)
 set_core_cq_tag is used to provide a different core CQ tag than "this". More...
 
void SetHijackingState () override
 
void ContinueFillOpsAfterInterception () override
 
void ContinueFinalizeResultAfterInterception () override
 

Detailed Description

template<class Op1, class Op2, class Op3, class Op4, class Op5, class Op6>
class grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >

Primary implementation of CallOpSetInterface.

Since we cannot use variadic templates, we declare slots up to the maximum count of ops we'll need in a set. We leverage the empty base class optimization to slim this class (especially when there are many unused slots used). To avoid duplicate base classes, the template parameter for CallNoOp is varied by argument position.

Constructor & Destructor Documentation

◆ CallOpSet() [1/2]

template<class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 >
grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::CallOpSet ( )
inline

◆ CallOpSet() [2/2]

template<class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 >
grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::CallOpSet ( const CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 > &  other)
inline

Member Function Documentation

◆ ContinueFillOpsAfterInterception()

template<class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 >
void grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::ContinueFillOpsAfterInterception ( )
inlineoverride

◆ ContinueFinalizeResultAfterInterception()

template<class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 >
void grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::ContinueFinalizeResultAfterInterception ( )
inlineoverride

◆ core_cq_tag()

template<class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 >
void* grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::core_cq_tag ( )
inlineoverride

◆ FillOps()

template<class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 >
void grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::FillOps ( Call call)
inlineoverride

◆ FinalizeResult()

template<class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 >
bool grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::FinalizeResult ( void **  tag,
bool *  status 
)
inlineoverride

◆ operator=()

template<class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 >
CallOpSet& grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::operator= ( const CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 > &  other)
inline

◆ set_core_cq_tag()

template<class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 >
void grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::set_core_cq_tag ( void *  core_cq_tag)
inline

set_core_cq_tag is used to provide a different core CQ tag than "this".

This is used for callback-based tags, where the core tag is the core callback function. It does not change the use or behavior of any other function (such as FinalizeResult)

◆ set_output_tag()

template<class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 >
void grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::set_output_tag ( void *  return_tag)
inline

◆ SetHijackingState()

template<class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 >
void grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::SetHijackingState ( )
inlineoverride

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