#ifndef GRPCPP_IMPL_CALL_OP_SET_H
#define GRPCPP_IMPL_CALL_OP_SET_H
#include <cstring>
#include <map>
#include <memory>
#include <grpc/grpc.h>
#include <grpc/impl/compression_types.h>
#include <grpc/impl/grpc_types.h>
#include <grpc/slice.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpcpp/client_context.h>
#include <grpcpp/completion_queue.h>
#include <grpcpp/impl/call.h>
#include <grpcpp/impl/call_hook.h>
#include <grpcpp/impl/call_op_set_interface.h>
#include <grpcpp/impl/codegen/intercepted_channel.h>
#include <grpcpp/impl/completion_queue_tag.h>
#include <grpcpp/impl/interceptor_common.h>
#include <grpcpp/impl/serialization_traits.h>
#include <grpcpp/support/byte_buffer.h>
#include <grpcpp/support/config.h>
#include <grpcpp/support/slice.h>
#include <grpcpp/support/string_ref.h>
namespace grpc {
namespace internal {
class Call;
class CallHook;
inline grpc_metadata* FillMetadataArray(
const std::multimap<std::string, std::string>& metadata,
size_t* metadata_count, const std::string& optional_error_details) { … }
}
class WriteOptions { … };
namespace internal {
template <int Unused>
class CallNoOp { … };
class CallOpSendInitialMetadata { … };
class CallOpSendMessage { … };
template <class M>
Status CallOpSendMessage::SendMessage(const M& message, WriteOptions options) { … }
template <class M>
Status CallOpSendMessage::SendMessage(const M& message) { … }
template <class M>
Status CallOpSendMessage::SendMessagePtr(const M* message,
WriteOptions options) { … }
template <class M>
Status CallOpSendMessage::SendMessagePtr(const M* message) { … }
template <class R>
class CallOpRecvMessage { … };
class DeserializeFunc { … };
template <class R>
class DeserializeFuncType final : public DeserializeFunc { … };
class CallOpGenericRecvMessage { … };
class CallOpClientSendClose { … };
class CallOpServerSendStatus { … };
class CallOpRecvInitialMetadata { … };
class CallOpClientRecvStatus { … };
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 CallOpSet;
template <class Op1, class Op2, class Op3, class Op4, class Op5, class Op6>
class CallOpSet : public CallOpSetInterface,
public Op1,
public Op2,
public Op3,
public Op4,
public Op5,
public Op6 { … };
}
}
#endif