root/cherokee/trunk/cherokee/admin_client.h

Revision 1435, 4.2 kB (checked in by alo, 4 months ago)

--

Line 
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2
3 /* Cherokee
4  *
5  * Authors:
6  *      Alvaro Lopez Ortega <alvaro@alobbs.com>
7  *
8  * Copyright (C) 2001-2008 Alvaro Lopez Ortega
9  *
10  * This program is free software; you can redistribute it and/or
11  * modify it under the terms of version 2 of the GNU General Public
12  * License as published by the Free Software Foundation.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
22  * USA
23  */
24
25 #if !defined (CHEROKEE_INSIDE_CHEROKEE_H) && !defined (CHEROKEE_COMPILATION)
26 # error "Only <cherokee/cherokee.h> can be included directly, this file may disappear or change contents."
27 #endif
28
29 #ifndef CHEROKEE_ADMIN_CLIENT_H
30 #define CHEROKEE_ADMIN_CLIENT_H
31
32 #include <cherokee/common.h>
33 #include <cherokee/http.h>
34 #include <cherokee/fdpoll.h>
35 #include <cherokee/buffer.h>
36 #include <cherokee/connection_info.h>
37
38 CHEROKEE_BEGIN_DECLS
39
40
41 typedef struct cherokee_admin_client cherokee_admin_client_t;
42 #define ADMIN_CLIENT(x) ((cherokee_admin_client_t *)(x))
43
44 #define RUN_CLIENT_LOOP(func_string) {        \
45         cherokee_boolean_t exit;              \
46                                               \
47         for (exit = false; !exit;) {          \
48                 ret = func_string;            \
49                 switch (ret) {                \
50                 case ret_error:               \
51                         ret = ret_error;      \
52                         exit = true;          \
53                         break;                \
54                 case ret_ok:                  \
55                         ret = ret_ok;         \
56                         exit = true;          \
57                         break;                \
58                 case ret_eagain:              \
59                         break;                \
60                 case ret_eof:                 \
61                         exit = true;          \
62                         break;                \
63                 default:                      \
64                         RET_UNKNOWN(ret);     \
65                 }                             \
66         }                                     \
67 }
68
69 #define RUN_CLIENT1(client,func,arg)            \
70         cherokee_admin_client_reuse(client);    \
71         RUN_CLIENT_LOOP(func(client,arg))
72
73 #define RUN_CLIENT2(client,func,arg1,arg2)      \
74         cherokee_admin_client_reuse(client);    \
75         RUN_CLIENT_LOOP(func(client,arg1,arg2))
76
77 #define RUN_CLIENT3(client,func,arg1,arg2,arg3) \
78         cherokee_admin_client_reuse(client);    \
79         RUN_CLIENT_LOOP(func(client,arg1,arg2,arg3))
80
81
82 ret_t cherokee_admin_client_new             (cherokee_admin_client_t **admin);
83 ret_t cherokee_admin_client_free            (cherokee_admin_client_t  *admin);
84
85 ret_t cherokee_admin_client_prepare         (cherokee_admin_client_t *admin, cherokee_fdpoll_t *poll, cherokee_buffer_t *url, cherokee_buffer_t *user, cherokee_buffer_t *pass);
86 ret_t cherokee_admin_client_connect         (cherokee_admin_client_t *admin);
87 ret_t cherokee_admin_client_reuse           (cherokee_admin_client_t *admin);
88 ret_t cherokee_admin_client_get_reply_code  (cherokee_admin_client_t *admin, cherokee_http_t *code);
89
90 /* Retrieve information methods
91  */
92 ret_t cherokee_admin_client_ask_port        (cherokee_admin_client_t *admin, cuint_t *port);
93 ret_t cherokee_admin_client_ask_port_tls    (cherokee_admin_client_t *admin, cuint_t *port);
94
95 ret_t cherokee_admin_client_ask_rx          (cherokee_admin_client_t *admin, cherokee_buffer_t *rx);
96 ret_t cherokee_admin_client_ask_tx          (cherokee_admin_client_t *admin, cherokee_buffer_t *tx);
97
98 ret_t cherokee_admin_client_ask_connections (cherokee_admin_client_t *admin, cherokee_list_t *conns);
99 ret_t cherokee_admin_client_del_connection  (cherokee_admin_client_t *admin, char *id);
100
101 ret_t cherokee_admin_client_ask_thread_num  (cherokee_admin_client_t *admin, cherokee_buffer_t *num);
102 ret_t cherokee_admin_client_set_backup_mode (cherokee_admin_client_t *admin, cherokee_boolean_t active);
103
104 ret_t cherokee_admin_client_ask_trace       (cherokee_admin_client_t *admin, cherokee_buffer_t *trace);
105 ret_t cherokee_admin_client_set_trace       (cherokee_admin_client_t *admin, cherokee_buffer_t *trace);
106
107 CHEROKEE_END_DECLS
108
109 #endif /* CHEROKEE_ADMIN_CLIENT_H */
Note: See TracBrowser for help on using the browser.