1
0
mirror of https://github.com/php/doc-fr.git synced 2026-03-24 07:02:06 +01:00
Files
archived-doc-fr/reference/ev/evembed/construct.xml
2026-03-02 14:35:06 +01:00

163 lines
4.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: b4fbf4434abeca44c58575ff3967e5640f7877d5 Maintainer: yannick Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="evembed.construct">
<refnamediv>
<refname>EvEmbed::__construct</refname>
<refpurpose>Construit un objet EvEmbed</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<constructorsynopsis>
<modifier>public</modifier>
<methodname>EvEmbed::__construct</methodname>
<methodparam>
<type>object</type>
<parameter>other</parameter>
</methodparam>
<methodparam choice="opt">
<type>callable</type>
<parameter>callback</parameter>
</methodparam>
<methodparam choice="opt">
<type>mixed</type>
<parameter>data</parameter>
</methodparam>
<methodparam choice="opt">
<type>int</type>
<parameter>priority</parameter>
</methodparam>
</constructorsynopsis>
<simpara>
Il s'agit d'un type de watcher avancé qui permet d'intégrer une boucle
d'événement dans une autre (actuellement, seuls les événements IO sont
supportés dans la boucle interne, les autres types de watcher ne doivent
pas être utilisés).
</simpara>
<simpara>
Voir la
<link xlink:href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_embed_code_when_one_backend_">
documentation libev</link> pour plus de détails.
</simpara>
<simpara>
Ce watcher est le plus utile sous les systèmes
<emphasis>BSD</emphasis><literal>kqueue</literal> n'est pas utilisé,
pour être capable de gérer un grand nombre de sockets. Voir l'exemple ci-dessous.
</simpara>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term>
<parameter>other</parameter>
</term>
<listitem>
<simpara>
Une instance de <classname>EvLoop</classname>. La boucle à intégrer ;
elle doit être encapsulable (voir la méthode
<methodname>Ev::embeddableBackends</methodname>).
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>callback</parameter>
</term>
<listitem>
<simpara>
Voir les
<link linkend="ev.watcher-callbacks">fonctions de rappel des Watcher</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>data</parameter>
</term>
<listitem>
<simpara>
Données personnalisées à associer avec le watcher.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>priority</parameter>
</term>
<listitem>
<simpara>
<link linkend="ev.constants.watcher-pri">Priorité du Watcher</link>
</simpara>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title>
Encapsulage d'une boucle créée avec le gestionnaire kqueue dans la boucle par défaut</title>
<programlisting role="php">
<![CDATA[
<?php
/*
* Vérifie si kqueue est disponible et crée un gestionnaire kqueue
* pour l'utiliser avec les sockets (qui fonctionne habituellement avec n'importe quelle implémentation
* de kqueue. Stocke la boucle d'événement kqueue/socket seulement, dans loop_socket.
* (optionnellement, utilisation de EVFLAG_NOENV)
*
* Exemple issu de
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop = EvLoop::defaultLoop();
$socket_loop = NULL;
$embed = NULL;
if (Ev::supportedBackends() & ~Ev::recommendedBackends() & Ev::BACKEND_KQUEUE) {
if (($socket_loop = new EvLoop(Ev::BACKEND_KQUEUE))) {
$embed = new EvEmbed($loop);
}
}
if (!$socket_loop) {
$socket_loop = $loop;
}
// Maintenant, on utilise $socket_loop pour tous les sockets, et $loop pour tout le reste
?>
]]>
</programlisting>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member>
<methodname>Ev::embeddableBackends</methodname>
</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
-->