• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*******************************************************************************
2  * Copyright (c) 2017, 2018 IBM Corp.
3  *
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License v1.0
6  * and Eclipse Distribution License v1.0 which accompany this distribution.
7  *
8  * The Eclipse Public License is available at
9  *    http://www.eclipse.org/legal/epl-v10.html
10  * and the Eclipse Distribution License is available at
11  *   http://www.eclipse.org/org/documents/edl-v10.php.
12  *
13  * Contributors:
14  *    Ian Craggs - initial API and implementation and/or initial documentation
15  *******************************************************************************/
16 
17 #if !defined(MQTTREASONCODES_H)
18 #define MQTTREASONCODES_H
19 
20 /** The MQTT V5 one byte reason code */
21 enum MQTTReasonCodes {
22   MQTTREASONCODE_SUCCESS = 0,
23   MQTTREASONCODE_NORMAL_DISCONNECTION = 0,
24   MQTTREASONCODE_GRANTED_QOS_0 = 0,
25   MQTTREASONCODE_GRANTED_QOS_1 = 1,
26   MQTTREASONCODE_GRANTED_QOS_2 = 2,
27   MQTTREASONCODE_DISCONNECT_WITH_WILL_MESSAGE = 4,
28   MQTTREASONCODE_NO_MATCHING_SUBSCRIBERS = 16,
29   MQTTREASONCODE_NO_SUBSCRIPTION_FOUND = 17,
30   MQTTREASONCODE_CONTINUE_AUTHENTICATION = 24,
31   MQTTREASONCODE_RE_AUTHENTICATE = 25,
32   MQTTREASONCODE_UNSPECIFIED_ERROR = 128,
33   MQTTREASONCODE_MALFORMED_PACKET = 129,
34   MQTTREASONCODE_PROTOCOL_ERROR = 130,
35   MQTTREASONCODE_IMPLEMENTATION_SPECIFIC_ERROR = 131,
36   MQTTREASONCODE_UNSUPPORTED_PROTOCOL_VERSION = 132,
37   MQTTREASONCODE_CLIENT_IDENTIFIER_NOT_VALID = 133,
38   MQTTREASONCODE_BAD_USER_NAME_OR_PASSWORD = 134,
39   MQTTREASONCODE_NOT_AUTHORIZED = 135,
40   MQTTREASONCODE_SERVER_UNAVAILABLE = 136,
41   MQTTREASONCODE_SERVER_BUSY = 137,
42   MQTTREASONCODE_BANNED = 138,
43   MQTTREASONCODE_SERVER_SHUTTING_DOWN = 139,
44   MQTTREASONCODE_BAD_AUTHENTICATION_METHOD = 140,
45   MQTTREASONCODE_KEEP_ALIVE_TIMEOUT = 141,
46   MQTTREASONCODE_SESSION_TAKEN_OVER = 142,
47   MQTTREASONCODE_TOPIC_FILTER_INVALID = 143,
48   MQTTREASONCODE_TOPIC_NAME_INVALID = 144,
49   MQTTREASONCODE_PACKET_IDENTIFIER_IN_USE = 145,
50   MQTTREASONCODE_PACKET_IDENTIFIER_NOT_FOUND = 146,
51   MQTTREASONCODE_RECEIVE_MAXIMUM_EXCEEDED = 147,
52   MQTTREASONCODE_TOPIC_ALIAS_INVALID = 148,
53   MQTTREASONCODE_PACKET_TOO_LARGE = 149,
54   MQTTREASONCODE_MESSAGE_RATE_TOO_HIGH = 150,
55   MQTTREASONCODE_QUOTA_EXCEEDED = 151,
56   MQTTREASONCODE_ADMINISTRATIVE_ACTION = 152,
57   MQTTREASONCODE_PAYLOAD_FORMAT_INVALID = 153,
58   MQTTREASONCODE_RETAIN_NOT_SUPPORTED = 154,
59   MQTTREASONCODE_QOS_NOT_SUPPORTED = 155,
60   MQTTREASONCODE_USE_ANOTHER_SERVER = 156,
61   MQTTREASONCODE_SERVER_MOVED = 157,
62   MQTTREASONCODE_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED = 158,
63   MQTTREASONCODE_CONNECTION_RATE_EXCEEDED = 159,
64   MQTTREASONCODE_MAXIMUM_CONNECT_TIME = 160,
65   MQTTREASONCODE_SUBSCRIPTION_IDENTIFIERS_NOT_SUPPORTED = 161,
66   MQTTREASONCODE_WILDCARD_SUBSCRIPTIONS_NOT_SUPPORTED = 162
67 };
68 
69 #if defined(WIN32) || defined(WIN64)
70   #define DLLImport __declspec(dllimport)
71   #define DLLExport __declspec(dllexport)
72 #else
73   #define DLLImport extern
74   #define DLLExport __attribute__ ((visibility ("default")))
75 #endif
76 
77 /**
78  * Returns a printable string description of an MQTT V5 reason code.
79  * @param value an MQTT V5 reason code.
80  * @return the printable string description of the input reason code.
81  * NULL if the code was not found.
82  */
83 DLLExport const char* MQTTReasonCode_toString(enum MQTTReasonCodes value);
84 
85 #endif
86