<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.zmqpoll.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'zmqpoll.poll.php',
    1 => 'ZMQPoll::poll',
    2 => 'Sondear los elementos',
  ),
  'up' => 
  array (
    0 => 'class.zmqpoll.php',
    1 => 'ZMQPoll',
  ),
  'prev' => 
  array (
    0 => 'zmqpoll.getlasterrors.php',
    1 => 'ZMQPoll::getLastErrors',
  ),
  'next' => 
  array (
    0 => 'zmqpoll.remove.php',
    1 => 'ZMQPoll::remove',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/zmq/zmqpoll/poll.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="zmqpoll.poll" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">ZMQPoll::poll</h1>
  <p class="verinfo">(PECL zmq &gt;= 0.5.0)</p><p class="refpurpose"><span class="refname">ZMQPoll::poll</span> &mdash; <span class="dc-title">Sondear los elementos</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-zmqpoll.poll-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="methodname"><strong>ZMQPoll::poll</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter reference">&$readable</code></span>, <span class="methodparam"><span class="type"><a href="language.types.array.php" class="type array">array</a></span> <code class="parameter reference">&$writable</code></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$timeout</code><span class="initializer"> = -1</span></span>): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>

  <p class="para rdfs-comment">
   Sondea los elementos en el conjunto de sondeo actual. Los elementos legibles y escribibles son devueltos en
   los parámetros <code class="parameter">readable</code> y <code class="parameter">writable</code> respectivamente.
   Se puede utilizar <span class="function"><a href="zmqpoll.getlasterrors.php" class="function">ZMQPoll::getLastErrors()</a></span> para comprobar si existen errores.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-zmqpoll.poll-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">readable</code></dt>
     <dd>
      <p class="para">
       Un array donde se sevuelven los flujos de PHP/ZMQSockets legibles. El array
       se limpiará al inicio de la operación.
      </p>
     </dd>
    
    
     <dt><code class="parameter">writable</code></dt>
     <dd>
      <p class="para">
       Un array donde se sevuelven los flujos de PHP/ZMQSockets escribibles. El array
       se limpiará al inicio de la operación.
      </p>
     </dd>
    
    
     <dt><code class="parameter">timeout</code></dt>
     <dd>
      <p class="para">
       Tiempo de espera de la operación. -1 significa que el sondeo esperará hasta
       que al menos un elemento tenga actividad. Observe que desde la
       versión 1.0.0, el tiempo de espera del sondeo está definido en milisegundos, en lugar
       de en microsegundos.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-zmqpoll.poll-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   Devuelve un número entero que representa la cantidad de elementos con actividad.
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-zmqpoll.poll-errors">
  <h3 class="title">Errores/Excepciones</h3>
  <p class="para">
   Lanza una <span class="classname"><strong class="classname">ZMQPollException</strong></span> en caso de error.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-zmqpoll.poll-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Un ejemplo de <span class="function"><strong>ZMQPoll()</strong></span></strong></p>
    <div class="example-contents"><p>
     Crear un servidor de sondeos sencillo
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">/* Crear un socket, patrón de petición-respuesta (socket de respuesta) */<br /></span><span style="color: #0000BB">$context </span><span style="color: #007700">= new </span><span style="color: #0000BB">ZMQContext</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$server  </span><span style="color: #007700">= </span><span style="color: #0000BB">$context</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getSocket</span><span style="color: #007700">(</span><span style="color: #0000BB">ZMQ</span><span style="color: #007700">::</span><span style="color: #0000BB">SOCKET_REP</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Vincular al puerta 5555 en 127.0.0.1 */<br /></span><span style="color: #0000BB">$server</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">bind</span><span style="color: #007700">(</span><span style="color: #DD0000">"tcp://127.0.0.1:5555"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">/* Crear un conjunto de sondeo nuevo para mensajes entrantes/salientes */<br /></span><span style="color: #0000BB">$poll </span><span style="color: #007700">= new </span><span style="color: #0000BB">ZMQPoll</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">/* Añadir el objeto y escuchar la entrada/salida del sondeo */<br /></span><span style="color: #0000BB">$id </span><span style="color: #007700">= </span><span style="color: #0000BB">$poll</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #0000BB">$server</span><span style="color: #007700">, </span><span style="color: #0000BB">ZMQ</span><span style="color: #007700">::</span><span style="color: #0000BB">POLL_IN </span><span style="color: #007700">| </span><span style="color: #0000BB">ZMQ</span><span style="color: #007700">::</span><span style="color: #0000BB">POLL_OUT</span><span style="color: #007700">);<br />echo </span><span style="color: #DD0000">"Se añaió el objeto con id " </span><span style="color: #007700">. </span><span style="color: #0000BB">$id </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">/* Inicializar los arrays readable y writable */<br /></span><span style="color: #0000BB">$readable </span><span style="color: #007700">= array();<br /></span><span style="color: #0000BB">$writable </span><span style="color: #007700">= array();<br /><br />while (</span><span style="color: #0000BB">true</span><span style="color: #007700">) {<br />   </span><span style="color: #FF8000">/* Cantidad de eventos recuperados */<br />   </span><span style="color: #0000BB">$events </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br /><br />   try {<br />       </span><span style="color: #FF8000">/* Sondear hasta que haya algo que hacer */<br />       </span><span style="color: #0000BB">$events </span><span style="color: #007700">= </span><span style="color: #0000BB">$poll</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">poll</span><span style="color: #007700">(</span><span style="color: #0000BB">$readable</span><span style="color: #007700">, </span><span style="color: #0000BB">$writable</span><span style="color: #007700">, -</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />       </span><span style="color: #0000BB">$errors </span><span style="color: #007700">= </span><span style="color: #0000BB">$poll</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getLastErrors</span><span style="color: #007700">();<br /><br />       if (</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$errors</span><span style="color: #007700">) &gt; </span><span style="color: #0000BB">0</span><span style="color: #007700">) {<br />           foreach (</span><span style="color: #0000BB">$errors </span><span style="color: #007700">as </span><span style="color: #0000BB">$error</span><span style="color: #007700">) {<br />               echo </span><span style="color: #DD0000">"Error al sondear el objeto " </span><span style="color: #007700">. </span><span style="color: #0000BB">$error </span><span style="color: #007700">. </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />           }<br />       }<br />   } catch (</span><span style="color: #0000BB">ZMQPollException $e</span><span style="color: #007700">) {<br />       echo </span><span style="color: #DD0000">"Fallón el sondeo: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">() . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />   }<br /><br />   if (</span><span style="color: #0000BB">$events </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">0</span><span style="color: #007700">) {<br />       </span><span style="color: #FF8000">/* Recorrer los objetos legibles y los mensajes recibidos */<br />       </span><span style="color: #007700">foreach (</span><span style="color: #0000BB">$readable </span><span style="color: #007700">as </span><span style="color: #0000BB">$r</span><span style="color: #007700">) {<br />           try {<br />               echo </span><span style="color: #DD0000">"Mensaje recibido: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$r</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">recv</span><span style="color: #007700">() . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />           } catch (</span><span style="color: #0000BB">ZMQException $e</span><span style="color: #007700">) {<br />               echo </span><span style="color: #DD0000">"Falló la recepción: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">() . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />           }<br />       }<br /><br />       </span><span style="color: #FF8000">/* Recorrer los objetos escribibles y enviar de vuelta los mensajes */<br />       </span><span style="color: #007700">foreach (</span><span style="color: #0000BB">$writable </span><span style="color: #007700">as </span><span style="color: #0000BB">$w</span><span style="color: #007700">) {<br />           try {<br />               </span><span style="color: #0000BB">$w</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">send</span><span style="color: #007700">(</span><span style="color: #DD0000">"Got it!"</span><span style="color: #007700">);<br />           } catch (</span><span style="color: #0000BB">ZMQException $e</span><span style="color: #007700">) {<br />               echo </span><span style="color: #DD0000">"Falló el envío: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">() . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />           }<br />       }<br />   }<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


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