libxrdeveloper's documentation
xr-server.h
Go to the documentation of this file.
1 /*
2  * Copyright 2006-2008 Ondrej Jirman <ondrej.jirman@zonio.net>
3  *
4  * This file is part of libxr.
5  *
6  * Libxr is free software: you can redistribute it and/or modify it under the
7  * terms of the GNU Lesser General Public License as published by the Free
8  * Software Foundation, either version 2 of the License, or (at your option) any
9  * later version.
10  *
11  * Libxr is distributed in the hope that it will be useful, but WITHOUT ANY
12  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
13  * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
14  * details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with libxr. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
27 #ifndef __XR_SERVER_H__
28 #define __XR_SERVER_H__
29 
30 #include <openssl/ssl.h>
31 #include "xr-call.h"
32 #include "xr-http.h"
33 #include "xr-value-utils.h"
34 
37 typedef struct _xr_server xr_server;
38 
42 typedef struct _xr_servlet xr_servlet;
43 
46 typedef gboolean (*servlet_method_t)(xr_servlet* servlet, xr_call* call);
47 
50 typedef gboolean (*servlet_init_t)(xr_servlet* servlet);
51 
54 typedef void (*servlet_fini_t)(xr_servlet* servlet);
55 
58 typedef gboolean (*servlet_download_t)(xr_servlet* servlet);
59 
62 typedef gboolean (*servlet_upload_t)(xr_servlet* servlet);
63 
67 
71 
75 {
76  char* name;
78  void* padding1[4];
79 };
80 
84 {
85  char* name;
86  int size;
96  void* padding1[10];
97 };
98 
99 #define XR_SERVER_ERROR xr_server_error_quark()
100 
101 typedef enum
102 {
103  XR_SERVER_ERROR_FAILED
104 } XRServerError;
105 
106 G_BEGIN_DECLS
107 
117 xr_server* xr_server_new(const char* cert, int threads, GError** err);
118 
127 SSL_CTX* xr_server_get_ssl_context(xr_server* server);
128 
137 gboolean xr_server_bind(xr_server* server, const char* port, GError** err);
138 
150 gboolean xr_server_run(xr_server* server, GError** err);
151 
156 void xr_server_stop(xr_server* server);
157 
162 void xr_server_free(xr_server* server);
163 
171 gboolean xr_server_register_servlet(xr_server* server, xr_servlet_def* servlet);
172 
179 void* xr_servlet_get_priv(xr_servlet* servlet);
180 
188 
195 char* xr_servlet_get_client_ip(xr_servlet* servlet);
196 
207 gboolean xr_server_simple(const char* cert, int threads, const char* bind,
208  xr_servlet_def** servlets, GError** err);
209 
210 GQuark xr_server_error_quark();
211 
212 G_END_DECLS
213 
214 #endif
Documentation for libxr, Sat Nov 1 2014 21:06:15.