|
|
| version 1.2.2.9, 2012/05/05 13:39:27 | version 1.3, 2012/07/03 09:02:50 |
|---|---|
| Line 15 struct tagStore { | Line 15 struct tagStore { |
| }; | }; |
| struct tagSession { | struct tagSession { |
| /* client session thread id */ | |
| pthread_t sess_tid; | |
| pthread_mutex_t sess_mtx; | |
| /* server dispatcher */ | /* server dispatcher */ |
| mqtt_srv_t *sess_srv; | mqtt_srv_t *sess_srv; |
| Line 45 struct tagSession { | Line 42 struct tagSession { |
| char *msg; | char *msg; |
| } sess_will; | } sess_will; |
| /* session subscriptions */ | /* session subscriptions & send pubs */ |
| SLIST_HEAD(tStore, tagStore) sess_subscr; | SLIST_HEAD(tStore, tagStore) sess_subscr; |
| TAILQ_ENTRY(tagSession) sess_node; | TAILQ_ENTRY(tagSession) sess_node; |
| }; | }; |
| typedef TAILQ_HEAD(, tagSession) sessions_t; | typedef TAILQ_HEAD(, tagSession) sessions_t; |
| #define SESS_ELEM_LOCK(x) pthread_mutex_lock(&(x)->sess_mtx) | |
| #define SESS_ELEM_UNLOCK(x) pthread_mutex_unlock(&(x)->sess_mtx) | |
| #define SESS_LOCK pthread_mutex_lock(&mtx_sess) | |
| #define SESS_UNLOCK pthread_mutex_unlock(&mtx_sess) | |
| struct tagPub { | |
| ait_val_t pub_name; | |
| mqtt_msg_t pub_packet; | |
| TAILQ_ENTRY(tagPub) pub_node; | |
| }; | |
| typedef TAILQ_HEAD(, tagPub) pubs_t; | |
| #define PUBS_LOCK pthread_mutex_lock(&mtx_pub) | |
| #define PUBS_UNLOCK pthread_mutex_unlock(&mtx_pub) | |
| extern sessions_t Sessions; | extern sessions_t Sessions; |
| extern pubs_t Pubs; | |
| extern sched_root_task_t *root; | extern sched_root_task_t *root; |
| extern cfg_root_t cfg; | extern cfg_root_t cfg; |
| extern pthread_mutex_t mtx_sess, mtx_pub; | |
| /* function prototypes */ | /* function prototypes */ |
| void finiSession(struct tagSession *sess); | |
| void *startSession(sched_task_t *task); | void *startSession(sched_task_t *task); |