123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /*
- * category: [core]
- * apply status: framework
- * edit status:
- * build status: windows&linux
- * description:
- */
- #ifndef __BUS_H__
- #define __BUS_H__
- #pragma once
- #include "config.h"
- #include "memutil.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include "iobuffer.h"
- #define BUS_STATE_ON 1
- #define BUS_STATE_OFF 0
- #define BUS_INVALID_EPID -1
- #define BUS_E_OK 0
- #define BUS_E_FAIL -1
- #define BUS_E_NOTFOUND -2
- #define BUS_E_NETBROKEN -3
- // url:
- // pipe://spcommserver1
- // tcp://127.0.0.1:3232
- typedef struct bus_endpt_t bus_endpt_t;
- typedef struct bus_endpt_callback {
- void (*on_pkt)(bus_endpt_t *endpt, int epid, int type, iobuffer_t **p_pkt, void *user_data);
- void (*on_inf)(bus_endpt_t *endpt, int epid, int type, iobuffer_t **p_pkt, void *user_data);
- void (*on_evt)(bus_endpt_t *endpt, int epid, int type, iobuffer_t **p_pkt, void *user_data);
- void (*on_msg)(bus_endpt_t *endpt, int msg, int nparam, param_size_t params[], int *result, void *user_data);
- void (*on_sys)(bus_endpt_t *endpt, int epid, int state, void *user_data);
- void *user_data;
- }bus_endpt_callback;
- /*create bus_endpt object and sync {BUS_TYPE_ENDPT_REGISTER} messge.*/
- TOOLKIT_API int bus_endpt_create(const char *url, int epid, const bus_endpt_callback *callback, bus_endpt_t **p_endpt);
- TOOLKIT_API void bus_endpt_destroy(bus_endpt_t *endpt);
- TOOLKIT_API int bus_endpt_poll(bus_endpt_t *endpt, int timeout);
- /*no used*/
- //TOOLKIT_API int bus_endpt_send_pkt(bus_endpt_t *endpt, int epid, int type, iobuffer_t *pkt);
- TOOLKIT_API int bus_endpt_send_info(bus_endpt_t *endpt, int epid, int type, iobuffer_t *pkt);
- /*no used*/
- //TOOLKIT_API int bus_endpt_bcast_evt(bus_endpt_t *endpt, int type, iobuffer_t *pkt);
- TOOLKIT_API int bus_endpt_get_state(bus_endpt_t *endpt, int epid, int *state);
- TOOLKIT_API int bus_endpt_post_msg(bus_endpt_t *endpt, int msg, int nparam, param_size_t params[]);
- TOOLKIT_API int bus_endpt_send_msg(bus_endpt_t *endpt, int msg, int nparam, param_size_t params[]);
- TOOLKIT_API int bus_endpt_get_epid(bus_endpt_t *endpt);
- TOOLKIT_API const char *bus_endpt_get_url(bus_endpt_t *endpt);
- TOOLKIT_API int bus_endpt_set_quit_flag(bus_endpt_t *endpt);
- TOOLKIT_API int bus_endpt_get_quit_flag(bus_endpt_t *endpt);
- typedef struct bus_daemon_t bus_daemon_t;
- TOOLKIT_API int bus_daemon_create(int n_url, const char *urls[], int nthread, bus_daemon_t **p_daemon);
- TOOLKIT_API int bus_daemon_destroy(bus_daemon_t *daemon);
- TOOLKIT_API int bus_daemon_start(bus_daemon_t *daemon);
- TOOLKIT_API int bus_daemon_stop(bus_daemon_t *daemon);
- #ifdef __cplusplus
- } // extern "C" {
- #endif
- #endif //__BUS_H__
|