Open System Services Programmer's Guide

SERVERCLASS_DIALOG Jacket Routines
The Pathsend SERVERCLASS_DIALOG jacket routines are used to:
Establish a dialog with a server instance in a Pathway server class
Send and receive messages within the dialog
Abort or end the dialog
The Context-Sensitive Pathway requester can be written using the thread-aware
SERVERCLASS_DIALOG jacket routines to communicate with a server instance in the Pathway
server class. The Pathway requester initiates the dialog using
PUT_SERVERCLASS_DIALOG_BEGIN_() routine and sends the first message of the dialog. This
thread-aware jacket routine returns the dialog ID that is used in subsequent operations to
communicate with the Pathway server. The Pathway requester can invoke multiple sends using
PUT_SERVERCLASS_DIALOG_SEND_() within the dialog to send data to the server for processing.
If the requester encounters an error while sending the data, the requester can abort the dialog
using the PUT_SERVERCLASS_DIALOG_ABORT_() routine.
The Pathway requester can use multiple PUT_SERVERCLASS_DIALOG_SEND_() calls to have all
requests serviced by the same server and all operations performed in a single context.
If the requester encounters Pathsend errors during the server class operation, the requester can call
PUT_SERVERCLASS_SEND_INFO_() to obtain information about the Pathsend error and file-system
error.
Either the requester or the server can abort the dialog, but only the server can end it. The server
ends the dialog by returning file-system error 0 (FEOK). The requester then calls
PUT_SERVERCLASS_DIALOG_END_() to clean up resources after the server has ended the
dialog. To abort the dialog, the requester calls PUT_SERVERCLASS_DIALOG_ABORT_().
The SERVERCLASS_DIALOG_ jacket routines are included in the PUT Model library, which can be
bound to an application requiring the routines:
c89 -o program program.o -lzputdll
TMF Transaction Jacket Routines
The following Transaction Management Facility (TMF) transaction jacket routines invoke the TMF
calls and manage the multiple concurrent transactions rooted in a process:
PUT_ABORTTRANSACTION()
PUT_BEGINTRANSACTION()
PUT_ENDTRANSACTION()
PUT_RESUMETRANSACTION()
The syntax and semantics of these function calls are the same as those of the similarly named TMF
calls.
When using the TMF transaction jacket routines:
The transaction_tag parameter of the PUT_BEGINTRANSACTION() function is required.
Each thread can have at most one current transaction. The system RESUMETRANSACTION
procedure is automatically called during thread dispatch to maintain the correct transaction
context.
Each transaction is initially associated with only the thread that created it by calling the
PUT_BEGINTRANSACTION() function.
Another thread can be associated with a specific transaction by calling the
PUT_RESUMETRANSACTION() function and specifying the transaction_tag value returned
by the initial PUT_BEGINTRANSACTION() function call.
If a thread is created, it does not inherit its parent's transaction; the created thread's transaction
context is nil.
Jacket Routines (Nonblocking Versions of SERVERCLASS_ and TMF System Calls) 419