Macros | Functions
MQTTPersistence.c File Reference

Functions that apply to persistence operations. More...

#include <stdio.h>
#include <string.h>
#include "MQTTPersistence.h"
#include "MQTTPersistenceDefault.h"
#include "MQTTProtocolClient.h"
#include "Heap.h"
#include "StackTrace.h"
Include dependency graph for MQTTPersistence.c:

Go to the source code of this file.

Macros

#define MAX_NO_OF_BUFFERS   9
 

Functions

int MQTTPersistence_clear (Clients *c)
 
int MQTTPersistence_close (Clients *c)
 
int MQTTPersistence_create (MQTTClient_persistence **persistence, int type, void *pcontext)
 
int MQTTPersistence_initialize (Clients *c, const char *serverURI)
 
void MQTTPersistence_insertInOrder (List *list, void *content, size_t size)
 
static void MQTTPersistence_insertInSeqOrder (List *list, MQTTPersistence_qEntry *qEntry, size_t size)
 
int MQTTPersistence_persistQueueEntry (Clients *aclient, MQTTPersistence_qEntry *qe)
 
int MQTTPersistence_putPacket (int socket, char *buf0, size_t buf0len, int count, char **buffers, size_t *buflens, int htype, int msgId, int scr, int MQTTVersion)
 
int MQTTPersistence_remove (Clients *c, char *type, int qos, int msgId)
 
int MQTTPersistence_restoreMessageQueue (Clients *c)
 
void * MQTTPersistence_restorePacket (int MQTTVersion, char *buffer, size_t buflen)
 
int MQTTPersistence_restorePackets (Clients *c)
 
static MQTTPersistence_qEntryMQTTPersistence_restoreQueueEntry (char *buffer, size_t buflen, int MQTTVersion)
 
int MQTTPersistence_unpersistQueueEntry (Clients *client, MQTTPersistence_qEntry *qe)
 
void MQTTPersistence_wrapMsgID (Clients *client)
 

Detailed Description

Functions that apply to persistence operations.

Definition in file MQTTPersistence.c.

Macro Definition Documentation

#define MAX_NO_OF_BUFFERS   9

Definition at line 614 of file MQTTPersistence.c.

Function Documentation

int MQTTPersistence_clear ( Clients c)

Clears the persistent store.

Parameters
clientthe client as Clients.
Returns
0 if success, MQTTCLIENT_PERSISTENCE_ERROR otherwise.

Definition at line 161 of file MQTTPersistence.c.

int MQTTPersistence_close ( Clients c)

Close persistent store.

Parameters
clientthe client as Clients.
Returns
0 if success, MQTTCLIENT_PERSISTENCE_ERROR otherwise.

Definition at line 133 of file MQTTPersistence.c.

int MQTTPersistence_create ( MQTTClient_persistence **  persistence,
int  type,
void *  pcontext 
)

Creates a MQTTClient_persistence structure representing a persistence implementation.

Parameters
persistencethe MQTTClient_persistence structure.
typethe type of the persistence implementation. See MQTTClient_create.
pcontextthe context for this persistence implementation. See MQTTClient_create.
Returns
0 if success, MQTTCLIENT_PERSISTENCE_ERROR otherwise.

Definition at line 47 of file MQTTPersistence.c.

int MQTTPersistence_initialize ( Clients c,
const char *  serverURI 
)

Open persistent store and restore any persisted messages.

Parameters
clientthe client as Clients.
serverURIthe URI of the remote end.
Returns
0 if success, MQTTCLIENT_PERSISTENCE_ERROR otherwise.

Definition at line 111 of file MQTTPersistence.c.

void MQTTPersistence_insertInOrder ( List list,
void *  content,
size_t  size 
)

Inserts the specified message into the list, maintaining message ID order.

Parameters
listthe list to insert the message into.
contentthe message to add.
sizesize of the message.

Definition at line 379 of file MQTTPersistence.c.

static void MQTTPersistence_insertInSeqOrder ( List list,
MQTTPersistence_qEntry qEntry,
size_t  size 
)
static

Definition at line 767 of file MQTTPersistence.c.

int MQTTPersistence_persistQueueEntry ( Clients aclient,
MQTTPersistence_qEntry qe 
)

Definition at line 615 of file MQTTPersistence.c.

int MQTTPersistence_putPacket ( int  socket,
char *  buf0,
size_t  buf0len,
int  count,
char **  buffers,
size_t *  buflens,
int  htype,
int  msgId,
int  scr,
int  MQTTVersion 
)

Adds a record to the persistent store. This function must not be called for QoS0 messages.

Parameters
socketthe socket of the client.
buf0fixed header.
buf0lenlength of the fixed header.
countnumber of buffers representing the variable header and/or the payload.
buffersthe buffers representing the variable header and/or the payload.
buflenslength of the buffers representing the variable header and/or the payload.
htypeMQTT packet type - PUBLISH or PUBREL
msgIdthe message ID.
scr0 indicates message in the sending direction; 1 indicates message in the receiving direction.
theMQTT version being used (>= MQTTVERSION_5 means properties included)
Returns
0 if success, MQTTCLIENT_PERSISTENCE_ERROR otherwise.

Definition at line 412 of file MQTTPersistence.c.

int MQTTPersistence_remove ( Clients c,
char *  type,
int  qos,
int  msgId 
)

Deletes a record from the persistent store.

Parameters
clientthe client as Clients.
typethe type of the persisted record: PERSISTENCE_PUBLISH_SENT, PERSISTENCE_PUBREL or PERSISTENCE_PUBLISH_RECEIVED.
qosthe qos field of the message.
msgIdthe message ID.
Returns
0 if success, MQTTCLIENT_PERSISTENCE_ERROR otherwise.

Definition at line 508 of file MQTTPersistence.c.

int MQTTPersistence_restoreMessageQueue ( Clients c)

Restores a queue of messages from persistence to memory

Parameters
cthe client as Clients - the client object to restore the messages to
Returns
return code, 0 if successful

Definition at line 788 of file MQTTPersistence.c.

void* MQTTPersistence_restorePacket ( int  MQTTVersion,
char *  buffer,
size_t  buflen 
)

Returns a MQTT packet restored from persisted data.

Parameters
bufferthe persisted data.
buflenthe number of bytes of the data buffer.

Definition at line 341 of file MQTTPersistence.c.

int MQTTPersistence_restorePackets ( Clients c)

Restores the persisted records to the outbound and inbound message queues of the client.

Parameters
clientthe client as Clients.
Returns
0 if success, MQTTCLIENT_PERSISTENCE_ERROR otherwise.

Definition at line 180 of file MQTTPersistence.c.

static MQTTPersistence_qEntry * MQTTPersistence_restoreQueueEntry ( char *  buffer,
size_t  buflen,
int  MQTTVersion 
)
static

Definition at line 695 of file MQTTPersistence.c.

int MQTTPersistence_unpersistQueueEntry ( Clients client,
MQTTPersistence_qEntry qe 
)

Definition at line 597 of file MQTTPersistence.c.

void MQTTPersistence_wrapMsgID ( Clients client)

Checks whether the message IDs wrapped by looking for the largest gap between two consecutive message IDs in the outboundMsgs queue.

Parameters
clientthe client as Clients.

Definition at line 556 of file MQTTPersistence.c.



plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 04:02:49