Files
doc-fr/reference/sem/functions/msg-send.xml
Samuel NELA ab29eee1aa Fix typos in magic methods documentation and change translation of serialization (#611)
Stop using "linéarisation" and instead use "sérialisation"
2023-09-20 22:11:41 +01:00

181 lines
6.1 KiB
XML
Executable File

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f7e33278a909d7f7bf491f77cb10c93581091736 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.msg-send" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>msg_send</refname>
<refpurpose>Envoie un message dans une file</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>msg_send</methodname>
<methodparam><type>SysvMessageQueue</type><parameter>queue</parameter></methodparam>
<methodparam><type>int</type><parameter>message_type</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>int</type><type>float</type><type>bool</type></type><parameter>message</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>serialize</parameter><initializer>&true;</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>blocking</parameter><initializer>&true;</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter role="reference">error_code</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
<function>msg_send</function> envoie le message <parameter>message</parameter>
de type <parameter>message_type</parameter> (qui DOIT être plus grand que 0)
à la file de messages identifiée par <parameter>queue</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>queue</parameter></term>
<listitem>
<para>
La file d'attente de messages
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>message_type</parameter></term>
<listitem>
<para>
Le type du message (DOIT être plus grand que 0)
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>message</parameter></term>
<listitem>
<para>
Le corps du message
</para>
<note>
<para>
Si <parameter>serialize</parameter> est définit à &false; est fournit,
DOIT être du type : &string;, &integer;, &float; ou &boolean;.
Dans d'autres cas un avertissement sera émit.
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>serialize</parameter></term>
<listitem>
<para>
Le paramètre optionnel <parameter>serialize</parameter> contrôle la
méthode d'envoi du message <parameter>message</parameter>. <parameter>serialize</parameter>
vaut par défaut &true; ce qui signifie que le message <parameter>message</parameter>
sera sérialisé en utilisant le même mécanisme que celui qui est utilisé
par les sessions, avant d'être envoyé à la file de message. Cela permet
d'envoyer des tableaux et des objets complexes à d'autres scripts
PHP, ou bien, si vous utilisez l'extension WDDX, d'échanger des messages
avec des clients compatibles WDDX.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>blocking</parameter></term>
<listitem>
<para>
Si le message est trop grand pour être stocké par la file, votre
script attendra jusqu'à ce qu'un autre processus lise dans la
file un message, et libère assez de place pour votre message. C'est
le mode bloquant : vous pouvez éviter ce mode en utilisant le
paramètre <parameter>blocking</parameter> avec la valeur &false; :
dans ce cas, <function>msg_send</function> retournera immédiatement
&false; si le message est trop gros pour la file. Il assignera alors
au paramètre <parameter>error_code</parameter> la valeur de
<constant>MSG_EAGAIN</constant>,
indiquant que vous devriez essayer d'envoyer à nouveau votre
message, un peu plus tard.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>error_code</parameter></term>
<listitem>
<para>
Si la fonction échoue, le code d'erreur optionnel sera définit à la valeur de
la variable système errno.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
<para>
Lors de l'émission réussie d'un message, la file est mise à jour
comme ceci : <literal>msg_lrpid</literal> prend la valeur de l'identifiant
de processus du processus appelant, <literal>msg_qnum</literal> est incrémenté de
1 et <literal>msg_rtime</literal> prend la date et l'heure courante.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>queue</parameter> attend désormais une <classname>SysvMessageQueue</classname>;
auparavant, une <type>resource</type> était attendue.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>msg_remove_queue</function></member>
<member><function>msg_receive</function></member>
<member><function>msg_stat_queue</function></member>
<member><function>msg_set_queue</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->