Go to the documentation of this file.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_job_priority_t priority;
00038 bool ignore_job;
00039 bool job_queued;
00040 uint32_t job_handle_key;
00041 uint32_t unique_key;
00042 uint32_t client_count;
00043 uint32_t numerator;
00044 uint32_t denominator;
00045 size_t data_size;
00046 gearman_server_st *server;
00047 gearman_server_job_st *next;
00048 gearman_server_job_st *prev;
00049 gearman_server_job_st *unique_next;
00050 gearman_server_job_st *unique_prev;
00051 gearman_server_job_st *worker_next;
00052 gearman_server_job_st *worker_prev;
00053 gearman_server_function_st *function;
00054 gearman_server_job_st *function_next;
00055 const void *data;
00056 gearman_server_client_st *client_list;
00057 gearman_server_worker_st *worker;
00058 char job_handle[GEARMAN_JOB_HANDLE_SIZE];
00059 char unique[GEARMAN_UNIQUE_SIZE];
00060 };
00061
00065 GEARMAN_API
00066 gearman_server_job_st *
00067 gearman_server_job_add(gearman_server_st *server, const char *function_name,
00068 size_t function_name_size, const char *unique,
00069 size_t unique_size, const void *data, size_t data_size,
00070 gearman_job_priority_t priority,
00071 gearman_server_client_st *server_client,
00072 gearman_return_t *ret_ptr);
00073
00077 GEARMAN_API
00078 gearman_server_job_st *
00079 gearman_server_job_create(gearman_server_st *server,
00080 gearman_server_job_st *server_job);
00081
00085 GEARMAN_API
00086 void gearman_server_job_free(gearman_server_job_st *server_job);
00087
00091 GEARMAN_API
00092 gearman_server_job_st *gearman_server_job_get(gearman_server_st *server,
00093 const char *job_handle,
00094 gearman_server_con_st *worker_con);
00095
00099 GEARMAN_API
00100 gearman_server_job_st *
00101 gearman_server_job_peek(gearman_server_con_st *server_con);
00102
00106 GEARMAN_API
00107 gearman_server_job_st *
00108 gearman_server_job_take(gearman_server_con_st *server_con);
00109
00113 GEARMAN_API
00114 gearman_return_t gearman_server_job_queue(gearman_server_job_st *server_job);
00115
00118 #ifdef __cplusplus
00119 }
00120 #endif
00121
00122 #endif