Index Click this button to go to the index for this section.


tt_message_callback_add(3)

CDE

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_receive3 whenever a reply or other state-change to this message is returned. The callback is defined in Tt/tt_c.h5. 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 ttsession1 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

Tt/tt_c.h5, tt_message_receive3.