Gearman Developer Documentation

libgearman-server/packet.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_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__ */