A connection is an endpoint of a communication link used to send and receive messages between two processes. Connections are described in detail in the TIBCO SmartSockets User’s Guide.
A connection has several timeout properties that are used to check for possible network failures. These timeouts are accessed with the functions TipcConnGetTimeout and TipcConnSetTimeout. This is how the enumerated type used to identify these properties is defined:
typedef enum { T_IPC_TIMEOUT_READ, T_IPC_TIMEOUT_WRITE, T_IPC_TIMEOUT_KEEP_ALIVE, T_IPC_TIMEOUT_DELIVERY } T_IPC_TIMEOUT;
The function TipcConnMsgSearch can be used to search a connection’s message queue for a specific message. It uses a search function defined in this way:
Connections have several types of callbacks. For more information on connection callbacks, see the TIBCO SmartSockets User’s Guide. Each callback type has a callback function type and a callback data type.
The connection process, default, read, and write callbacks all use similar data structures. This is how the data structures are defined:
typedef void T_ENTRY (*T_IPC_CONN_MSG_CB_FUNC)
(T_IPC_CONN conn, T_IPC_CONN_MSG_CB_DATA data, T_CB_ARG arg);
typedef T_IPC_CONN_MSG_CB_FUNC T_IPC_CONN_PROCESS_CB_FUNC;
typedef T_IPC_CONN_MSG_CB_FUNC T_IPC_CONN_DEFAULT_CB_FUNC;
typedef T_IPC_CONN_MSG_CB_FUNC T_IPC_CONN_WRITE_CB_FUNC;
typedef void T_ENTRY (*T_IPC_CONN_READ_CB_FUNC)
(T_IPC_CONN conn, T_IPC_CONN_READ_CB_DATA data, T_CB_ARG arg);
typedef struct T_IPC_CONN_MSG_CB_DATA_STRUCT
T_IPC_CONN_MSG_CB_DATA_STRUCT, *T_IPC_CONN_MSG_CB_DATA;
struct T_IPC_CONN_MSG_CB_DATA_STRUCT {
T_CB cb;
T_IPC_MSG msg;
};
typedef T_IPC_CONN_MSG_CB_DATA_STRUCT
T_IPC_CONN_WRITE_CB_DATA_STRUCT,
*T_IPC_CONN_WRITE_CB_DATA;
typedef T_IPC_CONN_MSG_CB_DATA_STRUCT
T_IPC_CONN_PROCESS_CB_DATA_STRUCT, *T_IPC_CONN_PROCESS_CB_DATA;
typedef T_IPC_CONN_MSG_CB_DATA_STRUCT
T_IPC_CONN_DEFAULT_CB_DATA_STRUCT, *T_IPC_CONN_DEFAULT_CB_DATA;
typedef struct T_IPC_CONN_READ_CB_DATA_STRUCT
T_IPC_CONN_READ_CB_DATA_STRUCT, *T_IPC_CONN_READ_CB_DATA;
struct T_IPC_CONN_READ_CB_DATA_STRUCT {
T_CB cb;
T_IPC_MSG msg;
T_INT4 packet_size; /* make available for monitoring */
};
This is how the connection error callback data structures are defined:
typedef void T_ENTRY (*T_IPC_CONN_ERROR_CB_FUNC) (T_IPC_CONN conn, T_IPC_CONN_ERROR_CB_DATA data, T_CB_ARG arg); typedef struct T_IPC_CONN_ERROR_CB_DATA_STRUCT T_IPC_CONN_ERROR_CB_DATA_STRUCT, *T_IPC_CONN_ERROR_CB_DATA; struct T_IPC_CONN_ERROR_CB_DATA_STRUCT { T_CB cb; T_INT4 c_err_num;/* C error number (errno) */
T_INT4 os_err_num;/* OS error number (vaxc$errno, GetLastError(), etc.) */
T_INT4 socket_err_num;/* socket error number (WSAGetLastError(), */
/* sock_errno(), etc.) */
};
This is how the connection queue callback data structures are defined:
typedef void T_ENTRY (*T_IPC_CONN_QUEUE_CB_FUNC) (T_IPC_CONN conn, T_IPC_CONN_QUEUE_CB_DATA data, T_CB_ARG arg); typedef struct T_IPC_CONN_QUEUE_CB_DATA_STRUCT T_IPC_CONN_QUEUE_CB_DATA_STRUCT, *T_IPC_CONN_QUEUE_CB_DATA; struct T_IPC_CONN_QUEUE_CB_DATA_STRUCT { T_CB cb; T_IPC_MSG msg;/* message inserted into or deleted from queue */
T_BOOL insert_flag;/* TRUE if inserted, FALSE if deleted */
T_INT4 position;/* position of message in queue (0 is front) */
};
This is how the connection encode and decode callback data structures are defined:
typedef void T_ENTRY (*T_IPC_CONN_ENCODE_CB_FUNC) (T_IPC_CONN conn, T_IPC_CONN_ENCODE_CB_DATA data, T_CB_ARG arg); typedef void T_ENTRY (*T_IPC_CONN_DECODE_CB_FUNC) (T_IPC_CONN conn, T_IPC_CONN_DECODE_CB_DATA data, T_CB_ARG arg); typedef struct T_IPC_CONN_ENCODE_CB_DATA_STRUCT T_IPC_CONN_ENCODE_CB_DATA_STRUCT, *T_IPC_CONN_ENCODE_CB_DATA; struct T_IPC_CONN_ENCODE_CB_DATA_STRUCT { T_CB cb; T_PTR packet;/* packet minus counter */
T_INT4 packet_size;/* number of bytes in packet */
T_PTR orig_packet;/* for reference */
T_INT4 orig_packet_size;/* for reference */
T_IPC_MSG orig_msg;/* make available for monitoring */
}; typedef struct T_IPC_CONN_DECODE_CB_DATA_STRUCT T_IPC_CONN_DECODE_CB_DATA_STRUCT, *T_IPC_CONN_DECODE_CB_DATA; struct T_IPC_CONN_DECODE_CB_DATA_STRUCT { T_CB cb; T_PTR packet;/* packet minus counter */
T_INT4 packet_size;/* number of bytes in packet */
T_PTR orig_packet;/* for reference */
T_INT4 orig_packet_size;/* for reference */
};
TIBCO SmartSockets™ Application Programming Interface Software Release 6.8, July 2006 Copyright © TIBCO Software Inc. All rights reserved www.tibco.com |