server.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _KLONE_SERVER_H_
00012 #define _KLONE_SERVER_H_
00013
00014 #include "klone_conf.h"
00015 #include <klone/ppc.h>
00016 #include <klone/klog.h>
00017
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021
00022 struct u_config_s;
00023 struct server_s;
00024 typedef struct server_s server_t;
00025
00026 enum {
00027 SERVER_LOG_FLUSH_TIMEOUT = 5,
00028
00029
00030 SERVER_MAX_CHILD = 300,
00031 SERVER_MAX_BACKEND_CHILD = 150,
00032
00033
00034
00035 SERVER_PREFORK_START_CHILD = 2,
00036 SERVER_PREFORK_MAX_RQ_CHILD = 10000
00037 };
00038
00039 enum {
00040 SERVER_MODEL_UNSET,
00041 SERVER_MODEL_FORK,
00042 SERVER_MODEL_ITERATIVE,
00043 SERVER_MODEL_PREFORK,
00044 #ifdef OS_UNIX
00045 SERVER_MODEL_DEFAULT = SERVER_MODEL_PREFORK
00046 #else
00047 SERVER_MODEL_DEFAULT = SERVER_MODEL_ITERATIVE
00048 #endif
00049 };
00050
00051 int server_create(struct u_config_s *config, int model, server_t **ps);
00052 int server_free(server_t *s);
00053 int server_loop(server_t *s);
00054 int server_cgi(server_t *s);
00055 int server_stop(server_t *s);
00056 ppc_t* server_get_ppc(server_t *s);
00057
00058 int server_get_logger(server_t *s, klog_t **pkl);
00059 int server_foreach_memlog_line(server_t *s, int (*cb)(const char*, void*),
00060 void *arg);
00061
00062 #ifdef __cplusplus
00063 }
00064 #endif
00065
00066 #endif