Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

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.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026