--- libaitmqtt/inc/aitmqtt.h 2012/04/26 15:26:37 1.1.1.1.2.10 +++ libaitmqtt/inc/aitmqtt.h 2012/06/11 08:37:41 1.1.1.1.2.15 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitmqtt.h,v 1.1.1.1.2.10 2012/04/26 15:26:37 misho Exp $ +* $Id: aitmqtt.h,v 1.1.1.1.2.15 2012/06/11 08:37:41 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -224,6 +224,13 @@ inline void mqtt_msgFree(mqtt_msg_t ** __restrict msg, * return: -1 error or >-1 old buffer length */ inline int mqtt_msgRealloc(mqtt_msg_t * __restrict msg, unsigned short len); +/* + * mqtt_msgDup() - Duplicate message buffer + * + * @msg = Message + * return: NULL error or !=NULL duplicated message, after use must call mqtt_msgFree() with all!=0 + */ +inline mqtt_msg_t *mqtt_msgDup(mqtt_msg_t * __restrict msg); /* * mqtt_expandTopic() - Expanding topic to regular expression @@ -301,7 +308,15 @@ inline mqtt_subscr_t *mqtt_subAlloc(unsigned short num * @num = Number of elements * return: NULL error or subscribe array, after use must call mqtt_subFree() */ -inline mqtt_subscr_t *mqtt_subRealloc(mqtt_subscr_t * __restrict subs, unsigned short num); +inline mqtt_subscr_t *mqtt_subRealloc(mqtt_subscr_t ** __restrict subs, unsigned short num); +/* + * mqtt_subCopy() - Copy subscription structure to another one + * + * @dst = destination subscription + * @src = source subscription + * return: =NULL error or !=NULL successful copied a structure + */ +inline mqtt_subscr_t *mqtt_subCopy(mqtt_subscr_t * __restrict dst, mqtt_subscr_t * __restrict src); /*** SENDER FUNCTIONS ***/ @@ -507,12 +522,11 @@ int mqtt_readPINGRESP(mqtt_msg_t * __restrict buf); * @psTopic = Topic * @topicLen = Topic length * @msgID = MessageID - * @pData = Data buffer - * @datLen = Data buffer length, if *datLen == 0 allocate memory for pData - * return: NULL error or !=NULL MQTT fixed header + * @pData = Data buffer, may be NULL + * return: -1 error or !=-1 allocated data buffer length */ -struct mqtthdr *mqtt_readPUBLISH(mqtt_msg_t * __restrict buf, char * __restrict psTopic, - int topicLen, unsigned short *msgID, void * __restrict pData, int *datLen); +int mqtt_readPUBLISH(mqtt_msg_t * __restrict buf, char * __restrict psTopic, + int topicLen, unsigned short *msgID, void ** __restrict pData); /* * mqtt_readPUBACK() Read PUBACK message *