Paho MQTT C Client Library
MQTTProperties.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (c) 2017, 2024 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 #include <stdint.h>
23 
24 #define MQTT_INVALID_PROPERTY_ID -2
25 
56 };
57 
64 LIBMQTT_API const char* MQTTPropertyName(enum MQTTPropertyCodes value);
65 
75 };
76 
82 LIBMQTT_API int MQTTProperty_getType(enum MQTTPropertyCodes value);
83 
87 typedef struct
88 {
89  int len;
90  char* data;
92 
93 
97 typedef struct
98 {
99  enum MQTTPropertyCodes identifier;
101  union {
102  unsigned char byte;
103  unsigned short integer2;
104  unsigned int integer4;
105  struct {
108  };
109  } value;
110 } MQTTProperty;
111 
115 typedef struct MQTTProperties
116 {
117  int count;
118  int max_count;
119  int length;
122 
123 #define MQTTProperties_initializer {0, 0, 0, NULL}
124 
130 int MQTTProperties_len(const MQTTProperties* props);
131 
141 LIBMQTT_API int MQTTProperties_add(MQTTProperties* props, const MQTTProperty* prop);
142 
149 int MQTTProperties_write(char** pptr, const MQTTProperties* properties);
150 
158 int MQTTProperties_read(MQTTProperties* properties, char** pptr, char* enddata);
159 
164 LIBMQTT_API void MQTTProperties_free(MQTTProperties* properties);
165 
171 LIBMQTT_API MQTTProperties MQTTProperties_copy(const MQTTProperties* props);
172 
179 LIBMQTT_API int MQTTProperties_hasProperty(const MQTTProperties *props, enum MQTTPropertyCodes propid);
180 
188 LIBMQTT_API int MQTTProperties_propertyCount(const MQTTProperties *props, enum MQTTPropertyCodes propid);
189 
196 LIBMQTT_API int64_t MQTTProperties_getNumericValue(const MQTTProperties *props, enum MQTTPropertyCodes propid);
197 
206 LIBMQTT_API int64_t MQTTProperties_getNumericValueAt(const MQTTProperties *props, enum MQTTPropertyCodes propid, int index);
207 
214 LIBMQTT_API MQTTProperty* MQTTProperties_getProperty(const MQTTProperties *props, enum MQTTPropertyCodes propid);
215 
223 LIBMQTT_API MQTTProperty* MQTTProperties_getPropertyAt(const MQTTProperties *props, enum MQTTPropertyCodes propid, int index);
224 
225 #endif /* MQTTPROPERTIES_H */
MQTTProperty * array
Definition: MQTTProperties.h:120
int MQTTProperties_read(MQTTProperties *properties, char **pptr, char *enddata)
Definition: MQTTProperties.h:69
MQTTProperty * MQTTProperties_getProperty(const MQTTProperties *props, enum MQTTPropertyCodes propid)
Definition: MQTTProperties.h:46
unsigned int integer4
Definition: MQTTProperties.h:104
Definition: MQTTProperties.h:74
Definition: MQTTProperties.h:42
Definition: MQTTProperties.h:49
Definition: MQTTProperties.h:36
MQTTProperties MQTTProperties_copy(const MQTTProperties *props)
MQTTProperty * MQTTProperties_getPropertyAt(const MQTTProperties *props, enum MQTTPropertyCodes propid, int index)
MQTTLenString value
Definition: MQTTProperties.h:107
Definition: MQTTProperties.h:50
Definition: MQTTProperties.h:29
int64_t MQTTProperties_getNumericValue(const MQTTProperties *props, enum MQTTPropertyCodes propid)
int length
Definition: MQTTProperties.h:119
Definition: MQTTProperties.h:40
char * data
Definition: MQTTProperties.h:90
int max_count
Definition: MQTTProperties.h:118
int MQTTProperties_propertyCount(const MQTTProperties *props, enum MQTTPropertyCodes propid)
Definition: MQTTProperties.h:97
Definition: MQTTProperties.h:45
int len
Definition: MQTTProperties.h:89
Definition: MQTTProperties.h:41
unsigned short integer2
Definition: MQTTProperties.h:103
Definition: MQTTProperties.h:33
MQTTLenString data
Definition: MQTTProperties.h:106
Definition: MQTTProperties.h:44
Definition: MQTTProperties.h:87
Definition: MQTTProperties.h:37
Definition: MQTTProperties.h:38
int MQTTProperty_getType(enum MQTTPropertyCodes value)
int64_t MQTTProperties_getNumericValueAt(const MQTTProperties *props, enum MQTTPropertyCodes propid, int index)
Definition: MQTTProperties.h:30
Definition: MQTTProperties.h:47
Definition: MQTTProperties.h:32
Definition: MQTTProperties.h:115
const char * MQTTPropertyName(enum MQTTPropertyCodes value)
Definition: MQTTProperties.h:31
MQTTPropertyCodes
Definition: MQTTProperties.h:27
Definition: MQTTProperties.h:73
int MQTTProperties_hasProperty(const MQTTProperties *props, enum MQTTPropertyCodes propid)
Definition: MQTTProperties.h:52
Definition: MQTTProperties.h:28
Definition: MQTTProperties.h:48
void MQTTProperties_free(MQTTProperties *properties)
Definition: MQTTProperties.h:39
Definition: MQTTProperties.h:68
Definition: MQTTProperties.h:71
Definition: MQTTProperties.h:72
int MQTTProperties_add(MQTTProperties *props, const MQTTProperty *prop)
struct MQTTProperties MQTTProperties
Definition: MQTTProperties.h:51
unsigned char byte
Definition: MQTTProperties.h:102
int count
Definition: MQTTProperties.h:117
int MQTTProperties_len(const MQTTProperties *props)
MQTTPropertyTypes
Definition: MQTTProperties.h:67
Definition: MQTTProperties.h:43
Definition: MQTTProperties.h:34
Definition: MQTTProperties.h:70
Definition: MQTTProperties.h:35
int MQTTProperties_write(char **pptr, const MQTTProperties *properties)