struct _msg_info

Информация о сообщении

Прототип:

#include <sys/neutrino.h>
struct _msg_info { /* _msg_info _server_info */
_Uint32t nd; /* client server */
_Uint32t srcnd; /* server - */
pid_t pid; /* client server */
_Int32t tid; /* thread - */
_Int32t chid; /* server server */
_Int32t scoid; /* server server */
_Int32t coid; /* client client */
_Int32t msglen; /* msg - */
_Int32t srcmsglen; /* thread - */
_Int32t dstmsglen; /* thread - */
_Int16t priority; /* thread - */
_Int16t flags; /* - client */
_Uint32t reserved;
};

Описание:

The _msg_info structure contains information about a message. The members include:

nd
The node descriptor of the client machine as viewed by the server. See “Дескрипторы узлов” below.
srcnd
The node descriptor of the server, as viewed by the client.
pid
The process ID of the sending thread.
tid
The thread ID of the sending thread.
chid
The channel ID that the message was received on.
scoid
The server connection ID. This is a unique server-side client process identifier, corresponding to a particular process ID on a particular node.
coid
The client connection ID.
msglen
The number of bytes received.
srcmsglen
The length of the source message, in bytes, as sent by MsgSend*(). This may be greater than the value in msglen. This member is valid only if you set _NTO_CHF_SENDER_LEN in the flags argument to ChannelCreate() for the channel that received the message.
dstmsglen
The length of the client's reply buffer, in bytes, as passed to MsgSend*(). This member is valid only if you set _NTO_CHF_REPLY_LEN in the flags argument to ChannelCreate() for the channel that received the message.
priority
The priority of the sending thread.
flags
Flags that provide information about the sender and message:
_NTO_MI_ENDIAN_BIG
the sending machine is big endian.
_NTO_MI_ENDIAN_DIFF
the sending machine has a different endian-ness from the receiving machine.
_NTO_MI_NET_CRED_DIRTY
used internally.
_NTO_MI_UNBLOCK_REQ
the client has an unblock pending (i.e. a timeout on the send occurred or a signal was delivered and _NTO_CHF_UNBLOCK is set on the channel).


Note: The msglen and srcmsglen members are valid only until the next call to MsgRead*() or MsgWrite*().

If msglen is less than srcmsglen and is also less than the receive buffer size, the message is a network transaction that requires more reading of data with MsgRead*().

Дескрипторы узлов

The nd (node descriptor) is a temporary numeric description of a remote node; ND_LOCAL_NODE (or 0) is the descriptor for the local node.

To: Use this function:
Compare two nd objects ND_NODE_CMP()
Convert a nd to text netmgr_ndtostr()
Convert text to a nd netmgr_strtond()

Классификация:

ЗОСРВ «Нейтрино»

Тематические ссылки:

struct _server_info, MsgInfo(), MsgRead*(), MsgReceive(), MsgReceivev(), MsgSend*(), MsgWrite*(), ND_NODE_CMP(), netmgr_ndtostr(), netmgr_remote_nd(), netmgr_strtond()




Предыдущий раздел: Описание API системной библиотеки