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

Primary implementation of CallOpSetInterface. More...

#include <call.h>

Public Member Functions

 CallOpSet ()
 
void FillOps (grpc_call *call, grpc_op *ops, size_t *nops) override
 Fills in grpc_op, starting from ops[*nops] and moving upwards. More...
 
bool FinalizeResult (void **tag, bool *status) override
 Called prior to returning from Next(), return value is the status of the operation (return status is the default thing to do). More...
 
void set_output_tag (void *return_tag)
 
- Public Member Functions inherited from grpc::internal::CompletionQueueTag
virtual ~CompletionQueueTag ()
 

Detailed Description

template<class Op1 = CallNoOp<1>, class Op2 = CallNoOp<2>, class Op3 = CallNoOp<3>, class Op4 = CallNoOp<4>, class Op5 = CallNoOp<5>, class Op6 = CallNoOp<6>>
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 parmeter for CallNoOp is varied by argument position.

Constructor & Destructor Documentation

◆ CallOpSet()

template<class Op1 = CallNoOp<1>, class Op2 = CallNoOp<2>, class Op3 = CallNoOp<3>, class Op4 = CallNoOp<4>, class Op5 = CallNoOp<5>, class Op6 = CallNoOp<6>>
grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::CallOpSet ( )
inline

Member Function Documentation

◆ FillOps()

template<class Op1 = CallNoOp<1>, class Op2 = CallNoOp<2>, class Op3 = CallNoOp<3>, class Op4 = CallNoOp<4>, class Op5 = CallNoOp<5>, class Op6 = CallNoOp<6>>
void grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::FillOps ( grpc_call call,
grpc_op ops,
size_t *  nops 
)
inlineoverridevirtual

Fills in grpc_op, starting from ops[*nops] and moving upwards.

Implements grpc::internal::CallOpSetInterface.

◆ FinalizeResult()

template<class Op1 = CallNoOp<1>, class Op2 = CallNoOp<2>, class Op3 = CallNoOp<3>, class Op4 = CallNoOp<4>, class Op5 = CallNoOp<5>, class Op6 = CallNoOp<6>>
bool grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::FinalizeResult ( void **  tag,
bool *  status 
)
inlineoverridevirtual

Called prior to returning from Next(), return value is the status of the operation (return status is the default thing to do).

If this function returns false, the tag is dropped and not returned from the completion queue

Implements grpc::internal::CompletionQueueTag.

◆ set_output_tag()

template<class Op1 = CallNoOp<1>, class Op2 = CallNoOp<2>, class Op3 = CallNoOp<3>, class Op4 = CallNoOp<4>, class Op5 = CallNoOp<5>, class Op6 = CallNoOp<6>>
void grpc::internal::CallOpSet< Op1, Op2, Op3, Op4, Op5, Op6 >::set_output_tag ( void *  return_tag)
inline

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