# Task (gearman_task_st)

## SYNOPSIS

#include <libgearman/gearman.h>

type gearman_task_st

void gearman_task_free(gearman_task_st *task)

void *gearman_task_context(const gearman_task_st *task)

void gearman_task_set_context(gearman_task_st *task, void *context)

const char *gearman_task_function_name(const gearman_task_st *task)

const char *gearman_task_unique(const gearman_task_st *task)

const char *gearman_task_job_handle(const gearman_task_st *task)

bool gearman_task_is_known(const gearman_task_st *task)

bool gearman_task_is_running(const gearman_task_st *task)

uint32_t gearman_task_numerator(const gearman_task_st *task)

uint32_t gearman_task_denominator(const gearman_task_st *task)

void gearman_task_give_workload(gearman_task_st *task, const void *workload, size_t workload_size)

size_t gearman_task_send_workload(gearman_task_st *task, const void *workload, size_t workload_size, gearman_return_t *ret_ptr)

const void *gearman_task_data(const gearman_task_st *task)

size_t gearman_task_data_size(const gearman_task_st *task)

void *gearman_task_take_data(gearman_task_st *task, size_t *data_size)

size_t gearman_task_recv_data(gearman_task_st *task, void *data, size_t data_size, gearman_return_t *ret_ptr)

const char *gearman_task_error(const gearman_task_st *task)

Added in version 0.21.

gearman_return_t gearman_task_return(const gearman_task_st *task)

Added in version 0.21.

Link with -lgearman

## DESCRIPTION

A `gearman_task_st` represents a task. Work that is sent by a client to a gearman server is seen as a task (a worker receives a task in the form of a job.

Tasks, i.e. `gearman_task_st` are created by calling either `gearman_execute()`, `gearman_client_add_task()`, or `gearman_client_add_task_background()`.

`gearman_client_add_task_status()` can also create `gearman_task_st`, these tasks will be used to monitor a previously created `gearman_task_st`.

`gearman_task_free()` is used to free a task. This only needs to be done if a task was created with a preallocated structure or if you want to clean up the memory of a specific task.

`gearman_task_set_context()` sets the given context of the `gearman_task_st`. The context can be used to pass information to a `gearman_task_st`.

`gearman_task_context()` returns the context that was used in the creation of the `gearman_task_st` (or that was set with `gearman_task_set_context()`.

`gearman_task_data()` returns the current data that has been returned to the task. `gearman_task_data_size()` will give you the size of the value. `gearman_task_take_data()` is the same as `gearman_task_data()` but the value that is returned must be freed by the client (free(3)). `gearman_task_recv_data()` can be used with pre-allocated buffers.

`gearman_task_is_known()`, `gearman_task_is_running()`, `gearman_task_numerator()`, and `gearman_task_denominator()`, return values related to the last status update that was made to the `gearman_task_st`. They do not cause the `gearman_task_st` to update itself.

`gearman_task_error()` return the last error message that the `gearman_task_st` encountered. `gearman_task_return()` return the last `gearman_return_t` stored. A value of `GEARMAN_UNKNOWN_STATE` means that the task has not been submitted to server yet, or that no function was available if the job has been submitted.

## RETURN VALUE

Various. Values that are returned by `gearman_task_take_data()` must have free(3) called on them.

## HOME

To find out more information please check: http://gearman.info/

## SEE ALSO

gearmand(8) libgearman(3)