File:  [ELWIX - Embedded LightWeight unIX -] / mqtt / inc / mqttd.h
Revision 1.2.2.12: download - view: text, annotated - select for diffs - revision graph
Fri Jun 1 10:39:48 2012 UTC (12 years, 1 month ago) by misho
Branches: mqtt1_1
start change send logic and implement send events

    1: #ifndef __MQTTD_H
    2: #define __MQTTD_H
    3: 
    4: 
    5: #define API_SERVER_SIDE
    6: #include <mqttapi.h>
    7: 
    8: 
    9: struct tagStore {
   10: 	u_short				st_msgid;
   11: 
   12: 	mqtt_subscr_t			st_subscr;
   13: 
   14: 	SLIST_ENTRY(tagStore)		st_node;
   15: };
   16: 
   17: struct tagPkt {
   18: 	ait_val_t			*pkt_data;
   19: 
   20: 	SLIST_ENTRY(tagPkt)		pkt_node;
   21: };
   22: 
   23: struct tagSession {
   24: 	/* server dispatcher */
   25: 	mqtt_srv_t			*sess_srv;
   26: 
   27: 	/* client network settings */
   28: 	int				sess_sock;
   29: 	u_short				sess_ka;
   30: 	/* client send retry in miliseconds, if client not receive message */
   31: 	u_int				sess_retry;
   32: 	/* message work buffer */
   33: 	mqtt_msg_t			*sess_buf;
   34: 
   35: 	/* authentication user info */
   36: 	char				sess_cid[MAX_CONNID];
   37: 	char				sess_user[MAX_CRED];
   38: 	char				sess_pass[MAX_CRED];
   39: 	char				sess_addr[64];
   40: 
   41: 	/* connect flags */
   42: 	char				sess_clean;
   43: 	struct {
   44: 		char			flag;
   45: 		char			qos;
   46: 		char			retain;
   47: 		char			*topic;
   48: 		char			*msg;
   49: 	} sess_will;
   50: 
   51: 	/* session subscriptions & send pubs */
   52: 	SLIST_HEAD(tStore, tagStore)	sess_subscr;
   53: 	SLIST_HEAD(tPkt, tagPkt)	sess_sndpkt;
   54: 
   55: 	TAILQ_ENTRY(tagSession)		sess_node;
   56: };
   57: typedef TAILQ_HEAD(, tagSession) sessions_t;
   58: 
   59: 
   60: extern sessions_t Sessions;
   61: extern sched_root_task_t *root;
   62: extern cfg_root_t cfg;
   63: 
   64: 
   65: /* function prototypes */
   66: void *startSession(sched_task_t *task);
   67: 
   68: 
   69: #endif

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