00001
00002
00003
00004
00005
00006
00007
00008
00014 #ifndef __GEARMAN_JOB_H__
00015 #define __GEARMAN_JOB_H__
00016
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020
00035 struct gearman_job_st
00036 {
00037 struct {
00038 bool allocated LIBGEARMAN_BITFIELD;
00039 bool assigned_in_use LIBGEARMAN_BITFIELD;
00040 bool work_in_use LIBGEARMAN_BITFIELD;
00041 bool finished LIBGEARMAN_BITFIELD;
00042 } options;
00043 gearman_worker_st *worker;
00044 gearman_job_st *next;
00045 gearman_job_st *prev;
00046 gearman_connection_st *con;
00047 gearman_packet_st assigned;
00048 gearman_packet_st work;
00049 };
00050
00061 GEARMAN_LOCAL
00062 gearman_job_st *gearman_job_create(gearman_worker_st *worker,
00063 gearman_job_st *job);
00064
00071 GEARMAN_API
00072 void gearman_job_free(gearman_job_st *job);
00073
00074
00078 GEARMAN_API
00079 gearman_return_t gearman_job_send_data(gearman_job_st *job, const void *data,
00080 size_t data_size);
00081
00085 GEARMAN_API
00086 gearman_return_t gearman_job_send_warning(gearman_job_st *job,
00087 const void *warning,
00088 size_t warning_size);
00089
00093 GEARMAN_API
00094 gearman_return_t gearman_job_send_status(gearman_job_st *job,
00095 uint32_t numerator,
00096 uint32_t denominator);
00097
00101 GEARMAN_API
00102 gearman_return_t gearman_job_send_complete(gearman_job_st *job,
00103 const void *result,
00104 size_t result_size);
00105
00109 GEARMAN_API
00110 gearman_return_t gearman_job_send_exception(gearman_job_st *job,
00111 const void *exception,
00112 size_t exception_size);
00113
00117 GEARMAN_API
00118 gearman_return_t gearman_job_send_fail(gearman_job_st *job);
00119
00123 GEARMAN_API
00124 const char *gearman_job_handle(const gearman_job_st *job);
00125
00129 GEARMAN_API
00130 const char *gearman_job_function_name(const gearman_job_st *job);
00131
00135 GEARMAN_API
00136 const char *gearman_job_unique(const gearman_job_st *job);
00137
00141 GEARMAN_API
00142 const void *gearman_job_workload(const gearman_job_st *job);
00143
00147 GEARMAN_API
00148 size_t gearman_job_workload_size(const gearman_job_st *job);
00149
00154 GEARMAN_API
00155 void *gearman_job_take_workload(gearman_job_st *job, size_t *data_size);
00156
00159 #ifdef __cplusplus
00160 }
00161 #endif
00162
00163 #endif