Annotation of mqtt/inc/mqttd.h, revision 1.2.2.4

1.2       misho       1: #ifndef __MQTTD_H
                      2: #define __MQTTD_H
                      3: 
                      4: 
                      5: struct tagStore {
                      6:        char                            st_qos;
                      7:        u_short                         st_msgid;
                      8: 
                      9:        mqtt_subscr_t                   st_subscr;
                     10: 
1.2.2.4 ! misho      11:        SLIST_ENTRY(tagStore)           st_node;
1.2       misho      12: };
                     13: 
                     14: struct tagSession {
                     15:        /* client session thread id */
                     16:        pthread_t                       sess_tid;
1.2.2.2   misho      17:        pthread_mutex_t                 sess_mtx;
1.2.2.1   misho      18:        /* server dispatcher */
                     19:        mqtt_srv_t                      *sess_srv;
1.2       misho      20: 
                     21:        /* client network settings */
                     22:        int                             sess_sock;
                     23:        u_short                         sess_ka;
                     24:        /* client send retry in miliseconds, if client not receive message */
                     25:        u_int                           sess_retry;
                     26:        /* message work buffer */
                     27:        mqtt_msg_t                      *sess_buf;
                     28: 
                     29:        /* authentication user info */
                     30:        char                            sess_cid[MAX_CONNID];
                     31:        char                            sess_user[MAX_CRED];
                     32:        char                            sess_pass[MAX_CRED];
                     33:        char                            sess_addr[64];
                     34: 
                     35:        /* connect flags */
                     36:        char                            sess_clean;
                     37:        struct {
                     38:                char                    flag;
                     39:                char                    qos;
                     40:                char                    retain;
                     41:                char                    *topic;
                     42:                char                    *msg;
                     43:        } sess_will;
                     44: 
                     45:        /* Data Storage by QoS class */
1.2.2.4 ! misho      46:        SLIST_HEAD(tStore, tagStore)    sess_txque[3];
1.2       misho      47:        TAILQ_ENTRY(tagSession)         sess_node;
                     48: };
                     49: typedef TAILQ_HEAD(, tagSession) sessions_t;
1.2.2.4 ! misho      50: #define SESS_ELEM_LOCK(x)      pthread_mutex_lock(&(x)->sess_mtx)
        !            51: #define SESS_ELEM_UNLOCK(x)    pthread_mutex_unlock(&(x)->sess_mtx)
1.2       misho      52: 
                     53: 
                     54: extern sessions_t Sessions;
                     55: extern sched_root_task_t *root;
1.2.2.3   misho      56: extern cfg_root_t cfg;
1.2       misho      57: extern pthread_mutex_t mtx_sess, mtx_pub;
1.2.2.4 ! misho      58: #define SESS_LOCK              pthread_mutex_lock(&mtx_sess)
        !            59: #define SESS_UNLOCK            pthread_mutex_unlock(&mtx_sess)
        !            60: #define PUB_LOCK               pthread_mutex_lock(&mtx_pub)
        !            61: #define PUB_UNLOCK             pthread_mutex_unlock(&mtx_pub)
1.2       misho      62: 
                     63: 
                     64: #endif

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