Diff for /libaitmqtt/inc/aitmqtt.h between versions 1.1.1.1.2.1 and 1.1.1.1.2.11

version 1.1.1.1.2.1, 2012/01/26 14:44:33 version 1.1.1.1.2.11, 2012/04/27 08:12:30
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, 2011Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
         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 47  SUCH DAMAGE. Line 47  SUCH DAMAGE.
 #define __AITMQTT_H  #define __AITMQTT_H
   
   
   #define MAX_CONNID              24
   #define MAX_CRED                13
   #define MQTTMSG_MAX             65529
   #define MQTT_DATA_MAX           268435455
   
   #define MQTT_PROTO_VER          3
   #define MQTT_KEEPALIVE          10
   #define MQTT_DEFAULT_MSGID      0xDEBA
   
 /* FIXED HEADER */  /* FIXED HEADER */
   
 struct mqtthdr {  struct mqtthdr {
Line 95  struct mqtthdr { Line 104  struct mqtthdr {
 #define MQTT_QOS_EXACTLY        2       /* Exactly once, Assured delivery, =1 */  #define MQTT_QOS_EXACTLY        2       /* Exactly once, Assured delivery, =1 */
 #define MQTT_QOS_RESERVED       3       /* reserved */  #define MQTT_QOS_RESERVED       3       /* reserved */
   
   #define MQTT_QOS_DENY           0       /* Not granted QoS for SUBACK */
   #define MQTT_QOS_PASS           2       /* Granted QoS for SUBACK */
   
 #define MQTT_FLAG_RETAIN        1       /* This flag is only used on PUBLISH messages.  #define MQTT_FLAG_RETAIN        1       /* This flag is only used on PUBLISH messages.
   
                                            When a client sends a PUBLISH to a server,                                              When a client sends a PUBLISH to a server, 
Line 138  typedef struct { Line 150  typedef struct {
         unsigned short  msg_len;          unsigned short  msg_len;
 } mqtt_msg_t;  } mqtt_msg_t;
   
 /* MQTT hooks callback */  
   
 typedef void *(*mqtt_cb_t)(void *);  
   
 /* MQTT structures */  /* MQTT structures */
   
 typedef union {  typedef union {
Line 229  inline int mqtt_msgRealloc(mqtt_msg_t * __restrict msg Line 237  inline int mqtt_msgRealloc(mqtt_msg_t * __restrict msg
  */   */
 int mqtt_expandTopic(const char *csInput, char * __restrict psRegEx, int regexLen,   int mqtt_expandTopic(const char *csInput, char * __restrict psRegEx, int regexLen, 
                 unsigned char BOL, unsigned char EOL);                  unsigned char BOL, unsigned char EOL);
   /*
    * mqtt_sqlTopic() - Expanding topic to SQL search string
    *
    * @csInput = Input topic
    * @psSQL = Output to SQL search string
    * @sqlLen = Length of psSQL
    * return: -1 error, 0 changed bytes
    */
   int mqtt_sqlTopic(const char *csInput, char * __restrict psSQL, int sqlLen);
   
 /*  /*
  * mqtt_encodeLen() Encode number to MQTT length field   * mqtt_encodeLen() Encode number to MQTT length field
Line 253  inline unsigned int mqtt_decodeLen(void * __restrict l Line 270  inline unsigned int mqtt_decodeLen(void * __restrict l
  */   */
 inline char mqtt_sizeLen(unsigned int len);  inline char mqtt_sizeLen(unsigned int len);
 /*  /*
 * mqtt_str2sub Create MQTT subscribe variable from string(s) * mqtt_str2subs Create MQTT subscribe variable from string(s)
  *   *
 * @csStr = strings * @csStr = null terminated string array
 * @strnum = number of strings elements * @strnum = copy at most number of strings elements
  * @qoses = QoS elements applied to subscribe variable,    * @qoses = QoS elements applied to subscribe variable, 
  *              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_str2sub(const char **csStr, unsigned short strnum, unsigned char *qoses);inline mqtt_subscr_t *mqtt_str2subs(const char **csStr, unsigned short strnum, 
                 unsigned char *qoses);
 /*  /*
  * mqtt_subFree() Free array from subscribe variables   * mqtt_subFree() Free array from subscribe variables
  *   *
Line 283  inline mqtt_subscr_t *mqtt_subAlloc(unsigned short num Line 301  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);inline mqtt_subscr_t *mqtt_subRealloc(mqtt_subscr_t ** __restrict subs, unsigned short num);
   
   
 /*** SENDER FUNCTIONS ***/  /*** SENDER FUNCTIONS ***/
Line 501  struct mqtthdr *mqtt_readPUBLISH(mqtt_msg_t * __restri Line 519  struct mqtthdr *mqtt_readPUBLISH(mqtt_msg_t * __restri
  * @buf = Message buffer   * @buf = Message buffer
  * return: -1 error or MessageID   * return: -1 error or MessageID
  */   */
u_short mqtt_readPUBACK(mqtt_msg_t * __restrict buf);unsigned short mqtt_readPUBACK(mqtt_msg_t * __restrict buf);
 /*  /*
  * mqtt_readPUBREC() Read PUBREC message   * mqtt_readPUBREC() Read PUBREC message
  *   *
  * @buf = Message buffer   * @buf = Message buffer
  * return: -1 error or MessageID   * return: -1 error or MessageID
  */   */
u_short mqtt_readPUBREC(mqtt_msg_t * __restrict buf);unsigned short mqtt_readPUBREC(mqtt_msg_t * __restrict buf);
 /*  /*
  * mqtt_readPUBREL() Read PUBREL message   * mqtt_readPUBREL() Read PUBREL message
  *   *
  * @buf = Message buffer   * @buf = Message buffer
  * return: -1 error or MessageID   * return: -1 error or MessageID
  */   */
u_short mqtt_readPUBREL(mqtt_msg_t * __restrict buf);unsigned short mqtt_readPUBREL(mqtt_msg_t * __restrict buf);
 /*  /*
  * mqtt_readPUBCOMP() Read PUBCOMP message   * mqtt_readPUBCOMP() Read PUBCOMP message
  *   *
  * @buf = Message buffer   * @buf = Message buffer
  * return: -1 error or MessageID   * return: -1 error or MessageID
  */   */
u_short mqtt_readPUBCOMP(mqtt_msg_t * __restrict buf);unsigned short mqtt_readPUBCOMP(mqtt_msg_t * __restrict buf);
   
 /*  /*
  * mqtt_readSUBSCRIBE() Read SUBSCRIBE message   * mqtt_readSUBSCRIBE() Read SUBSCRIBE message
Line 530  u_short mqtt_readPUBCOMP(mqtt_msg_t * __restrict buf); Line 548  u_short mqtt_readPUBCOMP(mqtt_msg_t * __restrict buf);
  * @buf = Message buffer   * @buf = Message buffer
  * @msgID = MessageID   * @msgID = MessageID
  * @subscr = Subscriptions, must be free after use with mqtt_subFree()   * @subscr = Subscriptions, must be free after use with mqtt_subFree()
 * return: NULL error or !=NULL MQTT fixed header * return: -1 error or >-1 elements into subscr
  */   */
struct mqtthdr *mqtt_readSUBSCRIBE(mqtt_msg_t * __restrict buf, unsigned short *msgID, int mqtt_readSUBSCRIBE(mqtt_msg_t * __restrict buf, unsigned short *msgID, 
                 mqtt_subscr_t **subscr);                  mqtt_subscr_t **subscr);
 /*  /*
  * mqtt_readSUBACK() Read SUBACK message   * mqtt_readSUBACK() Read SUBACK message
Line 542  struct mqtthdr *mqtt_readSUBSCRIBE(mqtt_msg_t * __rest Line 560  struct mqtthdr *mqtt_readSUBSCRIBE(mqtt_msg_t * __rest
  * @subqos = Subscribes QoS, must be free after use with free()   * @subqos = Subscribes QoS, must be free after use with free()
  * return: -1 error or >-1 readed subscribes QoS elements   * return: -1 error or >-1 readed subscribes QoS elements
  */   */
int mqtt_readSUBACK(mqtt_msg_t * __restrict buf, u_short *msgID, unsigned char **subqos);int mqtt_readSUBACK(mqtt_msg_t * __restrict buf, unsigned short *msgID, unsigned char **subqos);
 /*  /*
  * mqtt_readUNSUBSCRIBE() Read UNSUBSCRIBE message   * mqtt_readUNSUBSCRIBE() Read UNSUBSCRIBE message
  *   *
  * @buf = Message buffer   * @buf = Message buffer
  * @msgID = MessageID   * @msgID = MessageID
  * @subscr = Subscriptions, must be free after use with mqtt_subFree()   * @subscr = Subscriptions, must be free after use with mqtt_subFree()
 * return: NULL error or !=NULL MQTT fixed header * return: -1 error or >-1 elements into subscr
  */   */
struct mqtthdr *mqtt_readUNSUBSCRIBE(mqtt_msg_t * __restrict buf, unsigned short *msgID, int mqtt_readUNSUBSCRIBE(mqtt_msg_t * __restrict buf, unsigned short *msgID, 
                 mqtt_subscr_t **subscr);                  mqtt_subscr_t **subscr);
 /*  /*
  * mqtt_readUNSUBACK() Read UNSUBACK message   * mqtt_readUNSUBACK() Read UNSUBACK message
Line 559  struct mqtthdr *mqtt_readUNSUBSCRIBE(mqtt_msg_t * __re Line 577  struct mqtthdr *mqtt_readUNSUBSCRIBE(mqtt_msg_t * __re
  * @buf = Message buffer   * @buf = Message buffer
  * return: -1 error or MessageID   * return: -1 error or MessageID
  */   */
u_short mqtt_readUNSUBACK(mqtt_msg_t * __restrict buf);unsigned 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.1  
changed lines
  Added in v.1.1.1.1.2.11


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