/* * rpc_message.h * 定义RPC消息的序列化和反序列化接口 */ #ifndef RPC_MESSAGE_H #define RPC_MESSAGE_H #include "rpc_common.h" #include "rpc_transport.h" /* 消息类型枚举 */ typedef enum { RPC_MESSAGE_REQUEST, // 请求消息 RPC_MESSAGE_RESPONSE // 响应消息 } rpc_message_type_t; /* RPC消息头部 */ typedef struct { rpc_message_type_t type; // 消息类型 uint32_t payload_size; // 负载大小 } rpc_message_header_t; /* RPC消息结构 */ typedef struct { rpc_message_header_t header; // 消息头部 union { rpc_request_t request; // 请求消息 rpc_response_t response; // 响应消息 } payload; // 消息负载 } rpc_message_t; /* 消息处理函数声明 */ // 序列化请求消息到缓冲区 int rpc_serialize_request(const rpc_request_t* request, void* buffer, size_t buffer_size); // 反序列化缓冲区到请求消息 int rpc_deserialize_request(const void* buffer, size_t buffer_size, rpc_request_t* request); // 序列化响应消息到缓冲区 int rpc_serialize_response(const rpc_response_t* response, void* buffer, size_t buffer_size); // 反序列化缓冲区到响应消息 int rpc_deserialize_response(const void* buffer, size_t buffer_size, rpc_response_t* response); // 发送请求消息 int rpc_send_request(rpc_transport_t* transport, const rpc_request_t* request); // 接收请求消息 int rpc_recv_request(rpc_transport_t* transport, rpc_request_t* request); // 发送响应消息 int rpc_send_response(rpc_transport_t* transport, const rpc_response_t* response); // 接收响应消息 int rpc_recv_response(rpc_transport_t* transport, rpc_response_t* response); #endif /* RPC_MESSAGE_H */