|
version 1.2.2.4, 2012/04/11 16:37:16
|
version 1.2.2.13, 2012/06/26 08:05:58
|
|
Line 2
|
Line 2
|
| #define __MQTTD_H |
#define __MQTTD_H |
| |
|
| |
|
| |
#define API_SERVER_SIDE |
| |
#include <mqttapi.h> |
| |
|
| |
|
| struct tagStore { |
struct tagStore { |
| char st_qos; |
|
| u_short st_msgid; |
u_short st_msgid; |
| |
|
| mqtt_subscr_t st_subscr; |
mqtt_subscr_t st_subscr; |
|
Line 12 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 42 struct tagSession {
|
Line 42 struct tagSession {
|
| char *msg; |
char *msg; |
| } sess_will; |
} sess_will; |
| |
|
| /* Data Storage by QoS class */ | /* session subscriptions & send pubs */ |
| SLIST_HEAD(tStore, tagStore) sess_txque[3]; | 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) |
|
| |
|
| |
|
| extern sessions_t Sessions; |
extern sessions_t Sessions; |
| 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; | |
| #define SESS_LOCK pthread_mutex_lock(&mtx_sess) | |
| #define SESS_UNLOCK pthread_mutex_unlock(&mtx_sess) | /* function prototypes */ |
| #define PUB_LOCK pthread_mutex_lock(&mtx_pub) | void *startSession(sched_task_t *task); |
| #define PUB_UNLOCK pthread_mutex_unlock(&mtx_pub) | |
| |
|
| |
|
| #endif |
#endif |