19 #ifndef GRPCPP_IMPL_CODEGEN_INTERCEPTOR_H 20 #define GRPCPP_IMPL_CODEGEN_INTERCEPTOR_H 30 class ChannelInterface;
33 namespace experimental {
106 virtual void Proceed() = 0;
112 virtual void Hijack() = 0;
135 virtual ByteBuffer* GetSerializedSendMessage() = 0;
140 virtual const void* GetSendMessage() = 0;
149 virtual void ModifySendMessage(
const void* message) = 0;
153 virtual bool GetSendMessageStatus() = 0;
158 virtual std::multimap<grpc::string, grpc::string>*
159 GetSendInitialMetadata() = 0;
162 virtual Status GetSendStatus() = 0;
166 virtual void ModifySendStatus(
const Status& status) = 0;
171 virtual std::multimap<grpc::string, grpc::string>*
172 GetSendTrailingMetadata() = 0;
179 virtual void* GetRecvMessage() = 0;
184 virtual std::multimap<grpc::string_ref, grpc::string_ref>*
185 GetRecvInitialMetadata() = 0;
189 virtual Status* GetRecvStatus() = 0;
193 virtual std::multimap<grpc::string_ref, grpc::string_ref>*
194 GetRecvTrailingMetadata() = 0;
201 virtual std::unique_ptr<ChannelInterface> GetInterceptedChannel() = 0;
206 virtual void FailHijackedRecvMessage() = 0;
210 virtual void FailHijackedSendMessage() = 0;
227 #endif // GRPCPP_IMPL_CODEGEN_INTERCEPTOR_H
virtual ~InterceptorBatchMethods()
Definition: interceptor.h:93
Class that is passed as an argument to the Intercept method of the application's Interceptor interfac...
Definition: interceptor.h:91
The first three in this list are for clients and servers.
::google::protobuf::util::Status Status
Definition: config_protobuf.h:96
InterceptionHookPoints
An enumeration of different possible points at which the Intercept method of the Interceptor interfac...
Definition: interceptor.h:52
The following three are for hijacked clients only.
This header provides an object that reads bytes directly from a grpc::ByteBuffer, via the ZeroCopyInp...
Definition: alarm.h:24
Interface for an interceptor.
Definition: interceptor.h:215
virtual ~Interceptor()
Definition: interceptor.h:217
This is a special hook point available to both clients and servers when TryCancel() is performed...
Did it work? If it didn't, why?
Definition: status.h:31
A sequence of bytes.
Definition: byte_buffer.h:72
The following two are for all clients and servers.