00001
00002
00003
00004
00005
00006
00007
00008
00014 #ifndef __GEARMAN_H__
00015 #define __GEARMAN_H__
00016
00017 #include <inttypes.h>
00018 #ifndef __cplusplus
00019 # include <stdbool.h>
00020 #endif
00021 #include <sys/types.h>
00022 #include <netinet/in.h>
00023 #include <sys/socket.h>
00024 #include <netdb.h>
00025 #include <arpa/inet.h>
00026 #include <poll.h>
00027 #include <sys/uio.h>
00028 #include <event.h>
00029 #include <stdarg.h>
00030
00031 #include <libgearman/visibility.h>
00032 #include <libgearman/constants.h>
00033 #include <libgearman/structs.h>
00034 #include <libgearman/conn.h>
00035 #include <libgearman/packet.h>
00036 #include <libgearman/task.h>
00037 #include <libgearman/job.h>
00038 #include <libgearman/client.h>
00039 #include <libgearman/worker.h>
00040
00041 #ifdef __cplusplus
00042 extern "C" {
00043 #endif
00044
00063 GEARMAN_API
00064 const char *gearman_version(void);
00065
00071 GEARMAN_API
00072 const char *gearman_bugreport(void);
00073
00080 GEARMAN_API
00081 const char *gearman_verbose_name(gearman_verbose_t verbose);
00082
00091 GEARMAN_API
00092 gearman_st *gearman_create(gearman_st *gearman);
00093
00101 GEARMAN_API
00102 gearman_st *gearman_clone(gearman_st *gearman, const gearman_st *from);
00103
00110 GEARMAN_API
00111 void gearman_free(gearman_st *gearman);
00112
00120 GEARMAN_API
00121 const char *gearman_error(const gearman_st *gearman);
00122
00130 GEARMAN_API
00131 int gearman_errno(const gearman_st *gearman);
00132
00140 GEARMAN_API
00141 gearman_options_t gearman_options(const gearman_st *gearman);
00142
00150 GEARMAN_API
00151 void gearman_set_options(gearman_st *gearman, gearman_options_t options);
00152
00160 GEARMAN_API
00161 void gearman_add_options(gearman_st *gearman, gearman_options_t options);
00162
00170 GEARMAN_API
00171 void gearman_remove_options(gearman_st *gearman, gearman_options_t options);
00172
00181 GEARMAN_API
00182 int gearman_timeout(gearman_st *gearman);
00183
00192 GEARMAN_API
00193 void gearman_set_timeout(gearman_st *gearman, int timeout);
00194
00205 GEARMAN_API
00206 void gearman_set_log_fn(gearman_st *gearman, gearman_log_fn *function,
00207 const void *context, gearman_verbose_t verbose);
00208
00217 GEARMAN_API
00218 void gearman_set_event_watch_fn(gearman_st *gearman,
00219 gearman_event_watch_fn *function,
00220 const void *context);
00221
00232 GEARMAN_API
00233 void gearman_set_workload_malloc_fn(gearman_st *gearman,
00234 gearman_malloc_fn *function,
00235 const void *context);
00236
00247 GEARMAN_API
00248 void gearman_set_workload_free_fn(gearman_st *gearman,
00249 gearman_free_fn *function,
00250 const void *context);
00251
00252
00253
00254
00255
00267 GEARMAN_API
00268 gearman_con_st *gearman_con_create(gearman_st *gearman, gearman_con_st *con);
00269
00281 GEARMAN_API
00282 gearman_con_st *gearman_con_add(gearman_st *gearman, gearman_con_st *con,
00283 const char *host, in_port_t port);
00284
00295 GEARMAN_API
00296 gearman_con_st *gearman_con_clone(gearman_st *gearman, gearman_con_st *con,
00297 const gearman_con_st *from);
00298
00305 GEARMAN_API
00306 void gearman_con_free(gearman_con_st *con);
00307
00314 GEARMAN_API
00315 void gearman_con_free_all(gearman_st *gearman);
00316
00324 GEARMAN_API
00325 gearman_return_t gearman_con_flush_all(gearman_st *gearman);
00326
00335 GEARMAN_API
00336 gearman_return_t gearman_con_send_all(gearman_st *gearman,
00337 const gearman_packet_st *packet);
00338
00346 GEARMAN_API
00347 gearman_return_t gearman_con_wait(gearman_st *gearman);
00348
00356 GEARMAN_API
00357 gearman_con_st *gearman_con_ready(gearman_st *gearman);
00358
00368 GEARMAN_API
00369 gearman_return_t gearman_con_echo(gearman_st *gearman, const void *workload,
00370 size_t workload_size);
00371
00372
00373
00374
00375
00385 GEARMAN_API
00386 gearman_packet_st *gearman_packet_create(gearman_st *gearman,
00387 gearman_packet_st *packet);
00388
00410 GEARMAN_API
00411 gearman_return_t gearman_packet_add(gearman_st *gearman,
00412 gearman_packet_st *packet,
00413 gearman_magic_t magic,
00414 gearman_command_t command,
00415 const void *arg, ...);
00416
00423 GEARMAN_API
00424 void gearman_packet_free(gearman_packet_st *packet);
00425
00432 GEARMAN_API
00433 void gearman_packet_free_all(gearman_st *gearman);
00434
00437 #ifdef __cplusplus
00438 }
00439 #endif
00440
00441 #endif