tt_message_callback_add(3)

NAME
tt_message_callback_add - register a callback function

SYNOPSIS
#include <Tt/tt_c.h>

Tt_status tt_message_callback_add(Tt_message m,
	Tt_message_callback f);

DESCRIPTION
The tt_message_callback_add() function registers a callback function to be automatically invoked by tt_message_receive(3) whenever a reply or other state-change to this message is returned.

The callback is defined in <Tt/tt_c.h>. If the callback returns TT_CALLBACK_CONTINUE, other callbacks will be run; if no callback returns TT_CALLBACK_PROCESSED, tt_message_receive() returns the message. If the callback returns TT_CALLBACK_PROCESSED, no further callbacks are invoked for this event; tt_message_receive() does not return the message.

The m argument is the opaque handle for the message involved in this operation. The f argument is the message callback to be run.

The pattern handle will be NULL if the message did not match a dynamic pattern. This is usually the case for message callbacks.

RETURN VALUE
Upon successful completion, the tt_message_callback_add() function returns the status of the operation as one of the following Tt_status values:

    The operation completed successfully.
    The ttsession(1) process is not running and the ToolTalk service cannot restart it.
    The pointer passed does not point to an object of the correct type for this operation.

APPLICATION USAGE
These callbacks are invoked from tt_message_receive(); the program must, therefore, call tt_message_receive() when the file descriptor returned by tt_fd() becomes active.

The application can use tt_message_callback_add() to create wrappers for ToolTalk messages. For example, a library routine can construct a request, attach a callback to the message, send the message, and process the reply in the callback. When the callback returns TT_CALLBACK_PROCESSED, the message reply is not returned to the main program; the message and reply are, therefore, completely hidden.

SEE ALSO
Tttt_c(5), tt_message_receive(3).