Cherry-picks the code from 0.1.x branch
[rahunas] / src / rh-server.h
1 /**
2  * RahuNAS server 
3  * Author: Neutron Soutmun <neo.neutron@gmail.com>
4  * Date:   2009-03-24
5  */
6 #ifndef __RH_SERVER_H
7 #define __RH_SERVER_H
8
9 #include <glib.h>
10 #include "rh-config.h"
11
12 typedef struct vserver     RHVServer;
13 typedef struct main_server RHMainServer;
14
15 struct main_server {
16   struct rahunas_main_config *main_config;
17   GList *vserver_list;
18   GList *serviceclass_list;
19   GList *task_list;
20   int log_fd;
21   int polling_blocked;
22 };
23
24 struct vserver {
25   struct rahunas_vserver_config *vserver_config;
26   struct rahunas_vserver_config *dummy_config;
27   struct rahunas_map *v_map;
28   struct set *v_set;
29   RHMainServer *main_server;
30 };
31
32 RHVServer *vserver_exists    (GList *vserver_list, int vserver_id,
33                                    const char *vserver_name);
34 RHVServer *vserver_get_by_id (RHMainServer *ms, int search_id);
35
36 int vserver_cleanup    (RHVServer *vs);
37 int mainserver_cleanup (RHMainServer *ms);
38
39 int walk_through_vserver    (int (*callback)(RHMainServer *, RHVServer *),
40                              RHMainServer  *ms);
41 int register_vserver        (RHMainServer  *ms, const char *vserver_cfg_file);
42 int unregister_vserver      (RHMainServer  *ms, int vserver_id);
43 int unregister_vserver_all  (RHMainServer  *ms);
44 void vserver_init_done      (RHMainServer  *ms, RHVServer *vs);
45 void vserver_reload         (RHMainServer  *ms, RHVServer *vs);
46 void vserver_unused_cleanup (RHMainServer  *ms);
47
48 #endif // __RH_SERVER_H