Paho Asynchronous MQTT C Client Library
MQTTProperties.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (c) 2017, 2020 IBM Corp. and others
3  *
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License v2.0
6  * and Eclipse Distribution License v1.0 which accompany this distribution.
7  *
8  * The Eclipse Public License is available at
9  * https://www.eclipse.org/legal/epl-2.0/
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(MQTTPROPERTIES_H)
18 #define MQTTPROPERTIES_H
19 
20 #include "MQTTExportDeclarations.h"
21 
22 #define MQTT_INVALID_PROPERTY_ID -2
23 
53 };
54 
61 LIBMQTT_API const char* MQTTPropertyName(enum MQTTPropertyCodes value);
62 
72 };
73 
79 LIBMQTT_API int MQTTProperty_getType(enum MQTTPropertyCodes value);
80 
84 typedef struct
85 {
86  int len;
87  char* data;
89 
90 
94 typedef struct
95 {
96  enum MQTTPropertyCodes identifier;
98  union {
99  unsigned char byte;
100  unsigned short integer2;
101  unsigned int integer4;
102  struct {
105  };
106  } value;
107 } MQTTProperty;
108 
112 typedef struct MQTTProperties
113 {
114  int count;
115  int max_count;
116  int length;
119 
120 #define MQTTProperties_initializer {0, 0, 0, NULL}
121 
128 
135 LIBMQTT_API int MQTTProperties_add(MQTTProperties* props, const MQTTProperty* prop);
136 
143 int MQTTProperties_write(char** pptr, const MQTTProperties* properties);
144 
152 int MQTTProperties_read(MQTTProperties* properties, char** pptr, char* enddata);
153 
158 LIBMQTT_API void MQTTProperties_free(MQTTProperties* properties);
159 
165 LIBMQTT_API MQTTProperties MQTTProperties_copy(const MQTTProperties* props);
166 
173 LIBMQTT_API int MQTTProperties_hasProperty(MQTTProperties *props, enum MQTTPropertyCodes propid);
174 
182 LIBMQTT_API int MQTTProperties_propertyCount(MQTTProperties *props, enum MQTTPropertyCodes propid);
183 
190 LIBMQTT_API int MQTTProperties_getNumericValue(MQTTProperties *props, enum MQTTPropertyCodes propid);
191 
200 LIBMQTT_API int MQTTProperties_getNumericValueAt(MQTTProperties *props, enum MQTTPropertyCodes propid, int index);
201 
209 
217 LIBMQTT_API MQTTProperty* MQTTProperties_getPropertyAt(MQTTProperties *props, enum MQTTPropertyCodes propid, int index);
218 
219 #endif /* MQTTPROPERTIES_H */
MQTTProperty * array
Definition: MQTTProperties.h:117
int MQTTProperties_read(MQTTProperties *properties, char **pptr, char *enddata)
Definition: MQTTProperties.h:66
int MQTTProperties_getNumericValue(MQTTProperties *props, enum MQTTPropertyCodes propid)
MQTTProperty * MQTTProperties_getPropertyAt(MQTTProperties *props, enum MQTTPropertyCodes propid, int index)
Definition: MQTTProperties.h:43
unsigned int integer4
Definition: MQTTProperties.h:101
Definition: MQTTProperties.h:71
Definition: MQTTProperties.h:39
Definition: MQTTProperties.h:46
Definition: MQTTProperties.h:33
MQTTProperties MQTTProperties_copy(const MQTTProperties *props)
int MQTTProperties_propertyCount(MQTTProperties *props, enum MQTTPropertyCodes propid)
MQTTLenString value
Definition: MQTTProperties.h:104
Definition: MQTTProperties.h:47
Definition: MQTTProperties.h:27
int MQTTProperties_hasProperty(MQTTProperties *props, enum MQTTPropertyCodes propid)
int length
Definition: MQTTProperties.h:116
Definition: MQTTProperties.h:37
char * data
Definition: MQTTProperties.h:87
int max_count
Definition: MQTTProperties.h:115
Definition: MQTTProperties.h:94
Definition: MQTTProperties.h:42
int len
Definition: MQTTProperties.h:86
Definition: MQTTProperties.h:38
unsigned short integer2
Definition: MQTTProperties.h:100
Definition: MQTTProperties.h:31
MQTTLenString data
Definition: MQTTProperties.h:103
MQTTProperty * MQTTProperties_getProperty(MQTTProperties *props, enum MQTTPropertyCodes propid)
Definition: MQTTProperties.h:41
Definition: MQTTProperties.h:84
Definition: MQTTProperties.h:34
Definition: MQTTProperties.h:35
int MQTTProperty_getType(enum MQTTPropertyCodes value)
Definition: MQTTProperties.h:28
Definition: MQTTProperties.h:44
Definition: MQTTProperties.h:30
Definition: MQTTProperties.h:112
int MQTTProperties_getNumericValueAt(MQTTProperties *props, enum MQTTPropertyCodes propid, int index)
const char * MQTTPropertyName(enum MQTTPropertyCodes value)
Definition: MQTTProperties.h:29
MQTTPropertyCodes
Definition: MQTTProperties.h:25
Definition: MQTTProperties.h:70
Definition: MQTTProperties.h:49
Definition: MQTTProperties.h:26
Definition: MQTTProperties.h:45
void MQTTProperties_free(MQTTProperties *properties)
Definition: MQTTProperties.h:36
Definition: MQTTProperties.h:65
Definition: MQTTProperties.h:68
Definition: MQTTProperties.h:69
int MQTTProperties_add(MQTTProperties *props, const MQTTProperty *prop)
struct MQTTProperties MQTTProperties
Definition: MQTTProperties.h:48
unsigned char byte
Definition: MQTTProperties.h:99
int count
Definition: MQTTProperties.h:114
MQTTPropertyTypes
Definition: MQTTProperties.h:64
int MQTTProperties_len(MQTTProperties *props)
Definition: MQTTProperties.h:40
Definition: MQTTProperties.h:32
Definition: MQTTProperties.h:67
int MQTTProperties_write(char **pptr, const MQTTProperties *properties)