|
|
|
@ -107,6 +107,24 @@ class InterceptorBatchMethods { |
|
|
|
|
/// of the hijacking interceptor.
|
|
|
|
|
virtual void Hijack() = 0; |
|
|
|
|
|
|
|
|
|
/// Send Message Methods
|
|
|
|
|
/// GetSerializedSendMessage and GetSendMessage/ModifySendMessage are the
|
|
|
|
|
/// available methods to view and modify the request payload. An interceptor
|
|
|
|
|
/// can access the payload in either serialized form or non-serialized form
|
|
|
|
|
/// but not both at the same time.
|
|
|
|
|
/// gRPC performs serialization in a lazy manner, which means
|
|
|
|
|
/// that a call to GetSerializedSendMessage will result in a serialization
|
|
|
|
|
/// operation if the payload stored is not in the serialized form already. The
|
|
|
|
|
/// non-serialized form is lost and GetSendMessage will no longer return a
|
|
|
|
|
/// valid pointer, and this will remain true for later interceptors too. This
|
|
|
|
|
/// can change however if ModifySendMessage is used to replace the current
|
|
|
|
|
/// payload. Note that ModifySendMessage requires a new payload message in the
|
|
|
|
|
/// non-serialized form. This will overwrite the existing payload irrespective
|
|
|
|
|
/// of whether it had been serialized earlier. Also note that gRPC Async API
|
|
|
|
|
/// requires early serialization of the payload which means that the payload
|
|
|
|
|
/// would be available in the serialized form only unless an interceptor
|
|
|
|
|
/// replaces the payload with ModifySendMessage.
|
|
|
|
|
|
|
|
|
|
/// Returns a modifable ByteBuffer holding the serialized form of the message
|
|
|
|
|
/// that is going to be sent. Valid for PRE_SEND_MESSAGE interceptions.
|
|
|
|
|
/// A return value of nullptr indicates that this ByteBuffer is not valid.
|
|
|
|
@ -114,15 +132,16 @@ class InterceptorBatchMethods { |
|
|
|
|
|
|
|
|
|
/// Returns a non-modifiable pointer to the non-serialized form of the message
|
|
|
|
|
/// to be sent. Valid for PRE_SEND_MESSAGE interceptions. A return value of
|
|
|
|
|
/// nullptr indicates that this field is not valid. Also note that this is
|
|
|
|
|
/// only supported for sync and callback APIs at the present moment.
|
|
|
|
|
/// nullptr indicates that this field is not valid.
|
|
|
|
|
virtual const void* GetSendMessage() = 0; |
|
|
|
|
|
|
|
|
|
/// Overwrites the message to be sent with \a message. \a message should be in
|
|
|
|
|
/// the non-serialized form expected by the method. Valid for PRE_SEND_MESSAGE
|
|
|
|
|
/// interceptions. Note that the interceptor is responsible for maintaining
|
|
|
|
|
/// the life of the message for the duration on the send operation, i.e., till
|
|
|
|
|
/// POST_SEND_MESSAGE.
|
|
|
|
|
/// the life of the message till it is serialized or it receives the
|
|
|
|
|
/// POST_SEND_MESSAGE interception point, whichever happens earlier. The
|
|
|
|
|
/// modifying interceptor may itself force early serialization by calling
|
|
|
|
|
/// GetSerializedSendMessage.
|
|
|
|
|
virtual void ModifySendMessage(const void* message) = 0; |
|
|
|
|
|
|
|
|
|
/// Checks whether the SEND MESSAGE op succeeded. Valid for POST_SEND_MESSAGE
|
|
|
|
|