* Message queue numeric ID *

* @param int $permissions [optional]

* Queue permissions. Default to 0666. If the message queue already * exists, the perms will be ignored. *

* @return resource|SysvMessageQueue|false a resource handle that can be used to access the System V message queue. */ #[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue|false"], default: "resource|false")] function msg_get_queue(int $key, int $permissions = 0666) {} /** * Send a message to a message queue * @link https://php.net/manual/en/function.msg-send.php * @param SysvMessageQueue|resource $queue * @param int $message_type * @param mixed $message * @param bool $serialize [optional]

* The optional serialize controls how the * message is sent. serialize * defaults to TRUE which means that the message is * serialized using the same mechanism as the session module before being * sent to the queue. This allows complex arrays and objects to be sent to * other PHP scripts, or if you are using the WDDX serializer, to any WDDX * compatible client. *

* @param bool $blocking [optional]

* If the message is too large to fit in the queue, your script will wait * until another process reads messages from the queue and frees enough * space for your message to be sent. * This is called blocking; you can prevent blocking by setting the * optional blocking parameter to FALSE, in which * case msg_send will immediately return FALSE if the * message is too big for the queue, and set the optional * errorcode to MSG_EAGAIN, * indicating that you should try to send your message again a little * later on. *

* @param int &$error_code [optional] * @return bool TRUE on success or FALSE on failure. *

* Upon successful completion the message queue data structure is updated as * follows: msg_lspid is set to the process-ID of the * calling process, msg_qnum is incremented by 1 and * msg_stime is set to the current time. *

*/ function msg_send(#[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue"], default: "resource")] $queue, int $message_type, $message, bool $serialize = true, bool $blocking = true, &$error_code): bool {} /** * Receive a message from a message queue * @link https://php.net/manual/en/function.msg-receive.php * @param SysvMessageQueue|resource $queue * @param int $desired_message_type

* If desiredmsgtype is 0, the message from the front * of the queue is returned. If desiredmsgtype is * greater than 0, then the first message of that type is returned. * If desiredmsgtype is less than 0, the first * message on the queue with the lowest type less than or equal to the * absolute value of desiredmsgtype will be read. * If no messages match the criteria, your script will wait until a suitable * message arrives on the queue. You can prevent the script from blocking * by specifying MSG_IPC_NOWAIT in the * flags parameter. *

* @param int &$received_message_type

* The type of the message that was received will be stored in this * parameter. *

* @param int $max_message_size

* The maximum size of message to be accepted is specified by the * maxsize; if the message in the queue is larger * than this size the function will fail (unless you set * flags as described below). *

* @param mixed &$message

* The received message will be stored in message, * unless there were errors receiving the message. *

* @param bool $unserialize [optional]

* If set to * TRUE, the message is treated as though it was serialized using the * same mechanism as the session module. The message will be unserialized * and then returned to your script. This allows you to easily receive * arrays or complex object structures from other PHP scripts, or if you * are using the WDDX serializer, from any WDDX compatible source. *

*

* If unserialize is FALSE, the message will be * returned as a binary-safe string. *

* @param int $flags [optional]

* The optional flags allows you to pass flags to the * low-level msgrcv system call. It defaults to 0, but you may specify one * or more of the following values (by adding or ORing them together). * * Flag values for msg_receive * * * * * * * * * * * * *
MSG_IPC_NOWAITIf there are no messages of the * desiredmsgtype, return immediately and do not * wait. The function will fail and return an integer value * corresponding to MSG_ENOMSG. *
MSG_EXCEPTUsing this flag in combination with a * desiredmsgtype greater than 0 will cause the * function to receive the first message that is not equal to * desiredmsgtype.
MSG_NOERROR * If the message is longer than maxsize, * setting this flag will truncate the message to * maxsize and will not signal an error. *
*

* @param int $error_code [optional]

* If the function fails, the optional errorcode * will be set to the value of the system errno variable. *

* @return bool TRUE on success or FALSE on failure. *

* Upon successful completion the message queue data structure is updated as * follows: msg_lrpid is set to the process-ID of the * calling process, msg_qnum is decremented by 1 and * msg_rtime is set to the current time. *

*/ function msg_receive(#[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue"], default: "resource")] $queue, int $desired_message_type, &$received_message_type, int $max_message_size, mixed &$message, bool $unserialize = true, int $flags = 0, &$error_code): bool {} /** * Destroy a message queue * @link https://php.net/manual/en/function.msg-remove-queue.php * @param SysvMessageQueue|resource $queue

* Message queue resource handle *

* @return bool TRUE on success or FALSE on failure. */ function msg_remove_queue(#[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue"], default: "resource")] $queue): bool {} /** * Returns information from the message queue data structure * @link https://php.net/manual/en/function.msg-stat-queue.php * @param SysvMessageQueue|resource $queue

* Message queue resource handle *

* @return array|false The return value is an array whose keys and values have the following * meanings: * * Array structure for msg_stat_queue * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
msg_perm.uid * The uid of the owner of the queue. *
msg_perm.gid * The gid of the owner of the queue. *
msg_perm.mode * The file access mode of the queue. *
msg_stime * The time that the last message was sent to the queue. *
msg_rtime * The time that the last message was received from the queue. *
msg_ctime * The time that the queue was last changed. *
msg_qnum * The number of messages waiting to be read from the queue. *
msg_qbytes * The maximum number of bytes allowed in one message queue. On * Linux, this value may be read and modified via * /proc/sys/kernel/msgmnb. *
msg_lspid * The pid of the process that sent the last message to the queue. *
msg_lrpid * The pid of the process that received the last message from the queue. *
*/ #[ArrayShape([ "msg_perm.uid" => "int", "msg_perm.gid" => "int", "msg_perm.mode" => "int", "msg_stime" => "int", "msg_rtime" => "int", "msg_ctime" => "int", "msg_qnum" => "int", "msg_qbytes" => "int", "msg_lspid" => "int", "msg_lrpid" => "int", ])] function msg_stat_queue(#[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue"], default: "resource")] $queue): array|false {} /** * Set information in the message queue data structure * @link https://php.net/manual/en/function.msg-set-queue.php * @param SysvMessageQueue|resource $queue

* Message queue resource handle *

* @param array $data

* You specify the values you require by setting the value of the keys * that you require in the data array. *

* @return bool TRUE on success or FALSE on failure. */ function msg_set_queue(#[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue"], default: "resource")] $queue, array $data): bool {} /** * Check whether a message queue exists * @link https://php.net/manual/en/function.msg-queue-exists.php * @param int $key

* Queue key. *

* @return bool TRUE on success or FALSE on failure. */ function msg_queue_exists(int $key): bool {} define('MSG_IPC_NOWAIT', 1); define('MSG_EAGAIN', 11); define('MSG_ENOMSG', 42); define('MSG_NOERROR', 2); define('MSG_EXCEPT', 4); /** * @since 8.0 */ final class SysvMessageQueue { /** * Cannot directly construct SysvMessageQueue, use msg_get_queue() instead * @see msg_get_queue() */ private function __construct() {} } // End of sysvmsg v.