00001
00002
00003
00004
00005
00006
00007
00008
00014 #ifndef __GEARMAN_SERVER_JOB_H__
00015 #define __GEARMAN_SERVER_JOB_H__
00016
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020
00031 struct gearman_server_job_st
00032 {
00033 uint8_t retries;
00034 struct {
00035 bool allocated;
00036 } options;
00037 gearman_server_job_state_t state;
00038 gearman_job_priority_t priority;
00039 uint32_t job_handle_key;
00040 uint32_t unique_key;
00041 uint32_t client_count;
00042 uint32_t numerator;
00043 uint32_t denominator;
00044 size_t data_size;
00045 gearman_server_st *server;
00046 gearman_server_job_st *next;
00047 gearman_server_job_st *prev;
00048 gearman_server_job_st *unique_next;
00049 gearman_server_job_st *unique_prev;
00050 gearman_server_job_st *worker_next;
00051 gearman_server_job_st *worker_prev;
00052 gearman_server_function_st *function;
00053 gearman_server_job_st *function_next;
00054 const void *data;
00055 gearman_server_client_st *client_list;
00056 gearman_server_worker_st *worker;
00057 char job_handle[GEARMAN_JOB_HANDLE_SIZE];
00058 char unique[GEARMAN_UNIQUE_SIZE];
00059 };
00060
00064 GEARMAN_API
00065 gearman_server_job_st *
00066 gearman_server_job_add(gearman_server_st *server, const char *function_name,
00067 size_t function_name_size, const char *unique,
00068 size_t unique_size, const void *data, size_t data_size,
00069 gearman_job_priority_t priority,
00070 gearman_server_client_st *server_client,
00071 gearman_return_t *ret_ptr);
00072
00076 GEARMAN_API
00077 gearman_server_job_st *
00078 gearman_server_job_create(gearman_server_st *server,
00079 gearman_server_job_st *server_job);
00080
00084 GEARMAN_API
00085 void gearman_server_job_free(gearman_server_job_st *server_job);
00086
00090 GEARMAN_API
00091 gearman_server_job_st *gearman_server_job_get(gearman_server_st *server,
00092 const char *job_handle,
00093 gearman_server_con_st *worker_con);
00094
00098 GEARMAN_API
00099 gearman_server_job_st *
00100 gearman_server_job_peek(gearman_server_con_st *server_con);
00101
00105 GEARMAN_API
00106 gearman_server_job_st *
00107 gearman_server_job_take(gearman_server_con_st *server_con);
00108
00112 GEARMAN_API
00113 gearman_return_t gearman_server_job_queue(gearman_server_job_st *server_job);
00114
00117 #ifdef __cplusplus
00118 }
00119 #endif
00120
00121 #endif