--- mqtt/inc/Attic/aitmqtt.h 2011/11/22 14:48:25 1.1.1.1.2.20 +++ mqtt/inc/Attic/aitmqtt.h 2011/11/22 15:25:19 1.1.1.1.2.21 @@ -18,6 +18,23 @@ struct mqtthdr { } __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_MAX 15 /* reserved */ + #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. This applies to messages where the value of QoS is greater than @@ -359,6 +376,23 @@ mqtt_cb_t *mqttInitCallbacks(void); * 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