source: azure_iot_hub_f767zi/trunk/azure_iot_sdk/umqtt/inc/azure_umqtt_c/mqttconst.h

Last change on this file was 464, checked in by coas-nagasima, 3 years ago

WolfSSLとAzure IoT SDKを更新

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 2.6 KB
Line 
1// Copyright (c) Microsoft. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
4#ifndef MQTTCONST_H
5#define MQTTCONST_H
6
7#include "azure_c_shared_utility/crt_abstractions.h"
8#include "azure_macro_utils/macro_utils.h"
9
10#ifdef __cplusplus
11#include <cstddef>
12#include <cstdint>
13extern "C" {
14#else
15#include <stddef.h>
16#include <stdint.h>
17#endif /* __cplusplus */
18
19#define CONTROL_PACKET_TYPE_VALUES \
20 CONNECT_TYPE, 0x10, \
21 CONNACK_TYPE, 0x20, \
22 PUBLISH_TYPE, 0x30, \
23 PUBACK_TYPE, 0x40, \
24 PUBREC_TYPE, 0x50, \
25 PUBREL_TYPE, 0x60, \
26 PUBCOMP_TYPE, 0x70, \
27 SUBSCRIBE_TYPE, 0x80, \
28 SUBACK_TYPE, 0x90, \
29 UNSUBSCRIBE_TYPE, 0xA0, \
30 UNSUBACK_TYPE, 0xB0, \
31 PINGREQ_TYPE, 0xC0, \
32 PINGRESP_TYPE, 0xD0, \
33 DISCONNECT_TYPE, 0xE0, \
34 PACKET_TYPE_ERROR, 0xE1, /* 0xE1 was assigned because ENUM_2 needs it */ \
35 UNKNOWN_TYPE, 0xE2, /* 0xE2 was assigned because ENUM_2 needs it */ \
36 PACKET_INVALID1_TYPE, 0x00, \
37 PACKET_INVALID2_TYPE, 0xF0
38
39MU_DEFINE_ENUM_2(CONTROL_PACKET_TYPE, CONTROL_PACKET_TYPE_VALUES)
40
41#define QOS_VALUE_VALUES \
42 DELIVER_AT_MOST_ONCE, 0x00, \
43 DELIVER_AT_LEAST_ONCE, 0x01, \
44 DELIVER_EXACTLY_ONCE, 0x02, \
45 DELIVER_FAILURE, 0x80
46
47MU_DEFINE_ENUM_2(QOS_VALUE, QOS_VALUE_VALUES)
48
49typedef struct APP_PAYLOAD_TAG
50{
51 uint8_t* message;
52 size_t length;
53} APP_PAYLOAD;
54
55typedef struct MQTT_CLIENT_OPTIONS_TAG
56{
57 char* clientId;
58 char* willTopic;
59 char* willMessage;
60 char* username;
61 char* password;
62 uint16_t keepAliveInterval;
63 bool messageRetain;
64 bool useCleanSession;
65 QOS_VALUE qualityOfServiceValue;
66 bool log_trace;
67} MQTT_CLIENT_OPTIONS;
68
69typedef enum CONNECT_RETURN_CODE_TAG
70{
71 CONNECTION_ACCEPTED = 0x00,
72 CONN_REFUSED_UNACCEPTABLE_VERSION = 0x01,
73 CONN_REFUSED_ID_REJECTED = 0x02,
74 CONN_REFUSED_SERVER_UNAVAIL = 0x03,
75 CONN_REFUSED_BAD_USERNAME_PASSWORD = 0x04,
76 CONN_REFUSED_NOT_AUTHORIZED = 0x05,
77 CONN_REFUSED_UNKNOWN
78} CONNECT_RETURN_CODE;
79
80typedef struct CONNECT_ACK_TAG
81{
82 bool isSessionPresent;
83 CONNECT_RETURN_CODE returnCode;
84} CONNECT_ACK;
85
86typedef struct SUBSCRIBE_PAYLOAD_TAG
87{
88 const char* subscribeTopic;
89 QOS_VALUE qosReturn;
90} SUBSCRIBE_PAYLOAD;
91
92typedef struct SUBSCRIBE_ACK_TAG
93{
94 uint16_t packetId;
95 QOS_VALUE* qosReturn;
96 size_t qosCount;
97} SUBSCRIBE_ACK;
98
99typedef struct UNSUBSCRIBE_ACK_TAG
100{
101 uint16_t packetId;
102} UNSUBSCRIBE_ACK;
103
104typedef struct PUBLISH_ACK_TAG
105{
106 uint16_t packetId;
107} PUBLISH_ACK;
108
109#ifdef __cplusplus
110}
111#endif /* __cplusplus */
112
113#endif // MQTTCONST_H
Note: See TracBrowser for help on using the repository browser.