TuyaOS
rpc_base.h
浏览该文件的文档.
1
11#ifndef __RPC_BASE_H__
12#define __RPC_BASE_H__
13
14/*============================ INCLUDES ======================================*/
15
16#include "tuya_slist.h"
17#include "tal_workq_service.h"
18#include "tal_sw_timer.h"
19#include "tal_mutex.h"
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25/*============================ MACROS ========================================*/
26/*============================ TYPES =========================================*/
37typedef int (*rpc_send_cb)(char *addr, uint8_t *data, uint32_t data_len, void *priv_data);
49typedef int (*rpc_reply_cb)(char *addr, uint8_t *data, uint32_t data_len, void *priv_data, uint8_t *fuck_key);
50
62typedef int (*rpc_recv_cb)(char *addr, uint8_t *data, uint32_t data_len, void *priv_data, uint16_t sequence);
63
64
65typedef struct {
66 rpc_send_cb send_cb;
67 rpc_recv_cb request_cb;
68 rpc_recv_cb notify_cb;
69 void *priv_data;
71
72typedef struct {
73 void *data;
74 uint32_t data_len;
75 uint16_t timeout;
76 rpc_reply_cb reply_cb;
77 char *addr;
78 void *priv_data;
79 uint8_t *fuck_key;
80} rpc_msg_t;
81
82typedef struct {
83 MUTEX_HANDLE mutex;
84 uint16_t sequence;
85 rpc_send_cb send_cb;
86 rpc_recv_cb request_cb;
87 rpc_recv_cb notify_cb;
88 rpc_recv_cb pipe_cb;
89 TIMER_ID async_timer;
90 MUTEX_HANDLE async_mutex;
91 SLIST_HEAD async_list;
92 void *priv_data;
94
95/*============================ PROTOTYPES ====================================*/
104
113
122
131int rpc_base_reply(rpc_base_t *base, rpc_msg_t *msg, uint16_t sequence);
132
133
145 char *addr,
146 uint8_t *frame,
147 uint32_t frame_len,
148 uint8_t *fuck_key);
149#ifdef __cplusplus
150}
151#endif
152
153#endif
int(* rpc_recv_cb)(char *addr, uint8_t *data, uint32_t data_len, void *priv_data, uint16_t sequence)
rpc received callback
Definition: rpc_base.h:62
int(* rpc_reply_cb)(char *addr, uint8_t *data, uint32_t data_len, void *priv_data, uint8_t *fuck_key)
rpc reply callback
Definition: rpc_base.h:49
int(* rpc_send_cb)(char *addr, uint8_t *data, uint32_t data_len, void *priv_data)
rpc send callback
Definition: rpc_base.h:37
int rpc_base_reply(rpc_base_t *base, rpc_msg_t *msg, uint16_t sequence)
rpc base reply
int rpc_base_init(rpc_base_t *base, rpc_base_cfg_t *cfg)
rpc base init
int rpc_base_request(rpc_base_t *base, rpc_msg_t *msg)
rpc base request
int rpc_base_notify(rpc_base_t *base, rpc_msg_t *msg)
rpc base notify
int rpc_base_frame_process(rpc_base_t *base, char *addr, uint8_t *frame, uint32_t frame_len, uint8_t *fuck_key)
rpc base reply
Definition: rpc_base.h:65
Definition: rpc_base.h:82
Definition: rpc_base.h:72
Common process - adapter the mutex api provide by OS
Common process - Initialization