| | |
| | | |
| | | }; |
| | | |
| | | |
| | | |
| | | #define BUS_ACTION_STOP 1 |
| | | |
| | | typedef struct shm_packet_t { |
| | | int key; |
| | | size_t size; |
| | | void * buf; |
| | | char uuid[64]; |
| | | int action; |
| | | |
| | | } shm_packet_t; |
| | | |
| | |
| | | |
| | | } shm_socket_t; |
| | | |
| | | // typedef void (*recv_callback_fn)(void **sendbuf, int *sendsize); |
| | | typedef std::function<void(void **sendbuf, int *sendsize)> recv_callback_fn; |
| | | typedef std::function<void(void *recvbuf, int recvsize, int key, void **sendbuf, int *sendsize, void *user_data)> recvandsend_callback_fn; |
| | | |
| | | size_t shm_socket_remove_keys(int keys[], size_t length); |
| | | size_t shm_socket_remove_keys_exclude(int keys[], size_t length); |
| | | |
| | | shm_socket_t *shm_open_socket(shm_socket_type_t socket_type); |
| | | |
| | | |
| | | int shm_close_socket(shm_socket_t * socket) ; |
| | | |
| | | int shm_socket_stop(shm_socket_t *sockt); |
| | | |
| | | |
| | | int shm_socket_bind(shm_socket_t * socket, int key) ; |
| | |
| | | const struct timespec * timeout = NULL, int flags = 0); |
| | | |
| | | /** |
| | | * @callback void (*recv_callback_fn)(void **sendbuf, int *sendsize) |
| | | * sendbuf 和 sendsize是callbak_fn回调函数的返回值, 分别表示发送数据,和发送数据的大小。 |
| | | * @callback void (*recvandsend_callback_fn)(void *recvbuf, int recvsize, int key, void **sendbuf, int *sendsize, void * user_data) |
| | | * @recvbuf 收到的数据 |
| | | * @recvsize 收到的数据的大小 |
| | | * @key 接受数据并并发送数据的对象 |
| | | * @sendbuf 存储返回值的地址,表示返回的数据 |
| | | * @sendsize 存储返回值的地址, 返回数据的长度 |
| | | * |
| | | */ |
| | | int shm_recvandsend(shm_socket_t *sockt, void **recvbuf, int *recvsize, int *key, recv_callback_fn callback, |
| | | const struct timespec *timeout = NULL, int flag = 0); |
| | | int shm_recvandsend(shm_socket_t *sockt, recvandsend_callback_fn callback, |
| | | const struct timespec *timeout = NULL, int flag = 0, void * user_data = NULL); |
| | | |
| | | |
| | | |