Microchip® Advanced Software Framework

pahomqtt/MQTTPacket/MQTTSubscribeClient.c File Reference
#include "MQTTPacket.h"
#include "StackTrace.h"
#include <string.h>

Functions

int MQTTDeserialize_suback (unsigned short *packetid, int maxcount, int *count, int grantedQoSs[], unsigned char *buf, int buflen)
 Deserializes the supplied (wire) buffer into suback data. More...
 
int MQTTSerialize_subscribe (unsigned char *buf, int buflen, unsigned char dup, unsigned short packetid, int count, MQTTString topicFilters[], int requestedQoSs[])
 Serializes the supplied subscribe data into the supplied buffer, ready for sending. More...
 
int MQTTSerialize_subscribeLength (int count, MQTTString topicFilters[])
 Determines the length of the MQTT subscribe packet that would be produced using the supplied parameters. More...
 

int MQTTDeserialize_suback ( unsigned short *  packetid,
int  maxcount,
int *  count,
int  grantedQoSs[],
unsigned char *  buf,
int  buflen 
)

Deserializes the supplied (wire) buffer into suback data.

Parameters
packetidreturned integer - the MQTT packet identifier
maxcount- the maximum number of members allowed in the grantedQoSs array
countreturned integer - number of members in the grantedQoSs array
grantedQoSsreturned array of integers - the granted qualities of service
bufthe raw buffer data, of the correct length determined by the remaining length field
buflenthe length in bytes of the data in the supplied buffer
Returns
error code. 1 is success, 0 is failure

References MQTTHeader::bits, buf, MQTTHeader::byte, FUNC_ENTRY, FUNC_EXIT_RC, header, MQTTPacket_decodeBuf(), NULL, readChar(), readInt(), SUBACK, and MQTTHeader::type.

Referenced by MQTTFormat_toClientString(), MQTTResubscribe(), and MQTTSubscribe().

int MQTTSerialize_subscribe ( unsigned char *  buf,
int  buflen,
unsigned char  dup,
unsigned short  packetid,
int  count,
MQTTString  topicFilters[],
int  requestedQoSs[] 
)

Serializes the supplied subscribe data into the supplied buffer, ready for sending.

Parameters
bufthe buffer into which the packet will be serialized
buflenthe length in bytes of the supplied bufferr
dupinteger - the MQTT dup flag
packetidinteger - the MQTT packet identifier
count- number of members in the topicFilters and reqQos arrays
topicFilters- array of topic filter names
requestedQoSs- array of requested QoS
Returns
the length of the serialized data. <= 0 indicates error

References MQTTHeader::bits, buf, MQTTHeader::byte, count, MQTTHeader::dup, FUNC_ENTRY, FUNC_EXIT_RC, header, i, MQTTPACKET_BUFFER_TOO_SHORT, MQTTPacket_encode(), MQTTPacket_len(), MQTTSerialize_subscribeLength(), ptr, MQTTHeader::qos, SUBSCRIBE, MQTTHeader::type, writeChar(), writeInt(), and writeMQTTString().

Referenced by MQTTResubscribe(), and MQTTSubscribe().

int MQTTSerialize_subscribeLength ( int  count,
MQTTString  topicFilters[] 
)

Determines the length of the MQTT subscribe packet that would be produced using the supplied parameters.

Parameters
countthe number of topic filter strings in topicFilters
topicFiltersthe array of topic filter strings to be used in the publish
Returns
the length of buffer needed to contain the serialized version of the packet

References count, i, len, and MQTTstrlen().

Referenced by MQTTSerialize_subscribe().