Gearman Developer Documentation

libgearman/job.h
Go to the documentation of this file.
00001 /* Gearman server and library
00002  * Copyright (C) 2008 Brian Aker, Eric Day
00003  * All rights reserved.
00004  *
00005  * Use and distribution licensed under the BSD license.  See
00006  * the COPYING file in the parent directory for full text.
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 /* __GEARMAN_JOB_H__ */