00001
00002
00003
00004
00005
00006
00007
00008
00014 #ifndef __GEARMAN_SERVER_CONSTANTS_H__
00015 #define __GEARMAN_SERVER_CONSTANTS_H__
00016
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020
00026
00027 #define GEARMAN_DEFAULT_BACKLOG 64
00028 #define GEARMAN_DEFAULT_MAX_QUEUE_SIZE 0
00029 #define GEARMAN_SERVER_CON_ID_SIZE 128
00030 #define GEARMAN_JOB_HASH_SIZE 383
00031 #define GEARMAN_MAX_FREE_SERVER_CON 1000
00032 #define GEARMAN_MAX_FREE_SERVER_PACKET 2000
00033 #define GEARMAN_MAX_FREE_SERVER_JOB 1000
00034 #define GEARMAN_MAX_FREE_SERVER_CLIENT 1000
00035 #define GEARMAN_MAX_FREE_SERVER_WORKER 1000
00036 #define GEARMAN_TEXT_RESPONSE_SIZE 8192
00037 #define GEARMAN_PIPE_BUFFER_SIZE 256
00038 #define GEARMAN_CONF_MAX_OPTION_SHORT 128
00039 #define GEARMAN_CONF_DISPLAY_WIDTH 80
00040
00041
00042 typedef struct gearman_server_st gearman_server_st;
00043 typedef struct gearman_server_thread_st gearman_server_thread_st;
00044 typedef struct gearman_server_con_st gearman_server_con_st;
00045 typedef struct gearman_server_packet_st gearman_server_packet_st;
00046 typedef struct gearman_server_function_st gearman_server_function_st;
00047 typedef struct gearman_server_client_st gearman_server_client_st;
00048 typedef struct gearman_server_worker_st gearman_server_worker_st;
00049 typedef struct gearman_server_job_st gearman_server_job_st;
00050 typedef struct gearmand_st gearmand_st;
00051 typedef struct gearmand_port_st gearmand_port_st;
00052 typedef struct gearmand_con_st gearmand_con_st;
00053 typedef struct gearmand_thread_st gearmand_thread_st;
00054 typedef struct gearman_conf_st gearman_conf_st;
00055 typedef struct gearman_conf_option_st gearman_conf_option_st;
00056 typedef struct gearman_conf_module_st gearman_conf_module_st;
00057
00064 typedef enum
00065 {
00066 GEARMAN_SERVER_ALLOCATED= (1 << 0),
00067 GEARMAN_SERVER_PROC_THREAD= (1 << 1),
00068 GEARMAN_SERVER_QUEUE_REPLAY= (1 << 2)
00069 } gearman_server_options_t;
00070
00075 typedef enum
00076 {
00077 GEARMAN_SERVER_THREAD_ALLOCATED= (1 << 0)
00078 } gearman_server_thread_options_t;
00079
00084 typedef enum
00085 {
00086 GEARMAN_SERVER_CON_SLEEPING= (1 << 0),
00087 GEARMAN_SERVER_CON_EXCEPTIONS= (1 << 1),
00088 GEARMAN_SERVER_CON_DEAD= (1 << 2),
00089 GEARMAN_SERVER_CON_NOOP_SENT= (1 << 3)
00090 } gearman_server_con_options_t;
00091
00096 typedef enum
00097 {
00098 GEARMAN_SERVER_FUNCTION_ALLOCATED= (1 << 0)
00099 } gearman_server_function_options_t;
00100
00105 typedef enum
00106 {
00107 GEARMAN_SERVER_CLIENT_ALLOCATED= (1 << 0)
00108 } gearman_server_client_options_t;
00109
00114 typedef enum
00115 {
00116 GEARMAN_SERVER_WORKER_ALLOCATED= (1 << 0)
00117 } gearman_server_worker_options_t;
00118
00123 typedef enum
00124 {
00125 GEARMAN_SERVER_JOB_ALLOCATED= (1 << 0),
00126 GEARMAN_SERVER_JOB_QUEUED= (1 << 1),
00127 GEARMAN_SERVER_JOB_IGNORE= (1 << 2)
00128 } gearman_server_job_options_t;
00129
00134 typedef enum
00135 {
00136 GEARMAND_LISTEN_EVENT= (1 << 0),
00137 GEARMAND_WAKEUP_EVENT= (1 << 1)
00138 } gearmand_options_t;
00139
00144 typedef enum
00145 {
00146 GEARMAND_WAKEUP_PAUSE= (1 << 0),
00147 GEARMAND_WAKEUP_SHUTDOWN= (1 << 1),
00148 GEARMAND_WAKEUP_SHUTDOWN_GRACEFUL= (1 << 2),
00149 GEARMAND_WAKEUP_CON= (1 << 3),
00150 GEARMAND_WAKEUP_RUN= (1 << 4)
00151 } gearmand_wakeup_t;
00152
00157 typedef enum
00158 {
00159 GEARMAND_THREAD_WAKEUP_EVENT= (1 << 0),
00160 GEARMAND_THREAD_LOCK= (1 << 1)
00161 } gearmand_thread_options_t;
00162
00167 typedef enum
00168 {
00169 GEARMAN_CONF_ALLOCATED= (1 << 0)
00170 } gearman_conf_options_t;
00171
00176 typedef enum
00177 {
00178 GEARMAN_CONF_MODULE_ALLOCATED= (1 << 0)
00179 } gearman_conf_module_options_t;
00180
00181
00187
00188 typedef void (gearman_server_thread_run_fn)(gearman_server_thread_st *thread,
00189 void *context);
00190
00191 typedef gearman_return_t (gearman_queue_add_fn)(gearman_server_st *server,
00192 void *context,
00193 const void *unique,
00194 size_t unique_size,
00195 const void *function_name,
00196 size_t function_name_size,
00197 const void *data,
00198 size_t data_size,
00199 gearman_job_priority_t priority);
00200 typedef gearman_return_t (gearman_queue_flush_fn)(gearman_server_st *server,
00201 void *context);
00202 typedef gearman_return_t (gearman_queue_done_fn)(gearman_server_st *server,
00203 void *context,
00204 const void *unique,
00205 size_t unique_size,
00206 const void *function_name,
00207 size_t function_name_size);
00208 typedef gearman_return_t (gearman_queue_replay_fn)(gearman_server_st *server,
00209 void *context,
00210 gearman_queue_add_fn *add_fn,
00211 void *add_context);
00212
00213 typedef gearman_return_t (gearman_con_add_fn)(gearman_con_st *con);
00214
00217 #ifdef __cplusplus
00218 }
00219 #endif
00220
00221 #endif