mirror of
https://github.com/php/doc-ja.git
synced 2026-03-23 22:52:11 +01:00
177 lines
6.7 KiB
XML
177 lines
6.7 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: fd2f14b2e44fbda6dd3f94a1d07f2bc9a7567aff Maintainer: takagi Status: ready -->
|
|
<!-- Credits: mumumu -->
|
|
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.msg-send">
|
|
<refnamediv>
|
|
<refname>msg_send</refname>
|
|
<refpurpose>メッセージキューにメッセージを送信する</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>
|
|
<simpara>
|
|
<function>msg_send</function> は、<parameter>queue</parameter>
|
|
で指定したメッセージキューに対して <parameter>message_type</parameter>
|
|
で指定した型 (0 より大きい数値である必要があります) のメッセージ
|
|
<parameter>message</parameter> を送信します。
|
|
</simpara>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>queue</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
メッセージキュー
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>message_type</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
メッセージのタイプ (0より大きい数値でなければいけません)
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>message</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
メッセージの本体
|
|
</simpara>
|
|
<note>
|
|
<simpara>
|
|
<parameter>serialize</parameter> が &false; に設定された場合、
|
|
この値は <type>string</type>, <type>int</type>, <type>float</type>
|
|
または <type>bool</type> のいずれかでなければなりません。
|
|
それら以外の場合、警告が発生します。
|
|
</simpara>
|
|
</note>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>serialize</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
オプションのパラメータ <parameter>serialize</parameter> は、
|
|
<parameter>message</parameter> を送信する方法を制御します。
|
|
<parameter>serialize</parameter> のデフォルト値は &true; で、
|
|
この場合 <parameter>message</parameter> が送信される前に
|
|
セッションモジュールと同じ方法でシリアライズされます。
|
|
これにより、配列やオブジェクトのような複雑な形式のデータを
|
|
他の PHP スクリプトに送信することが可能となります。
|
|
また、もし WDDX シリアライザを使用しているなら、あらゆる WDDX
|
|
互換クライアントに対して同じことが可能となります。
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>blocking</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
メッセージがキューに収まらないほど大きい場合は、他のプロセスが
|
|
現在キューにあるメッセージを読み込んでキューの空き容量が確保されるまで
|
|
スクリプトの実行を待ち続けます。これをブロックモードといいます。
|
|
オプションのパラメータ <parameter>blocking</parameter>
|
|
を &false; に設定することでブロックモードではなくすることが可能で、
|
|
この場合、もしキューの空き容量よりも大きなメッセージを送信すると
|
|
<function>msg_send</function> はすぐに &false; を返します。
|
|
また、オプションのパラメータ <parameter>error_code</parameter>
|
|
を <constant>MSG_EAGAIN</constant> に設定すると、
|
|
少し時間をおいてメッセージを再度送信しなければならないことが戻り値からわかります。
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>error_code</parameter></term>
|
|
<listitem>
|
|
<simpara>
|
|
この関数の実行が失敗した場合、オプションのエラーコードがシステムの errno 変数の値に設定されます。
|
|
</simpara>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<simpara>
|
|
&return.success;
|
|
</simpara>
|
|
<simpara>
|
|
処理が正常に完了すると、メッセージキューデータ構造体は以下のように更新されます。
|
|
<parameter>msg_lspid</parameter> には呼び出し元のプロセス ID が
|
|
設定され、<parameter>msg_qnum</parameter> が 1 増加し、
|
|
<parameter>msg_stime</parameter> が現在の時刻に設定されます。
|
|
</simpara>
|
|
</refsect1>
|
|
|
|
<refsect1 role="changelog">
|
|
&reftitle.changelog;
|
|
<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> は、
|
|
<classname>SysvMessageQueue</classname> のインスタンスを期待するようになりました。
|
|
これより前のバージョンでは、リソースが期待されていました。
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<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>
|
|
</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
|
|
-->
|