1 /*
2  * Copyright (C) 2015-2019 Alibaba Group Holding Limited
3  */
4 
5 #include "stdint.h"
6 
7 /**
8  * @brief subdev模块内部发生值得用户关注的状态变化时, 通知用户的事件类型
9  */
10 typedef enum {
11     /**
12      * @brief 非法的应答报文
13      */
14     MQTT_JSCALLBACK_INVALID_REF,
15     /**
16      * @brief 应答报文的id字段非法
17      */
18     MQTT_JSCALLBACK_START_CLIENT_REF,
19     /**
20      * @brief 应答报文的id字段非法
21      */
22     MQTT_JSCALLBACK_SCRIBE_TOPIC_REF,
23     /**
24      * @brief 应答报文的id字段非法
25      */
26     MQTT_JSCALLBACK_UNSCRIBE_TOPIC_REF,
27     /**
28      * @brief 应答报文的id字段非法
29      */
30     MQTT_JSCALLBACK_PUBLISH_REF,
31     /**
32      * @brief 应答报文的id字段非法
33      */
34     MQTT_JSCALLBACK_CLIENT_STOP_REF,
35     /**
36      * @brief 应答报文的code字段非法
37      */
38     MQTT_JSCALLBACK_INVALID_CODE
39 } amp_mqtt_jscallback_type_t;
40 
41 typedef struct amp_mqtt_params{
42     char *host;
43     uint16_t port;
44     char *clientid;
45     char *username;
46     char *password;
47     uint8_t keepaliveSec;
48     int js_cb_ref[MQTT_JSCALLBACK_INVALID_CODE];
49     int res;
50 }amp_mqtt_params_t;
51 
52 typedef struct amp_mqtt_handle{
53     void *mqtt_handle;
54     int js_cb_ref[MQTT_JSCALLBACK_INVALID_CODE];
55     int res;
56 }amp_mqtt_handle_t;
57 
58 /* create mqtt client */
59 int32_t mqtt_client_start(void **handle, amp_mqtt_params_t *mqtt_params);
60 
61 /* destroy mqtt client */
62 int32_t mqtt_client_stop(void **handle);