1 #ifndef __GAM_CONNECTION_H__
2 #define __GAM_CONNECTION_H__ 1
3 
4 #include <glib.h>
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 /**
11  * Data associated to connections in the gamin server
12  */
13 typedef struct GamConnData GamConnData;
14 typedef GamConnData *GamConnDataPtr;
15 
16 /**
17  * the different states the connection can be in
18  */
19 typedef enum {
20     GAM_STATE_ERROR = -1,	/* error condition */
21     GAM_STATE_AUTH,		/* authenthication needed */
22     GAM_STATE_OKAY,		/* normal state */
23     GAM_STATE_CLOSED		/* the connection was closed by server */
24 } GamConnState;
25 
26 int		gam_connections_init	(void);
27 int		gam_connections_close	(void);
28 void            gam_schedule_server_timeout (void);
29 
30 GamConnDataPtr	gam_connection_new	(GMainLoop *loop,
31 					 GIOChannel *source);
32 int		gam_connection_set_pid	(GamConnDataPtr conn,
33 					 int pid);
34 int		gam_connection_exists	(GamConnDataPtr conn);
35 int		gam_connection_close	(GamConnDataPtr conn);
36 
37 int		gam_connection_get_fd	(GamConnDataPtr conn);
38 int		gam_connection_get_pid  (GamConnDataPtr conn);
39 gchar *		gam_connection_get_pidname (GamConnDataPtr conn);
40 GamConnState	gam_connection_get_state(GamConnDataPtr conn);
41 int		gam_connection_get_data	(GamConnDataPtr conn,
42 					 char **data,
43 					 int *size);
44 int		gam_connection_data	(GamConnDataPtr conn,
45 					 int len);
46 int		gam_send_event		(GamConnDataPtr conn,
47 					 int reqno,
48 					 int event,
49 					 const char *path,
50 					 int len);
51 void		gam_queue_event		(GamConnDataPtr conn,
52 					 int reqno,
53 					 int event,
54 					 const char *path,
55 					 int len);
56 int		gam_send_ack		(GamConnDataPtr conn,
57 					 int reqno,
58 					 const char *path,
59 					 int len);
60 void		gam_connections_debug	(void);
61 #ifdef __cplusplus
62 }
63 #endif
64 
65 #endif /* __GAM_CONNECTION_H__ */
66