--- mqtt/inc/mqttd.h 2012/01/27 16:19:04 1.2.2.1 +++ mqtt/inc/mqttd.h 2012/05/05 14:51:01 1.2.2.10 @@ -2,18 +2,19 @@ #define __MQTTD_H +#define API_SERVER_SIDE +#include + + struct tagStore { - char st_qos; u_short st_msgid; mqtt_subscr_t st_subscr; - TAILQ_ENTRY(tagStore) st_node; + SLIST_ENTRY(tagStore) st_node; }; struct tagSession { - /* client session thread id */ - pthread_t sess_tid; /* server dispatcher */ mqtt_srv_t *sess_srv; @@ -41,18 +42,30 @@ struct tagSession { char *msg; } sess_will; - /* Data Storage by QoS class */ - TAILQ_HEAD(qosStore, tagStore) sess_sndqueue; + /* session subscriptions */ + SLIST_HEAD(tStore, tagStore) sess_subscr; TAILQ_ENTRY(tagSession) sess_node; }; typedef TAILQ_HEAD(, tagSession) sessions_t; +struct tagPub { + ait_val_t pub_name; + mqtt_msg_t pub_packet; + TAILQ_ENTRY(tagPub) pub_node; +}; +typedef TAILQ_HEAD(, tagPub) pubs_t; + + extern sessions_t Sessions; +extern pubs_t Pubs; extern sched_root_task_t *root; -extern sl_config cfg; -extern pthread_mutex_t mtx_sess, mtx_pub; +extern cfg_root_t cfg; + + +/* function prototypes */ +void *startSession(sched_task_t *task); #endif