| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | /* * * Copyright 2015 gRPC authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */#ifndef GRPCPP_IMPL_CODEGEN_SERIALIZATION_TRAITS_H#define GRPCPP_IMPL_CODEGEN_SERIALIZATION_TRAITS_Hnamespace grpc {/// Defines how to serialize and deserialize some type.////// Used for hooking different message serialization API's into GRPC./// Each SerializationTraits<Message> implementation must provide the/// following functions:/// 1.  static Status Serialize(const Message& msg,///                             ByteBuffer* buffer,///                             bool* own_buffer);///     OR///     static Status Serialize(const Message& msg,///                             grpc_byte_buffer** buffer,///                             bool* own_buffer);///     The former is preferred; the latter is deprecated////// 2.  static Status Deserialize(ByteBuffer* buffer,///                               Message* msg);///     OR///     static Status Deserialize(grpc_byte_buffer* buffer,///                               Message* msg);///     The former is preferred; the latter is deprecated////// Serialize is required to convert message to a ByteBuffer, and/// return that byte buffer through *buffer. *own_buffer should/// be set to true if the caller owns said byte buffer, or false if/// ownership is retained elsewhere.////// Deserialize is required to convert buffer into the message stored at/// msg. max_receive_message_size is passed in as a bound on the maximum/// number of message bytes Deserialize should accept.////// Both functions return a Status, allowing them to explain what went/// wrong if required.template <class Message,          class UnusedButHereForPartialTemplateSpecialization = void>class SerializationTraits;}  // namespace grpc#endif  // GRPCPP_IMPL_CODEGEN_SERIALIZATION_TRAITS_H
 |