IPC_$RCV Domain/OS IPC_$RCV
NAME
ipc_$rcv - retrieve an IPC datagram
SYNOPSIS (C)
#include <apollo/base.h>
#include <apollo/ipc.h>
void ipc_$rcv(
ipc_$socket_handle_t receive_socket,
unsigned short &header_buffer_size,
unsigned short &data_buffer_size,
ipc_$socket_handle_t from_socket,
void *header_buffer,
unsigned short *header_length,
void *data_buffer,
unsigned short *data_length,
status_$t *status)
SYNOPSIS (Pascal)
%include '/sys/ins/base.ins.pas';
%include '/sys/ins/ipc.ins.pas';
procedure ipc_$rcv(
in receive_socket: ipc_$socket_handle_t;
in header_buffer_size: pinteger;
in data_buffer_size: pinteger;
out from_socket: ipc_$socket_handle_t;
out header_buffer: univ ipc_$hdr_info_t;
out header_length: pinteger;
out data_buffer: univ ipc_$data_t;
out data_length: pinteger;
out status: status_$t);
SYNOPSIS (FORTRAN)
%include '/sys/ins/base.ins.ftn'
%include '/sys/ins/ipc.ins.ftn'
integer*2 header_buffer_size, data_buffer_size
integer*2 header_length, data_length
integer*4 status
character receive_socket*20, from_socket*20
character header_buffer*128, data_buffer*1024
call ipc_$rcv(receive_socket, header_buffer_size,
& data_buffer_size, from_socket,
& header_buffer, header_length,
& data_buffer, data_length, status)
DESCRIPTION
Ipc_$rcv retrieves a datagram from the socket on socket_handle, if there
is one. Datagrams are retrieved in the order of their arrival at the
socket.
receive_socket
The handle for the socket to get the datagram from.
header_buffer_size
The number of bytes available to receive the datagram header.
Ipc_$rcv will not write more than header_buffer_size bytes from the
datagram header into the buffer at header_buffer. An IPC datagram
header can contain up to 128 bytes.
data_buffer_size
The number of bytes available to receive the datagram data.
Ipc_$rcv will not write more than data_buffer_size bytes of datagram
data into the buffer at data_buffer. An IPC datagram can contain up
to 1024 bytes of data.
from_socket
The handle for the socket where the datagram originated.
header_buffer
The header from the received datagram.
header_length
The number of bytes that ipc_$rcv copied into header_buffer.
data_buffer
The data from the received datagram.
data_length
The number of bytes that ipc_$rcv copied into data_buffer.
status
The completion status. If the socket is empty, ipc_$rcv returns
immediately with the completion status ipc_$socket_empty.