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

version 1.1.1.1.2.19, 2011/11/22 14:19:48 version 1.1.1.1.2.33, 2011/12/09 11:46:48
Line 18  struct mqtthdr { Line 18  struct mqtthdr {
 } __packed;  } __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 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_MAX           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 78  typedef union { Line 95  typedef union {
 } mqtt_v_t;  } mqtt_v_t;
   
 typedef struct {  typedef struct {
        mqtt_v_t        sub_sb;        unsigned char   sub_ret;
        char            *sub_data;        struct __sbuf   sub_topic;
        unsigned char   sub_qos;        struct __sbuf   sub_value;
 } mqtt_subscr_t;  } mqtt_subscr_t;
   
 typedef struct {  typedef struct {
Line 91  typedef struct { Line 108  typedef struct {
   
 typedef unsigned char mqtthdr_protover_t;  typedef unsigned char mqtthdr_protover_t;
   
typedef struct {typedef union {
        unsigned char   reserved:1,        struct {
                        clean_sess:1,                unsigned char   reserved:1,
                        will_flg:1,                                clean_sess:1,
                        will_qos:2,                                will_flg:1,
                        will_retain:1,                                will_qos:2,
                        password:1,                                will_retain:1,
                        username:1;                                password:1,
                                 username:1;
         };
         unsigned char           flags;
 } __packed mqtthdr_connflgs_t;  } __packed mqtthdr_connflgs_t;
   
 typedef struct {  typedef struct {
Line 114  typedef struct { Line 134  typedef struct {
         unsigned short  msg_len;          unsigned short  msg_len;
 } mqtt_msg_t;  } mqtt_msg_t;
   
   /* MQTT dispatcher callbacks */
   
   typedef int (*mqtt_cb_t)(void *);
   
   
 // -------------------------------------------------------  // -------------------------------------------------------
 // mqtt_GetErrno() Get error code of last operation  // mqtt_GetErrno() Get error code of last operation
 inline int mqtt_GetErrno();  inline int mqtt_GetErrno();
Line 157  inline unsigned int mqtt_encodeLen(unsigned int num); Line 181  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 from MQTT header
  * @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(unsigned int len, char *n);inline unsigned int mqtt_decodeLen(void * __restrict len, int * __restrict n);
 /*  /*
  * mqtt_sizeLen Return sizeof len field   * mqtt_sizeLen Return sizeof len field
  *   *
Line 193  inline void mqtt_subFree(mqtt_subscr_t ** __restrict s Line 217  inline void mqtt_subFree(mqtt_subscr_t ** __restrict s
  * 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);  inline mqtt_subscr_t *mqtt_subAlloc(unsigned short num);
   /*
    * mqtt_subRealloc() Reallocate array from subscribe variables
    *
    * @subs = Subscribe array
    * @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);
   
   
   /*** SENDER FUNCTIONS ***/
   
 /*  /*
  * mqtt_msgCONNECT() Create CONNECT message   * mqtt_msgCONNECT() Create CONNECT message
  *   *
Line 255  int mqtt_msgPINGRESP(mqtt_msg_t * __restrict buf); Line 290  int mqtt_msgPINGRESP(mqtt_msg_t * __restrict buf);
  * @datlen = Publish data length   * @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 char Dup, unsigned char QOS, unsigned char Retain,                 unsigned short msgID, unsigned char Dup, unsigned char QOS, 
                const void *pData, unsigned short datlen);                unsigned char Retain, const void *pData, int datlen);
 /*  /*
  * mqtt_msgPUBACK() Create PUBACK message   * mqtt_msgPUBACK() Create PUBACK message
  *   *
Line 335  mqtt_msgUNSUBSCRIBE(mqtt_msg_t * __restrict buf, mqtt_ Line 370  mqtt_msgUNSUBSCRIBE(mqtt_msg_t * __restrict buf, mqtt_
  * return: -1 error or >-1 message size for send   * return: -1 error or >-1 message size for send
  */   */
 int mqtt_msgUNSUBACK(mqtt_msg_t * __restrict buf, unsigned short msgID);  int mqtt_msgUNSUBACK(mqtt_msg_t * __restrict buf, unsigned short msgID);
   
   
   /*** RECEIVER FUNCTIONS ***/
   
   /*
    * mqtt_readCONNECT() Read elements from CONNECT message
    *
    * @buf = Message buffer
    * @kasec = Keep Alive in seconds for current connection
    * @psConnID = ConnectID
    * @connLen = ConnectID length
    * @psUser = Username if !=NULL
    * @userLen = Username length
    * @psPass = Password for Username, only if csUser is set
    * @passLen = Password length
    * @psWillTopic = Will Topic if !=NULL Will Flags set into message and must be free()
    * @psWillMessage = Will Message, may be NULL if !NULL must be free() after use!
    * return: .reserved == 1 is error or == 0 connection flags & msg ok
    */
   mqtthdr_connack_t mqtt_readCONNECT(mqtt_msg_t * __restrict buf, unsigned short *kasec, 
                   char * __restrict psConnID, int connLen, 
                   char * __restrict psUser, int userLen, char * __restrict psPass, int passLen,  
                   char ** __restrict psWillTopic, char ** __restrict psWillMessage);
   /*
    * mqtt_readCONNACK() Read CONNACK message
    *
    * @buf = Message buffer
    * return: -1 error or >-1 CONNECT message return code
    */
   unsigned char mqtt_readCONNACK(mqtt_msg_t * __restrict buf);
   /*
    * mqtt_readDISCONNECT() Read DISCONNECT message
    *
    * @buf = Message buffer
    * return: -1 error, 0 ok, >0 undefined result
    */
   int mqtt_readDISCONNECT(mqtt_msg_t * __restrict buf);
   /*
    * mqtt_readPINGREQ() Read PINGREQ message
    *
    * @buf = Message buffer
    * return: -1 error, 0 ok, >0 undefined result
    */
   int mqtt_readPINGREQ(mqtt_msg_t * __restrict buf);
   /*
    * mqtt_readPINGRESP() Read PINGRESP message
    *
    * @buf = Message buffer
    * return: -1 error, 0 ok, >0 undefined result
    */
   int mqtt_readPINGRESP(mqtt_msg_t * __restrict buf);
   
   /*
    * mqtt_readPUBLISH() Read PUBLISH message
    *
    * @buf = Message buffer
    * @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
    */
   struct mqtthdr *mqtt_readPUBLISH(mqtt_msg_t * __restrict buf, char * __restrict psTopic, 
                   int topicLen, unsigned short *msgID, void * __restrict pData, int *datLen);
   /*
    * mqtt_readPUBACK() Read PUBACK message
    *
    * @buf = Message buffer
    * return: -1 error or MessageID
    */
   u_short mqtt_readPUBACK(mqtt_msg_t * __restrict buf);
   /*
    * mqtt_readPUBREC() Read PUBREC message
    *
    * @buf = Message buffer
    * return: -1 error or MessageID
    */
   u_short mqtt_readPUBREC(mqtt_msg_t * __restrict buf);
   /*
    * mqtt_readPUBREL() Read PUBREL message
    *
    * @buf = Message buffer
    * return: -1 error or MessageID
    */
   u_short mqtt_readPUBREL(mqtt_msg_t * __restrict buf);
   /*
    * mqtt_readPUBCOMP() Read PUBCOMP message
    *
    * @buf = Message buffer
    * return: -1 error or MessageID
    */
   u_short mqtt_readPUBCOMP(mqtt_msg_t * __restrict buf);
   
   /*
    * mqtt_readSUBSCRIBE() Read SUBSCRIBE message
    *
    * @buf = Message buffer
    * @msgID = MessageID
    * @subscr = Subscriptions, must be free after use with mqtt_subFree()
    * return: NULL error or !=NULL MQTT fixed header
    */
   struct mqtthdr *mqtt_readSUBSCRIBE(mqtt_msg_t * __restrict buf, unsigned short *msgID, 
                   mqtt_subscr_t **subscr);
   /*
    * mqtt_readSUBACK() Read SUBACK message
    *
    * @buf = Message buffer
    * @msgID = MessageID
    * @subqos = Subscribes QoS, must be free after use with free()
    * return: -1 error or >-1 readed subscribes QoS elements
    */
   int mqtt_readSUBACK(mqtt_msg_t * __restrict buf, u_short *msgID, unsigned char **subqos);
   /*
    * mqtt_readUNSUBSCRIBE() Read UNSUBSCRIBE message
    *
    * @buf = Message buffer
    * @msgID = MessageID
    * @subscr = Subscriptions, must be free after use with mqtt_subFree()
    * return: NULL error or !=NULL MQTT fixed header
    */
   struct mqtthdr *mqtt_readUNSUBSCRIBE(mqtt_msg_t * __restrict buf, unsigned short *msgID, 
                   mqtt_subscr_t **subscr);
   /*
    * mqtt_readUNSUBACK() Read UNSUBACK message
    *
    * @buf = Message buffer
    * return: -1 error or MessageID
    */
   u_short mqtt_readUNSUBACK(mqtt_msg_t * __restrict buf);
   
   /*** ENGINE FUNCTIONS ***/
   
   /*
    * mqttInitCallbacks() Init callback array for dispatcher
    *
    * return: NULL error or !=NULL allocated callback array, after use free with mqttFiniCallbacks()
    */
   mqtt_cb_t *mqttInitCallbacks(void);
   /*
    * mqttFiniCallbacks() Free callback array
    *
    * @cb = Callback array
    * return: none
    */
   void mqttFiniCallbacks(mqtt_cb_t ** __restrict cb);
   /*
    * MQTT_CALLBACK() Assign function to callback array for MQTT dispatcher
    *
    * @_cbs = Callback array
    * @_x = MQTT Message type, like MQTT_TYPE_* ...
    * @_func = Function
    * return: none
    */
   #define MQTT_CALLBACK(_cbs, _x, _func)  (assert((_cbs)), (_cbs)[(_x)] = (_func))
   /*
    * mqttDispatcher() MQTT Message type dispatcher
    *
    * @cb = Callback array
    * @buf = Received MQTT message
    * return: -1 error or >-1 return value from executed callback
    */
   inline int mqttDispatcher(mqtt_cb_t * __restrict cb, mqtt_msg_t * __restrict buf);
   
   
 #endif  #endif

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


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