Gearman Developer Documentation

Packet Handling

Data Structures

struct  gearman_packet_st
struct  gearman_command_info_st

Modules

 Private Packet Functions

Enumerations

enum  gearman_packet_options_t { GEARMAN_PACKET_ALLOCATED = (1 << 0), GEARMAN_PACKET_COMPLETE = (1 << 1), GEARMAN_PACKET_FREE_DATA = (1 << 2) }
enum  gearman_magic_t { GEARMAN_MAGIC_TEXT, GEARMAN_MAGIC_REQUEST, GEARMAN_MAGIC_RESPONSE }
enum  gearman_command_t {
  GEARMAN_COMMAND_TEXT, GEARMAN_COMMAND_CAN_DO, GEARMAN_COMMAND_CANT_DO, GEARMAN_COMMAND_RESET_ABILITIES,
  GEARMAN_COMMAND_PRE_SLEEP, GEARMAN_COMMAND_UNUSED, GEARMAN_COMMAND_NOOP, GEARMAN_COMMAND_SUBMIT_JOB,
  GEARMAN_COMMAND_JOB_CREATED, GEARMAN_COMMAND_GRAB_JOB, GEARMAN_COMMAND_NO_JOB, GEARMAN_COMMAND_JOB_ASSIGN,
  GEARMAN_COMMAND_WORK_STATUS, GEARMAN_COMMAND_WORK_COMPLETE, GEARMAN_COMMAND_WORK_FAIL, GEARMAN_COMMAND_GET_STATUS,
  GEARMAN_COMMAND_ECHO_REQ, GEARMAN_COMMAND_ECHO_RES, GEARMAN_COMMAND_SUBMIT_JOB_BG, GEARMAN_COMMAND_ERROR,
  GEARMAN_COMMAND_STATUS_RES, GEARMAN_COMMAND_SUBMIT_JOB_HIGH, GEARMAN_COMMAND_SET_CLIENT_ID, GEARMAN_COMMAND_CAN_DO_TIMEOUT,
  GEARMAN_COMMAND_ALL_YOURS, GEARMAN_COMMAND_WORK_EXCEPTION, GEARMAN_COMMAND_OPTION_REQ, GEARMAN_COMMAND_OPTION_RES,
  GEARMAN_COMMAND_WORK_DATA, GEARMAN_COMMAND_WORK_WARNING, GEARMAN_COMMAND_GRAB_JOB_UNIQ, GEARMAN_COMMAND_JOB_ASSIGN_UNIQ,
  GEARMAN_COMMAND_SUBMIT_JOB_HIGH_BG, GEARMAN_COMMAND_SUBMIT_JOB_LOW, GEARMAN_COMMAND_SUBMIT_JOB_LOW_BG, GEARMAN_COMMAND_SUBMIT_JOB_SCHED,
  GEARMAN_COMMAND_SUBMIT_JOB_EPOCH, GEARMAN_COMMAND_MAX
}

Functions

gearman_return_t gearman_packet_add_arg (gearman_packet_st *packet, const void *arg, size_t arg_size)
gearman_return_t gearman_packet_pack_header (gearman_packet_st *packet)
gearman_return_t gearman_packet_unpack_header (gearman_packet_st *packet)
size_t gearman_packet_pack (const gearman_packet_st *packet, gearman_con_st *con, void *data, size_t data_size, gearman_return_t *ret_ptr)
size_t gearman_packet_unpack (gearman_packet_st *packet, gearman_con_st *con, const void *data, size_t data_size, gearman_return_t *ret_ptr)
void gearman_packet_give_data (gearman_packet_st *packet, const void *data, size_t data_size)
void * gearman_packet_take_data (gearman_packet_st *packet, size_t *data_size)

Detailed Description

This is a low level interface for gearman packet. This is used internally internally by both client and worker interfaces (or more specifically, tasks and jobs), so you probably want to look there first. This is usually used to write lower level clients, workers, proxies, or your own server.


Enumeration Type Documentation

Options for gearman_packet_st.

Enumerator:
GEARMAN_PACKET_ALLOCATED 
GEARMAN_PACKET_COMPLETE 
GEARMAN_PACKET_FREE_DATA 

Definition at line 189 of file constants.h.

Magic types.

Enumerator:
GEARMAN_MAGIC_TEXT 
GEARMAN_MAGIC_REQUEST 
GEARMAN_MAGIC_RESPONSE 

Definition at line 200 of file constants.h.

Command types. When you add a new entry, update gearman_command_info_list in packet.c as well.

Enumerator:
GEARMAN_COMMAND_TEXT 
GEARMAN_COMMAND_CAN_DO 
GEARMAN_COMMAND_CANT_DO 
GEARMAN_COMMAND_RESET_ABILITIES 
GEARMAN_COMMAND_PRE_SLEEP 
GEARMAN_COMMAND_UNUSED 
GEARMAN_COMMAND_NOOP 
GEARMAN_COMMAND_SUBMIT_JOB 
GEARMAN_COMMAND_JOB_CREATED 
GEARMAN_COMMAND_GRAB_JOB 
GEARMAN_COMMAND_NO_JOB 
GEARMAN_COMMAND_JOB_ASSIGN 
GEARMAN_COMMAND_WORK_STATUS 
GEARMAN_COMMAND_WORK_COMPLETE 
GEARMAN_COMMAND_WORK_FAIL 
GEARMAN_COMMAND_GET_STATUS 
GEARMAN_COMMAND_ECHO_REQ 
GEARMAN_COMMAND_ECHO_RES 
GEARMAN_COMMAND_SUBMIT_JOB_BG 
GEARMAN_COMMAND_ERROR 
GEARMAN_COMMAND_STATUS_RES 
GEARMAN_COMMAND_SUBMIT_JOB_HIGH 
GEARMAN_COMMAND_SET_CLIENT_ID 
GEARMAN_COMMAND_CAN_DO_TIMEOUT 
GEARMAN_COMMAND_ALL_YOURS 
GEARMAN_COMMAND_WORK_EXCEPTION 
GEARMAN_COMMAND_OPTION_REQ 
GEARMAN_COMMAND_OPTION_RES 
GEARMAN_COMMAND_WORK_DATA 
GEARMAN_COMMAND_WORK_WARNING 
GEARMAN_COMMAND_GRAB_JOB_UNIQ 
GEARMAN_COMMAND_JOB_ASSIGN_UNIQ 
GEARMAN_COMMAND_SUBMIT_JOB_HIGH_BG 
GEARMAN_COMMAND_SUBMIT_JOB_LOW 
GEARMAN_COMMAND_SUBMIT_JOB_LOW_BG 
GEARMAN_COMMAND_SUBMIT_JOB_SCHED 
GEARMAN_COMMAND_SUBMIT_JOB_EPOCH 
GEARMAN_COMMAND_MAX 

Definition at line 212 of file constants.h.


Function Documentation

gearman_return_t gearman_packet_add_arg ( gearman_packet_st packet,
const void *  arg,
size_t  arg_size 
)

Add an argument to a packet.

Definition at line 77 of file packet.c.

gearman_return_t gearman_packet_pack_header ( gearman_packet_st packet  ) 

Pack header.

Definition at line 142 of file packet.c.

gearman_return_t gearman_packet_unpack_header ( gearman_packet_st packet  ) 

Unpack header.

Definition at line 199 of file packet.c.

size_t gearman_packet_pack ( const gearman_packet_st packet,
gearman_con_st con,
void *  data,
size_t  data_size,
gearman_return_t ret_ptr 
)

Pack packet into output buffer.

size_t gearman_packet_unpack ( gearman_packet_st packet,
gearman_con_st con,
const void *  data,
size_t  data_size,
gearman_return_t ret_ptr 
)

Unpack packet from input data.

void gearman_packet_give_data ( gearman_packet_st packet,
const void *  data,
size_t  data_size 
)

Give allocated memory to packet. After this, the library will be responsible for freeing the workload memory when the packet is destroyed.

Definition at line 365 of file packet.c.

void* gearman_packet_take_data ( gearman_packet_st packet,
size_t *  data_size 
)

Take allocated data from packet. After this, the caller is responsible for free()ing the memory.

Definition at line 373 of file packet.c.


Generated on Tue Oct 13 20:19:22 2009 by  doxygen 1.6.1