<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.evembed.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'evembed.construct.php',
    1 => 'EvEmbed::__construct',
    2 => 'Construye un objeto EvEmbed',
  ),
  'up' => 
  array (
    0 => 'class.evembed.php',
    1 => 'EvEmbed',
  ),
  'prev' => 
  array (
    0 => 'class.evembed.php',
    1 => 'EvEmbed',
  ),
  'next' => 
  array (
    0 => 'evembed.createstopped.php',
    1 => 'EvEmbed::createStopped',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/ev/evembed/construct.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="evembed.construct" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">EvEmbed::__construct</h1>
  <p class="verinfo">(PECL ev &gt;= 0.2.0)</p><p class="refpurpose"><span class="refname">EvEmbed::__construct</span> &mdash; <span class="dc-title">Construye un objeto EvEmbed</span></p>

 </div>
 <div class="refsect1 description" id="refsect1-evembed.construct-description">
  <h3 class="title">Descripción</h3>
  <div class="constructorsynopsis dc-description">
   <span class="modifier">public</span>
   <span class="methodname"><strong>EvEmbed::__construct</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam">
    
    <span class="type"><a href="language.types.object.php" class="type object">object</a></span> <code class="parameter">$other</code>
   </span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam">
    
    <span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span> <code class="parameter">$callback</code>
   <span class="initializer"> = ?</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam">
    
    <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$data</code>
   <span class="initializer"> = ?</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam">
    
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$priority</code>
   <span class="initializer"> = ?</span></span><br>)</div>

  <p class="simpara">
   Se trata de un tipo de watcher avanzado que permite integrar un bucle
   de eventos en otro (actualmente, solo los eventos IO son
   soportados en el bucle interno, otros tipos de watcher no deben
   ser utilizados).
  </p>
  <p class="simpara">
   Ver la
   <a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_embed_code_when_one_backend_" class="link external">&raquo;&nbsp;
   documentación libev</a> para más detalles.
  </p>
  <p class="simpara">
   Este watcher es más útil en sistemas
   <em>BSD</em> donde <code class="literal">kqueue</code> no es utilizado,
   para poder manejar un gran número de sockets. Ver el ejemplo a continuación.
  </p>
 </div>

 <div class="refsect1 parameters" id="refsect1-evembed.construct-parameters">
  <h3 class="title">Parámetros</h3>
  <dl>
   
    <dt>
     <code class="parameter">other</code>
    </dt>
    <dd>
     <span class="simpara">
      Una instancia de <span class="classname"><a href="class.evloop.php" class="classname">EvLoop</a></span>. El bucle a integrar;
      debe ser encapsulable (ver el método
      <span class="methodname"><a href="ev.embeddablebackends.php" class="methodname">Ev::embeddableBackends()</a></span>).
     </span>
    </dd>
   
   
    <dt>
     <code class="parameter">callback</code>
    </dt>
    <dd>
     <span class="simpara">
      Ver las
      <a href="ev.watcher-callbacks.php" class="link">funciones de retrollamada de los Watcher</a>.
     </span>
    </dd>
   
   
    <dt>
     <code class="parameter">data</code>
    </dt>
    <dd>
     <span class="simpara">
      Datos personalizados para asociar con el watcher.
     </span>
    </dd>
   
   
    <dt>
     <code class="parameter">priority</code>
    </dt>
    <dd>
     <span class="simpara">
      <a href="class.ev.php#ev.constants.watcher-pri" class="link">Prioridad del Watcher</a>
     </span>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 examples" id="refsect1-evembed.construct-examples">
  <h3 class="title">Ejemplos</h3>
 <div class="example" id="example-1">
   <p><strong>Ejemplo #1 
    Encapsulamiento de un bucle creado con el gestor kqueue en el bucle por omisión</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*<br /> * Verifica si kqueue está disponible y crea un gestor kqueue<br /> * para usarlo con los sockets (que funciona habitualmente con cualquier implementación<br /> * de kqueue. Almacena el bucle de eventos kqueue/socket solo, en loop_socket.<br /> * (opcionalmente, uso de EVFLAG_NOENV)<br /> *<br /> * Ejemplo tomado de<br /> * http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9<br /> */<br /></span><span style="color: #0000BB">$loop        </span><span style="color: #007700">= </span><span style="color: #0000BB">EvLoop</span><span style="color: #007700">::</span><span style="color: #0000BB">defaultLoop</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$socket_loop </span><span style="color: #007700">= </span><span style="color: #0000BB">NULL</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$embed       </span><span style="color: #007700">= </span><span style="color: #0000BB">NULL</span><span style="color: #007700">;<br /><br />if (</span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">supportedBackends</span><span style="color: #007700">() &amp; ~</span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">recommendedBackends</span><span style="color: #007700">() &amp; </span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">BACKEND_KQUEUE</span><span style="color: #007700">) {<br />    if ((</span><span style="color: #0000BB">$socket_loop </span><span style="color: #007700">= new </span><span style="color: #0000BB">EvLoop</span><span style="color: #007700">(</span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">BACKEND_KQUEUE</span><span style="color: #007700">))) {<br />        </span><span style="color: #0000BB">$embed </span><span style="color: #007700">= new </span><span style="color: #0000BB">EvEmbed</span><span style="color: #007700">(</span><span style="color: #0000BB">$loop</span><span style="color: #007700">);<br />    }<br />}<br /><br />if (!</span><span style="color: #0000BB">$socket_loop</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$socket_loop </span><span style="color: #007700">= </span><span style="color: #0000BB">$loop</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">// Ahora, se usa $socket_loop para todos los sockets, y $loop para todo lo demás<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </div>

 <div class="refsect1 seealso" id="refsect1-evembed.construct-seealso">
  <h3 class="title">Ver también</h3>
  <ul class="simplelist">
   <li>
    <span class="methodname"><a href="ev.embeddablebackends.php" class="methodname" rel="rdfs-seeAlso">Ev::embeddableBackends()</a> - Devuelve el conjunto de backends que pueden ser encapsulados en otros bucles de eventos</span>
   </li>
  </ul>
 </div>

</div><?php manual_footer($setup); ?>