Gearman Developer Documentation

libgearman-server/connection.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_SERVER_CON_H__
00015 #define __GEARMAN_SERVER_CON_H__
00016 
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020 
00031 struct gearman_server_con_st
00032 {
00033   gearman_connection_st con; /* This must be the first struct member. */
00034   bool is_sleeping;
00035   bool is_exceptions;
00036   bool is_dead;
00037   bool is_noop_sent;
00038   gearman_return_t ret;
00039   bool io_list;
00040   bool proc_list;
00041   bool proc_removed;
00042   uint32_t io_packet_count;
00043   uint32_t proc_packet_count;
00044   uint32_t worker_count;
00045   uint32_t client_count;
00046   gearman_server_thread_st *thread;
00047   gearman_server_con_st *next;
00048   gearman_server_con_st *prev;
00049   gearman_server_packet_st *packet;
00050   gearman_server_packet_st *io_packet_list;
00051   gearman_server_packet_st *io_packet_end;
00052   gearman_server_packet_st *proc_packet_list;
00053   gearman_server_packet_st *proc_packet_end;
00054   gearman_server_con_st *io_next;
00055   gearman_server_con_st *io_prev;
00056   gearman_server_con_st *proc_next;
00057   gearman_server_con_st *proc_prev;
00058   gearman_server_worker_st *worker_list;
00059   gearman_server_client_st *client_list;
00060   const char *host;
00061   const char *port;
00062   char id[GEARMAN_SERVER_CON_ID_SIZE];
00063 };
00064 
00074 GEARMAN_API
00075 gearman_server_con_st *gearman_server_con_add(gearman_server_thread_st *thread,
00076                                               int fd, void *data);
00077 
00081 GEARMAN_API
00082 gearman_server_con_st *
00083 gearman_server_con_create(gearman_server_thread_st *thread);
00084 
00088 GEARMAN_API
00089 void gearman_server_con_free(gearman_server_con_st *con);
00090 
00094 GEARMAN_API
00095 gearman_connection_st *gearman_server_con_con(gearman_server_con_st *con);
00096 
00100 GEARMAN_API
00101 const void *gearman_server_con_data(const gearman_server_con_st *con);
00102 
00106 GEARMAN_API
00107 void gearman_server_con_set_data(gearman_server_con_st *con, void *data);
00108 
00112 GEARMAN_API
00113 const char *gearman_server_con_host(gearman_server_con_st *con);
00114 
00118 GEARMAN_API
00119 void gearman_server_con_set_host(gearman_server_con_st *con, const char *host);
00120 
00124 GEARMAN_API
00125 const char *gearman_server_con_port(gearman_server_con_st *con);
00126 
00130 GEARMAN_API
00131 void gearman_server_con_set_port(gearman_server_con_st *con, const char *port);
00132 
00136 GEARMAN_API
00137 const char *gearman_server_con_id(gearman_server_con_st *con);
00138 
00142 GEARMAN_API
00143 void gearman_server_con_set_id(gearman_server_con_st *con, char *id,
00144                                size_t size);
00145 
00149 GEARMAN_API
00150 void gearman_server_con_free_worker(gearman_server_con_st *con,
00151                                     char *function_name,
00152                                     size_t function_name_size);
00153 
00157 GEARMAN_API
00158 void gearman_server_con_free_workers(gearman_server_con_st *con);
00159 
00163 GEARMAN_API
00164 void gearman_server_con_io_add(gearman_server_con_st *con);
00165 
00169 GEARMAN_API
00170 void gearman_server_con_io_remove(gearman_server_con_st *con);
00171 
00175 GEARMAN_API
00176 gearman_server_con_st *
00177 gearman_server_con_io_next(gearman_server_thread_st *thread);
00178 
00182 GEARMAN_API
00183 void gearman_server_con_proc_add(gearman_server_con_st *con);
00184 
00188 GEARMAN_API
00189 void gearman_server_con_proc_remove(gearman_server_con_st *con);
00190 
00194 GEARMAN_API
00195 gearman_server_con_st *
00196 gearman_server_con_proc_next(gearman_server_thread_st *thread);
00197 
00200 #ifdef __cplusplus
00201 }
00202 #endif
00203 
00204 #endif /* __GEARMAN_SERVER_CON_H__ */