123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345 |
- #ifndef MQTT_AL_H
- #define MQTT_AL_H
- #include <stdint.h>
- #include <dtls_al.h>
- #if defined(__cplusplus)
- extern "C" {
- #endif
- typedef struct
- {
- char *data;
- int len;
- }mqtt_al_string_t;
- typedef enum
- {
- en_mqtt_al_qos_0 = 0,
- en_mqtt_al_qos_1,
- en_mqtt_al_qos_2,
- en_mqtt_al_qos_err
- }en_mqtt_al_qos_t;
- typedef struct
- {
- mqtt_al_string_t topic;
- mqtt_al_string_t msg;
- en_mqtt_al_qos_t qos;
- int retain;
- }mqtt_al_willmsg_t;
- typedef enum
- {
- en_mqtt_al_version_3_1_0 = 0,
- en_mqtt_al_version_3_1_1,
- }en_mqtt_al_verison;
- typedef struct
- {
- mqtt_al_string_t serveraddr;
- int serverport;
- dtls_al_security_t *security;
- en_mqtt_al_verison version;
- mqtt_al_string_t clientid;
- mqtt_al_string_t user;
- mqtt_al_string_t passwd;
- int cleansession;
- mqtt_al_willmsg_t *willmsg;
- unsigned short keepalivetime;
- char conret;
- int timeout;
- }mqtt_al_conpara_t;
- typedef struct
- {
- mqtt_al_string_t topic;
- mqtt_al_string_t msg;
- en_mqtt_al_qos_t qos;
- int retain;
- int timeout;
- }mqtt_al_pubpara_t;
- typedef struct
- {
- mqtt_al_string_t topic;
- mqtt_al_string_t msg;
- en_mqtt_al_qos_t qos;
- int dup;
- int retain;
- }mqtt_al_msgrcv_t;
- typedef void (*fn_mqtt_al_msg_dealer)(void *arg,mqtt_al_msgrcv_t *msg);
- typedef struct
- {
- mqtt_al_string_t topic;
- en_mqtt_al_qos_t qos;
- fn_mqtt_al_msg_dealer dealer;
- void *arg;
- char subret;
- int timeout;
- }mqtt_al_subpara_t;
- typedef struct
- {
- mqtt_al_string_t topic;
- uint32_t timeout;
- }mqtt_al_unsubpara_t;
- typedef enum
- {
- en_mqtt_al_connect_ok = 0,
- en_mqtt_al_connect_err,
- }en_mqtt_al_connect_state;
- #define cn_mqtt_al_con_code_ok 0
- #define cn_mqtt_al_con_code_err_version 1
- #define cn_mqtt_al_con_code_err_clientID 2
- #define cn_mqtt_al_con_code_err_netrefuse 3
- #define cn_mqtt_al_con_code_err_u_p 4
- #define cn_mqtt_al_con_code_err_auth 5
- #define cn_mqtt_al_con_code_err_unkown -1
- #define cn_mqtt_al_con_code_err_network 0x80
- #define cn_mqtt_al_sub_code_qos0 0
- #define cn_mqtt_al_sub_code_qos1 1
- #define cn_mqtt_al_sub_code_qos2 2
- #define cn_mqtt_al_sub_code_err 0x80
- typedef struct
- {
-
- void* (* connect) (mqtt_al_conpara_t *param);
-
- int (* disconnect)(void *handle );
-
- int (* publish) (void *handle, mqtt_al_pubpara_t *msg);
-
- int (* subscribe) (void *handle, mqtt_al_subpara_t *subpara);
-
- int (* unsubscribe) (void *handle, mqtt_al_unsubpara_t *unsubpara);
-
- en_mqtt_al_connect_state (* check_status) (void *handle);
- }mqtt_al_op_t;
- int mqtt_al_init(void);
- int mqtt_al_deinit(void);
- void * mqtt_al_connect( mqtt_al_conpara_t *conparam);
- int mqtt_al_disconnect(void *handle);
- int mqtt_al_publish(void *handle, mqtt_al_pubpara_t *pubpara);
- int mqtt_al_subscribe(void *handle, mqtt_al_subpara_t *subpara);
- int mqtt_al_unsubscribe(void *handle, mqtt_al_unsubpara_t *unsubpara);
- en_mqtt_al_connect_state mqtt_al_check_status(void *handle);
- int mqtt_al_install(mqtt_al_op_t *op);
- int mqtt_al_uninstall(void);
- #if defined(__cplusplus)
- }
- #endif
- #endif
|