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_PACKET_H__ 00015 #define __GEARMAN_SERVER_PACKET_H__ 00016 00017 #ifdef __cplusplus 00018 extern "C" { 00019 #endif 00020 00032 struct gearman_server_packet_st 00033 { 00034 gearman_packet_st packet; 00035 gearman_server_packet_st *next; 00036 }; 00037 00038 00042 GEARMAN_API 00043 gearman_server_packet_st * 00044 gearman_server_packet_create(gearman_server_thread_st *thread, 00045 bool from_thread); 00046 00050 GEARMAN_API 00051 void gearman_server_packet_free(gearman_server_packet_st *packet, 00052 gearman_server_thread_st *thread, 00053 bool from_thread); 00054 00058 GEARMAN_API 00059 gearman_return_t gearman_server_io_packet_add(gearman_server_con_st *con, 00060 bool take_data, 00061 enum gearman_magic_t magic, 00062 gearman_command_t command, 00063 const void *arg, ...); 00064 00068 GEARMAN_API 00069 void gearman_server_io_packet_remove(gearman_server_con_st *con); 00070 00074 GEARMAN_API 00075 void gearman_server_proc_packet_add(gearman_server_con_st *con, 00076 gearman_server_packet_st *packet); 00077 00081 GEARMAN_API 00082 gearman_server_packet_st * 00083 gearman_server_proc_packet_remove(gearman_server_con_st *con); 00084 00087 #ifdef __cplusplus 00088 } 00089 #endif 00090 00091 #endif /* __GEARMAN_SERVER_PACKET_H__ */