Diff for /libaitmqtt/inc/aitmqtt.h between versions 1.2 and 1.3.4.1

version 1.2, 2012/06/20 15:02:23 version 1.3.4.1, 2016/09/14 15:52:36
Line 12  terms: Line 12  terms:
 All of the documentation and software included in the ELWIX and AITNET  All of the documentation and software included in the ELWIX and AITNET
 Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>  Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org>
   
Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012Copyright 2004 - 2016
         by Michael Pounov <misho@elwix.org>.  All rights reserved.          by Michael Pounov <misho@elwix.org>.  All rights reserved.
   
 Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
Line 69  struct mqtthdr { Line 69  struct mqtthdr {
                 unsigned char           val;                  unsigned char           val;
         } mqtt_msg;          } mqtt_msg;
         unsigned char                   mqtt_len[1];    /* may be grow to 4 bytes */          unsigned char                   mqtt_len[1];    /* may be grow to 4 bytes */
} __packed;} __attribute__((packed));
 #define MQTTHDR_MSGINIT(x)      (assert((x)), (x)->mqtt_msg.val ^= (x)->mqtt_msg.val)  #define MQTTHDR_MSGINIT(x)      (assert((x)), (x)->mqtt_msg.val ^= (x)->mqtt_msg.val)
 #define MQTTHDR_DATA_SIZEOF(x)  (assert((x)), mqtt_decodeLen((x)->mqtt_len, NULL))  #define MQTTHDR_DATA_SIZEOF(x)  (assert((x)), mqtt_decodeLen((x)->mqtt_len, NULL))
   
Line 170  typedef struct { Line 170  typedef struct {
 typedef struct {  typedef struct {
         mqtt_len_t      var_sb;          mqtt_len_t      var_sb;
         unsigned char   var_data[0];          unsigned char   var_data[0];
} __packed mqtthdr_var_t;} __attribute__((packed)) mqtthdr_var_t;
 #define MQTTHDR_VAR_SIZEOF(x)           (assert((x)), sizeof(mqtt_len_t) + ntohs((x)->var_sb.val))  #define MQTTHDR_VAR_SIZEOF(x)           (assert((x)), sizeof(mqtt_len_t) + ntohs((x)->var_sb.val))
   
 typedef unsigned char mqtthdr_protover_t;  typedef unsigned char mqtthdr_protover_t;
Line 186  typedef union { Line 186  typedef union {
                                 username:1;                                  username:1;
         };          };
         unsigned char           flags;          unsigned char           flags;
} __packed mqtthdr_connflgs_t;} __attribute__((packed)) mqtthdr_connflgs_t;
   
 typedef struct {  typedef struct {
         unsigned char   reserved;          unsigned char   reserved;
         unsigned char   retcode;          unsigned char   retcode;
} __packed mqtthdr_connack_t;} __attribute__((packed)) mqtthdr_connack_t;
   
   
 // -------------------------------------------------------  // -------------------------------------------------------
 // mqtt_GetErrno() Get error code of last operation  // mqtt_GetErrno() Get error code of last operation
inline int mqtt_GetErrno();int mqtt_GetErrno();
 // mqtt_GetError() Get error text of last operation  // mqtt_GetError() Get error text of last operation
inline const char *mqtt_GetError();const char *mqtt_GetError();
 // -------------------------------------------------------  // -------------------------------------------------------
   
   
Line 208  inline const char *mqtt_GetError(); Line 208  inline const char *mqtt_GetError();
  * @len = >0 Allocate buffer with length   * @len = >0 Allocate buffer with length
  * return: NULL error or Message, after use must call mqtt_msgFree() with all!=0   * return: NULL error or Message, after use must call mqtt_msgFree() with all!=0
  */   */
inline mqtt_msg_t *mqtt_msgAlloc(unsigned short len);mqtt_msg_t *mqtt_msgAlloc(unsigned short len);
 /*  /*
  * mqtt_msgFree() Free MQTT message   * mqtt_msgFree() Free MQTT message
  *   *
Line 216  inline mqtt_msg_t *mqtt_msgAlloc(unsigned short len); Line 216  inline mqtt_msg_t *mqtt_msgAlloc(unsigned short len);
  * @all = !=0 Destroy entire message, if MQTT Message allocated with mqtt_msgAlloc()   * @all = !=0 Destroy entire message, if MQTT Message allocated with mqtt_msgAlloc()
  * return: none   * return: none
  */   */
inline void mqtt_msgFree(mqtt_msg_t ** __restrict msg, int all);void mqtt_msgFree(mqtt_msg_t ** __restrict msg, int all);
 /*  /*
  * mqtt_msgRealloc() Reallocate MQTT message buffer   * mqtt_msgRealloc() Reallocate MQTT message buffer
  *   *
Line 224  inline void mqtt_msgFree(mqtt_msg_t ** __restrict msg, Line 224  inline void mqtt_msgFree(mqtt_msg_t ** __restrict msg,
  * @len = new length   * @len = new length
  * return: -1 error or >-1 old buffer length   * return: -1 error or >-1 old buffer length
  */   */
inline int mqtt_msgRealloc(mqtt_msg_t * __restrict msg, unsigned short len);int mqtt_msgRealloc(mqtt_msg_t * __restrict msg, unsigned short len);
 /*  /*
  * mqtt_msgDup() - Duplicate message buffer   * mqtt_msgDup() - Duplicate message buffer
  *   *
  * @msg = Message   * @msg = Message
  * return: NULL error or !=NULL duplicated message, after use must call mqtt_msgFree() with all!=0   * 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_msg_t *mqtt_msgDup(mqtt_msg_t * __restrict msg);
   
 /*  /*
  * mqtt_expandTopic() - Expanding topic to regular expression   * mqtt_expandTopic() - Expanding topic to regular expression
Line 261  int mqtt_sqlTopic(const char *csInput, char * __restri Line 261  int mqtt_sqlTopic(const char *csInput, char * __restri
  * @num = number for encode   * @num = number for encode
  * return: -1 error or >-1 length   * return: -1 error or >-1 length
  */   */
inline unsigned int mqtt_encodeLen(unsigned int num);unsigned int mqtt_encodeLen(unsigned int num);
 /*  /*
  * mqtt_decodeLen() Decode length from MQTT packet   * mqtt_decodeLen() Decode length from MQTT packet
  *   *
Line 269  inline unsigned int mqtt_encodeLen(unsigned int num); Line 269  inline unsigned int mqtt_encodeLen(unsigned int num);
  * @n = sizeof bytes, if !=NULL   * @n = sizeof bytes, if !=NULL
  * return: -1 error, >-1 length of message   * return: -1 error, >-1 length of message
  */   */
inline unsigned int mqtt_decodeLen(void * __restrict len, int * __restrict n);unsigned int mqtt_decodeLen(void * __restrict len, int * __restrict n);
 /*  /*
  * mqtt_sizeLen Return sizeof len field   * mqtt_sizeLen Return sizeof len field
  *   *
  * @len = length   * @len = length
  * return: -1 error, >-1 sizeof len in bytes   * return: -1 error, >-1 sizeof len in bytes
  */   */
inline char mqtt_sizeLen(unsigned int len);char mqtt_sizeLen(unsigned int len);
 /*  /*
  * mqtt_pktLen() - Get total packet length   * mqtt_pktLen() - Get total packet length
  *   *
  * @hdr = MQTT packet header   * @hdr = MQTT packet header
  * return: packet length   * return: packet length
  */   */
inline unsigned int mqtt_pktLen(struct mqtthdr * __restrict hdr);unsigned int mqtt_pktLen(struct mqtthdr * __restrict hdr);
 /*  /*
  * mqtt_str2subs Create MQTT subscribe variable from string(s)   * mqtt_str2subs Create MQTT subscribe variable from string(s)
  *   *
Line 293  inline unsigned int mqtt_pktLen(struct mqtthdr * __res Line 293  inline unsigned int mqtt_pktLen(struct mqtthdr * __res
  *              count of elements must be equal with csStr elements   *              count of elements must be equal with csStr elements
  * return: NULL error or != subscribe variables array, must be free after use with mqtt_freeSub()   * return: NULL error or != subscribe variables array, must be free after use with mqtt_freeSub()
  */   */
inline mqtt_subscr_t *mqtt_str2subs(const char **csStr, unsigned short strnum, mqtt_subscr_t *mqtt_str2subs(const char **csStr, unsigned short strnum, 
                 unsigned char *qoses);                  unsigned char *qoses);
 /*  /*
  * mqtt_subFree() Free array from subscribe variables   * mqtt_subFree() Free array from subscribe variables
Line 301  inline mqtt_subscr_t *mqtt_str2subs(const char **csStr Line 301  inline mqtt_subscr_t *mqtt_str2subs(const char **csStr
  * @subs = Subscribe variables   * @subs = Subscribe variables
  * return: none   * return: none
  */   */
inline void mqtt_subFree(mqtt_subscr_t ** __restrict subs);void mqtt_subFree(mqtt_subscr_t ** __restrict subs);
 /*  /*
  * mqtt_subAlloc() Create array from subscribe variables   * mqtt_subAlloc() Create array from subscribe variables
  *   *
  * @num = Number of elements   * @num = Number of elements
  * return: NULL error or subscribe array, after use must call mqtt_subFree()   * return: NULL error or subscribe array, after use must call mqtt_subFree()
  */   */
inline mqtt_subscr_t *mqtt_subAlloc(unsigned short num);mqtt_subscr_t *mqtt_subAlloc(unsigned short num);
 /*  /*
  * mqtt_subRealloc() Reallocate array from subscribe variables   * mqtt_subRealloc() Reallocate array from subscribe variables
  *   *
Line 316  inline mqtt_subscr_t *mqtt_subAlloc(unsigned short num Line 316  inline mqtt_subscr_t *mqtt_subAlloc(unsigned short num
  * @num = Number of elements   * @num = Number of elements
  * return: NULL error or subscribe array, after use must call mqtt_subFree()   * 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);mqtt_subscr_t *mqtt_subRealloc(mqtt_subscr_t ** __restrict subs, unsigned short num);
 /*  /*
  * mqtt_subCopy() - Copy subscription structure to another one   * mqtt_subCopy() - Copy subscription structure to another one
  *   *
Line 324  inline mqtt_subscr_t *mqtt_subRealloc(mqtt_subscr_t ** Line 324  inline mqtt_subscr_t *mqtt_subRealloc(mqtt_subscr_t **
  * @src = source subscription   * @src = source subscription
  * return: =NULL error or !=NULL successful copied a structure   * 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);mqtt_subscr_t *mqtt_subCopy(mqtt_subscr_t * __restrict dst, mqtt_subscr_t * __restrict src);
   
   
 /*** SENDER FUNCTIONS ***/  /*** SENDER FUNCTIONS ***/
Line 401  int mqtt_msgPUBLISH(mqtt_msg_t * __restrict buf, const Line 401  int mqtt_msgPUBLISH(mqtt_msg_t * __restrict buf, const
  * @msgID = MessageID   * @msgID = MessageID
  * return: -1 error or >-1 message size for send   * return: -1 error or >-1 message size for send
  */   */
inline int mqtt_msgPUBACK(mqtt_msg_t * __restrict buf, unsigned short msgID);int mqtt_msgPUBACK(mqtt_msg_t * __restrict buf, unsigned short msgID);
 /*  /*
  * mqtt_msgPUBREC() Create PUBREC message   * mqtt_msgPUBREC() Create PUBREC message
  *   *
Line 409  inline int mqtt_msgPUBACK(mqtt_msg_t * __restrict buf, Line 409  inline int mqtt_msgPUBACK(mqtt_msg_t * __restrict buf,
  * @msgID = MessageID   * @msgID = MessageID
  * return: -1 error or >-1 message size for send   * return: -1 error or >-1 message size for send
  */   */
inline int mqtt_msgPUBREC(mqtt_msg_t * __restrict buf, unsigned short msgID);int mqtt_msgPUBREC(mqtt_msg_t * __restrict buf, unsigned short msgID);
 /*  /*
  * mqtt_msgPUBREL() Create PUBREL message   * mqtt_msgPUBREL() Create PUBREL message
  *   *
Line 417  inline int mqtt_msgPUBREC(mqtt_msg_t * __restrict buf, Line 417  inline int mqtt_msgPUBREC(mqtt_msg_t * __restrict buf,
  * @msgID = MessageID   * @msgID = MessageID
  * return: -1 error or >-1 message size for send   * return: -1 error or >-1 message size for send
  */   */
inline int mqtt_msgPUBREL(mqtt_msg_t * __restrict buf, unsigned short msgID);int mqtt_msgPUBREL(mqtt_msg_t * __restrict buf, unsigned short msgID);
 /*  /*
  * mqtt_msgPUBCOMP() Create PUBCOMP message   * mqtt_msgPUBCOMP() Create PUBCOMP message
  *   *
Line 425  inline int mqtt_msgPUBREL(mqtt_msg_t * __restrict buf, Line 425  inline int mqtt_msgPUBREL(mqtt_msg_t * __restrict buf,
  * @msgID = MessageID   * @msgID = MessageID
  * return: -1 error or >-1 message size for send   * return: -1 error or >-1 message size for send
  */   */
inline int mqtt_msgPUBCOMP(mqtt_msg_t * __restrict buf, unsigned short msgID);int mqtt_msgPUBCOMP(mqtt_msg_t * __restrict buf, unsigned short msgID);
   
 /*  /*
  * mqtt_msgSUBSCRIBE() Create SUBSCRIBE message   * mqtt_msgSUBSCRIBE() Create SUBSCRIBE message

Removed from v.1.2  
changed lines
  Added in v.1.3.4.1


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>