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