2 changed files with 64 additions and 74 deletions
@ -1,59 +1,58 @@ |
|||||
/*
|
/*
|
||||
* rpc_message.h |
* rpc_message.h |
||||
* 定义RPC消息的序列化和反序列化接口 |
* 定义RPC消息的序列化和反序列化接口 |
||||
*/ |
*/ |
||||
|
#ifndef RPC_MESSAGE_H |
||||
#ifndef RPC_MESSAGE_H
|
#define RPC_MESSAGE_H |
||||
#define RPC_MESSAGE_H
|
|
||||
|
#include "rpc_common.h" |
||||
#include "rpc_common.h"
|
#include "rpc_transport.h" |
||||
#include "rpc_transport.h"
|
|
||||
|
/* 消息类型枚举 */ |
||||
/* 消息类型枚举 */ |
typedef enum { |
||||
typedef enum { |
RPC_MESSAGE_REQUEST, // 请求消息
|
||||
RPC_MESSAGE_REQUEST, // 请求消息
|
RPC_MESSAGE_RESPONSE // 响应消息
|
||||
RPC_MESSAGE_RESPONSE // 响应消息
|
} rpc_message_type_t; |
||||
} rpc_message_type_t; |
|
||||
|
/* RPC消息头部 */ |
||||
/* RPC消息头部 */ |
typedef struct { |
||||
typedef struct { |
rpc_message_type_t type; // 消息类型
|
||||
rpc_message_type_t type; // 消息类型
|
uint32_t payload_size; // 负载大小
|
||||
uint32_t payload_size; // 负载大小
|
} rpc_message_header_t; |
||||
} rpc_message_header_t; |
|
||||
|
/* RPC消息结构 */ |
||||
/* RPC消息结构 */ |
typedef struct { |
||||
typedef struct { |
rpc_message_header_t header; // 消息头部
|
||||
rpc_message_header_t header; // 消息头部
|
union { |
||||
union { |
rpc_request_t request; // 请求消息
|
||||
rpc_request_t request; // 请求消息
|
rpc_response_t response; // 响应消息
|
||||
rpc_response_t response; // 响应消息
|
} payload; // 消息负载
|
||||
} payload; // 消息负载
|
} rpc_message_t; |
||||
} rpc_message_t; |
|
||||
|
/* 消息处理函数声明 */ |
||||
/* 消息处理函数声明 */ |
|
||||
|
// 序列化请求消息到缓冲区
|
||||
// 序列化请求消息到缓冲区
|
int rpc_serialize_request(const rpc_request_t* request, void* buffer, size_t buffer_size); |
||||
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_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_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_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_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_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_send_response(rpc_transport_t* transport, const rpc_response_t* response); |
|
||||
|
// 接收响应消息
|
||||
// 接收响应消息
|
int rpc_recv_response(rpc_transport_t* transport, rpc_response_t* response); |
||||
int rpc_recv_response(rpc_transport_t* transport, rpc_response_t* response); |
|
||||
|
|
||||
#endif /* RPC_MESSAGE_H */ |
#endif /* RPC_MESSAGE_H */ |
||||
Loading…
Reference in new issue