DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
Developing applications using XTI or TLI

Transport provider states

XTI defines various states that a transport provider can be in. It also defines how calling the different functions in XTI can change the state of the transport provider.

XTI defines the following states:


T_UNINIT
This is the ``uninitialized'' state. In this state no transport endpoint exists. The only function that can be called from this state (without generating an error) is t_open.

T_UNBND
This is the ``unbound'' state. This state results from a successful call to t_open. In this state a transport endpoint exists, but no network address, host id, and local process id has been associated with it.

T_IDLE
This is the ``idle'' state. This state results from a successful call to t_bind. In this state a transport endpoint exists, and a network address, host id, and local process id have been associated with it. However, no connection has been established between this transport endpoint and a transport endpoint on another host.

T_OUTCON
This is the ``outgoing connection request'' state. In this state the transport provider has sent an outgoing connection request to another transport endpoint in response to a client's call to t_connect.

T_INCON
This is the ``incoming connection request'' state. an incoming connection request is pending. In this state the transport provider has received a connection request from a client.

T_DATAXFER
This is the ``data transfer'' state. This state is defined for connection-oriented service only. The transport provider must be in this state before a process (client or server) can send data over a connection. On the client, this state results from completion of a successful call to t_connect or t_rcvconnect. On the server, this state results from completion of a successful call to t_accept.

T_OUTREL
This is the ``outgoing orderly release'' state. This state is defined for connection-oriented service only. In this state, the process is waiting to receive an orderly release indication from the remote process. The transport provider enters this state after a call to t_sndrel.

T_INREL
This is the ``incoming orderly release'' state. This state is defined for connection-oriented service only. In this state, the process is waiting to send an orderly release request. The transport provider enters this state after a call to t_rcvrel.

Orderly release of a connection means that all data ``in the pipeline'' is transmitted to the destination transport endpoint before the connection is terminated. Note that some transport providers do not support orderly release. If you want to maximize the portability of your programs across different transport providers, you should not make use of orderly release. If you need the functionality of orderly release, you should establish your own protocol between the client and the server to verify that all data has been sent before performing a standard (abortive) release.

All transports support abortive release. With abortive release, the connection is terminated immediately. Consequently, data still ``in the pipeline'' may not be delivered to the destination transport endpoint.


Next topic: Error conditions
Previous topic: Priority of transmitted data

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003