ttdt_Save(3)

NAME
ttdt_Save - request a ToolTalk client to save a file

SYNOPSIS
#include <Tt/tttk.h>

Tt_status ttdt_Save(Tt_message context,
	const char *pathname,
	Tt_scope the_scope,
	XtAppContext app2run,
	int ms_timeout);

DESCRIPTION
The ttdt_Save() function sends a Save request in the the_scope argument and waits for the reply. A Save request asks the handling ToolTalk client to save any changes pending on pathname.

The context argument describes the environment to use. If context is not zero, messages created by ttdt_Save() inherit from context all contexts whose slotname begins with the characters ENV_.

The the_scope argument identifies the scope of the request. If the_scope is TT_SCOPE_NONE, ttdt_Save() tries TT_BOTH, and falls back to TT_FILE_IN_SESSION if, for example, the ToolTalk database server is not installed on the file server that owns pathname.

The ttdt_Save() function passes app2run and ms_timeout to tttk_block_while(3), blocking on the reply to the Save request it sends.

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

    The sent request received an affirmative reply within ms_timeout milliseconds.
    No reply was received within ms_timeout milliseconds.
    The request was failed, but the handler set the tt_message_status() of the failure reply to TT_OK, instead of a specific error status.
    The ToolTalk service could not access the ToolTalk database needed for this operation.
    The ToolTalk service could not access the specified ToolTalk database in the expected place.
    There is insufficient memory available to perform the function.
    The ttsession(1) process is not running and the ToolTalk service cannot restart it.
    The ToolTalk service has more active messages than it can handle. (The maximum number of active messages is implementation specific, but is at least 2000.)
    The pathname argument was NULL or was a ToolTalk error pointer.
    The specified process identifier is out of date or invalid.

SEE ALSO
Tttttk(5), ttdt_Revert(3), ttdt_file_join(3), ttdt_file_event(3), tttk_block_while(3).