Paho Asynchronous MQTT C Client Library
MQTTClientPersistence.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (c) 2009, 2020 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 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 
56 /*
58 */
59 #if !defined(MQTTCLIENTPERSISTENCE_H)
60 #define MQTTCLIENTPERSISTENCE_H
61 /*
63 */
64 
69 #define MQTTCLIENT_PERSISTENCE_DEFAULT 0
74 #define MQTTCLIENT_PERSISTENCE_NONE 1
79 #define MQTTCLIENT_PERSISTENCE_USER 2
80 
85 #define MQTTCLIENT_PERSISTENCE_ERROR -2
86 
113 typedef int (*Persistence_open)(void** handle, const char* clientID, const char* serverURI, void* context);
114 
123 typedef int (*Persistence_close)(void* handle);
124 
140 typedef int (*Persistence_put)(void* handle, char* key, int bufcount, char* buffers[], int buflens[]);
141 
156 typedef int (*Persistence_get)(void* handle, char* key, char** buffer, int* buflen);
157 
169 typedef int (*Persistence_remove)(void* handle, char* key);
170 
186 typedef int (*Persistence_keys)(void* handle, char*** keys, int* nkeys);
187 
197 typedef int (*Persistence_clear)(void* handle);
198 
208 typedef int (*Persistence_containskey)(void* handle, char* key);
209 
215 typedef struct {
219  void* context;
253 
254 
264 typedef int MQTTPersistence_beforeWrite(void* context, int bufcount, char* buffers[], int buflens[]);
265 
266 
275 typedef int MQTTPersistence_afterRead(void* context, char** buffer, int* buflen);
276 
277 #endif
int(* Persistence_keys)(void *handle, char ***keys, int *nkeys)
Returns the keys in this persistent data store.
Definition: MQTTClientPersistence.h:186
int(* Persistence_close)(void *handle)
Close the persistent store referred to by the handle.
Definition: MQTTClientPersistence.h:123
int(* Persistence_put)(void *handle, char *key, int bufcount, char *buffers[], int buflens[])
Put the specified data into the persistent store.
Definition: MQTTClientPersistence.h:140
int(* Persistence_open)(void **handle, const char *clientID, const char *serverURI, void *context)
Initialize the persistent store.
Definition: MQTTClientPersistence.h:113
int(* Persistence_remove)(void *handle, char *key)
Remove the data for the specified key from the store.
Definition: MQTTClientPersistence.h:169
int(* Persistence_containskey)(void *handle, char *key)
Returns whether any data has been persisted using the specified key.
Definition: MQTTClientPersistence.h:208
int MQTTPersistence_beforeWrite(void *context, int bufcount, char *buffers[], int buflens[])
Definition: MQTTClientPersistence.h:264
int(* Persistence_clear)(void *handle)
Clears the persistence store, so that it no longer contains any persisted data.
Definition: MQTTClientPersistence.h:197
int(* Persistence_get)(void *handle, char *key, char **buffer, int *buflen)
Retrieve the specified data from the persistent store.
Definition: MQTTClientPersistence.h:156
int MQTTPersistence_afterRead(void *context, char **buffer, int *buflen)
Definition: MQTTClientPersistence.h:275
A structure containing the function pointers to a persistence implementation and the context or state...
Definition: MQTTClientPersistence.h:215
Persistence_open popen
Definition: MQTTClientPersistence.h:223
Persistence_keys pkeys
Definition: MQTTClientPersistence.h:243
Persistence_put pput
Definition: MQTTClientPersistence.h:231
Persistence_get pget
Definition: MQTTClientPersistence.h:235
Persistence_remove premove
Definition: MQTTClientPersistence.h:239
Persistence_close pclose
Definition: MQTTClientPersistence.h:227
Persistence_clear pclear
Definition: MQTTClientPersistence.h:247
Persistence_containskey pcontainskey
Definition: MQTTClientPersistence.h:251
void * context
Definition: MQTTClientPersistence.h:219