Diff for /mqtt/inc/Attic/aitmqtt.h between versions 1.1.1.1.2.10 and 1.1.1.1.2.19

version 1.1.1.1.2.10, 2011/11/21 15:10:23 version 1.1.1.1.2.19, 2011/11/22 14:19:48
Line 2 Line 2
 #define __AITMQTT_H  #define __AITMQTT_H
   
   
 #define MQTT_DATA_MAX           268435455  
 #define MQTT_CONN_STR           "MQIsdp"  
 #define MQTT_PROTO_VER          3  
 #define MQTT_KEEPALIVE          10  
   
 /* FIXED HEADER */  /* FIXED HEADER */
   
 struct mqtthdr {  struct mqtthdr {
        struct {        union {
                unsigned char   retain:1,                 struct {
                                qos:2,                        unsigned char   retain:1, 
                                dup:1,                                        qos:2,
                                type:4;                                        dup:1,
                                         type:4;
                 };
                 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;  } __packed;
   #define MQTTHDR_MSGINIT(x)      (assert((x)), (x)->mqtt_msg.val ^= (x)->mqtt_msg.val)
   
 #define MQTT_TYPE_UNKNOWN       0       /* reserved */  
 #define MQTT_TYPE_CONNECT       1       /* client request to connect to server */  
 #define MQTT_TYPE_CONNACK       2       /* connect acknowledgment */  
 #define MQTT_TYPE_PUBLISH       3       /* publish message */  
 #define MQTT_TYPE_PUBACK        4       /* publish acknowledgment */  
 #define MQTT_TYPE_PUBREC        5       /* publish received (assured delivery part 1) */  
 #define MQTT_TYPE_PUBREL        6       /* publish release (assured delivery part 2) */  
 #define MQTT_TYPE_PUBCOMP       7       /* publish complete (assured delivery part 3) */  
 #define MQTT_TYPE_SUBSCRIBE     8       /* client subscribe request */  
 #define MQTT_TYPE_SUBACK        9       /* subscribe acknowledgment */  
 #define MQTT_TYPE_UNSUBSCRIBE   10      /* client unsubscribe request */  
 #define MQTT_TYPE_UNSUBACK      11      /* unsubscribe acknowledgment */  
 #define MQTT_TYPE_PINGREQ       12      /* PING request */  
 #define MQTT_TYPE_PINGRESP      13      /* PING response */  
 #define MQTT_TYPE_DISCONNECT    14      /* client is disconnecting */  
 #define MQTT_TYPE_RESERVED      15      /* reserved */  
   
 #define MQTT_FLAG_DUP           1       /* This flag is set when the client or server attempts to re-deliver   #define MQTT_FLAG_DUP           1       /* This flag is set when the client or server attempts to re-deliver 
                                            a PUBLISH, PUBREL, SUBSCRIBE or UNSUBSCRIBE message.                                              a PUBLISH, PUBREL, SUBSCRIBE or UNSUBSCRIBE message. 
                                            This applies to messages where the value of QoS is greater than                                              This applies to messages where the value of QoS is greater than 
Line 96  typedef union { Line 78  typedef union {
 } mqtt_v_t;  } mqtt_v_t;
   
 typedef struct {  typedef struct {
           mqtt_v_t        sub_sb;
           char            *sub_data;
           unsigned char   sub_qos;
   } mqtt_subscr_t;
   
   typedef struct {
         mqtt_v_t        var_sb;          mqtt_v_t        var_sb;
         unsigned char   var_data[0];          unsigned char   var_data[0];
 } __packed mqtthdr_var_t;  } __packed mqtthdr_var_t;
 #define MQTTHDR_VAR_SIZEOF(x)           (assert((x)), sizeof(mqtt_v_t) + ntohs((x)->var_sb.val))  #define MQTTHDR_VAR_SIZEOF(x)           (assert((x)), sizeof(mqtt_v_t) + ntohs((x)->var_sb.val))
   
 typedef unsigned char mqtthdr_protover_t;  typedef unsigned char mqtthdr_protover_t;
 typedef unsigned char mqtthdr_retcode_t;  
   
 typedef struct {  typedef struct {
         unsigned char   reserved:1,          unsigned char   reserved:1,
Line 138  inline const char *mqtt_GetError(); Line 125  inline const char *mqtt_GetError();
   
 /*  /*
  * mqtt_msgAlloc() Allocate memory for MQTT Message   * mqtt_msgAlloc() Allocate memory for MQTT Message
    *
  * @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);  inline mqtt_msg_t *mqtt_msgAlloc(unsigned short len);
 /*  /*
  * mqtt_msgFree() Free MQTT message   * mqtt_msgFree() Free MQTT message
    *
  * @msg = Message buffer   * @msg = Message buffer
  * @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
Line 151  inline mqtt_msg_t *mqtt_msgAlloc(unsigned short len); Line 140  inline mqtt_msg_t *mqtt_msgAlloc(unsigned short len);
 inline void mqtt_msgFree(mqtt_msg_t ** __restrict msg, int all);  inline void mqtt_msgFree(mqtt_msg_t ** __restrict msg, int all);
 /*  /*
  * mqtt_msgRealloc() Reallocate MQTT message buffer   * mqtt_msgRealloc() Reallocate MQTT message buffer
    *
  * @msg = MQTT message   * @msg = MQTT message
  * @len = new length   * @len = new length
  * return: -1 error or >-1 old buffer length   * return: -1 error or >-1 old buffer length
Line 159  inline int mqtt_msgRealloc(mqtt_msg_t * __restrict msg Line 149  inline int mqtt_msgRealloc(mqtt_msg_t * __restrict msg
   
 /*  /*
  * mqtt_encodeLen() Encode number to MQTT length field   * mqtt_encodeLen() Encode number to MQTT length field
    *
  * @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);  inline unsigned int mqtt_encodeLen(unsigned int num);
 /*  /*
  * mqtt_decodeLen() Decode length from MQTT packet   * mqtt_decodeLen() Decode length from MQTT packet
    *
  * @len = length   * @len = length
  * @n = sizeof bytes, if !=NULL   * @n = sizeof bytes, if !=NULL
  * return: -1 error, >-1 length of message   * return: -1 error, >-1 length of message
Line 172  inline unsigned int mqtt_encodeLen(unsigned int num); Line 164  inline unsigned int mqtt_encodeLen(unsigned int num);
 inline unsigned int mqtt_decodeLen(unsigned int len, char *n);  inline unsigned int mqtt_decodeLen(unsigned int len, char *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);  inline char mqtt_sizeLen(unsigned int len);
 /*  /*
 * mqtt_str2var Create MQTT variable from string * mqtt_str2sub Create MQTT subscribe variable from string(s)
 * @csStr = string *
 * @strLen = string length * @csStr = strings
 * return: NULL error or != ok variable, must be free after use! * @strnum = number of strings elements
  * @qoses = QoS elements applied to subscribe variable, 
  *              count of elements must be equal with csStr elements
  * return: NULL error or != subscribe variables array, must be free after use with mqtt_freeSub()
  */   */
inline mqtthdr_var_t *mqtt_str2var(const unsigned char *csStr, unsigned short strLen);inline mqtt_subscr_t *mqtt_str2sub(const char **csStr, unsigned short strnum, unsigned char *qoses);
 /*
  * mqtt_subFree() Free array from subscribe variables
  *
  * @subs = Subscribe variables
  * return: none
  */
 inline void mqtt_subFree(mqtt_subscr_t ** __restrict subs);
 /*
  * mqtt_subAlloc() Create array from subscribe variables
  *
  * @num = Number of elements
  * return: NULL error or subscribe array, after use must call mqtt_subFree()
  */
 inline mqtt_subscr_t *mqtt_subAlloc(unsigned short num);
   
 /*  /*
  * mqtt_msgCONNECT() Create CONNECT message   * mqtt_msgCONNECT() Create CONNECT message
Line 211  int mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const Line 221  int mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const
  */   */
 int mqtt_msgCONNACK(mqtt_msg_t * __restrict buf, unsigned char retcode);  int mqtt_msgCONNACK(mqtt_msg_t * __restrict buf, unsigned char retcode);
 /*  /*
    * mqtt_msgDISCONNECT() Create DISCONNECT message
    *
    * @buf = Message buffer
    * return: -1 error or >-1 message size for send
    */
   int mqtt_msgDISCONNECT(mqtt_msg_t * __restrict buf);
   /*
    * mqtt_msgPINGREQ() Create PINGREQ message
    *
    * @buf = Message buffer
    * return: -1 error or >-1 message size for send
    */
   int mqtt_msgPINGREQ(mqtt_msg_t * __restrict buf);
   /*
    * mqtt_msgPINGRESP() Create PINGRESP message
    *
    * @buf = Message buffer
    * return: -1 error or >-1 message size for send
    */
   int mqtt_msgPINGRESP(mqtt_msg_t * __restrict buf);
   
   /*
  * mqtt_msgPUBLISH() Create PUBLISH message   * mqtt_msgPUBLISH() Create PUBLISH message
  *   *
  * @buf = Message buffer   * @buf = Message buffer
Line 219  int mqtt_msgCONNACK(mqtt_msg_t * __restrict buf, unsig Line 251  int mqtt_msgCONNACK(mqtt_msg_t * __restrict buf, unsig
  * @Dup = Duplicate message   * @Dup = Duplicate message
  * @QOS = QoS   * @QOS = QoS
  * @Retain = Retain message   * @Retain = Retain message
    * @pData = Publish data into topic
    * @datlen = Publish data length
  * return: -1 error or >-1 message size for send   * return: -1 error or >-1 message size for send
  */   */
 int mqtt_msgPUBLISH(mqtt_msg_t * __restrict buf, const char *csTopic, unsigned short msgID,   int mqtt_msgPUBLISH(mqtt_msg_t * __restrict buf, const char *csTopic, unsigned short msgID, 
                unsigned char Dup, unsigned char QOS, unsigned char Retain);                unsigned char Dup, unsigned char QOS, unsigned char Retain
                 const void *pData, unsigned short datlen);
 /*  /*
  * mqtt_msgPUBACK() Create PUBACK message   * mqtt_msgPUBACK() Create PUBACK message
  *   *
Line 255  inline int mqtt_msgPUBREL(mqtt_msg_t * __restrict buf, Line 290  inline int mqtt_msgPUBREL(mqtt_msg_t * __restrict buf,
  * 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);  inline int mqtt_msgPUBCOMP(mqtt_msg_t * __restrict buf, unsigned short msgID);
   
   /*
    * mqtt_msgSUBSCRIBE() Create SUBSCRIBE message
    *
    * @buf = Message buffer
    * @Topics = MQTT subscription topics
    * @msgID = MessageID
    * @Dup = Duplicate message
    * @QOS = QoS
    * return: -1 error or >-1 message size for send
    */
   int
   mqtt_msgSUBSCRIBE(mqtt_msg_t * __restrict buf, mqtt_subscr_t * __restrict Topics, 
                   unsigned short msgID, unsigned char Dup, unsigned char QOS);
   /*
    * mqtt_msgSUBACK() Create SUBACK message
    *
    * @buf = Message buffer
    * @Topics = MQTT subscription topics
    * @msgID = MessageID
    * return: -1 error or >-1 message size for send
    */
   int mqtt_msgSUBACK(mqtt_msg_t * __restrict buf, mqtt_subscr_t * __restrict Topics, 
                   unsigned short msgID);
   /*
    * mqtt_msgUNSUBSCRIBE() Create UNSUBSCRIBE message
    *
    * @buf = Message buffer
    * @Topics = MQTT subscription topics
    * @msgID = MessageID
    * @Dup = Duplicate message
    * @QOS = QoS
    * return: -1 error or >-1 message size for send
    */
   int
   mqtt_msgUNSUBSCRIBE(mqtt_msg_t * __restrict buf, mqtt_subscr_t * __restrict Topics, 
                   unsigned short msgID, unsigned char Dup, unsigned char QOS);
   /*
    * mqtt_msgUNSUBACK() Create UNSUBACK message
    *
    * @buf = Message buffer
    * @msgID = MessageID
    * return: -1 error or >-1 message size for send
    */
   int mqtt_msgUNSUBACK(mqtt_msg_t * __restrict buf, unsigned short msgID);
   
   
 #endif  #endif

Removed from v.1.1.1.1.2.10  
changed lines
  Added in v.1.1.1.1.2.19


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