Example #1
0
 protected function x_start_ok($client_properties, $mechanism, $response, $locale)
 {
     $args = new AMQP_Writer();
     $args->write_table($client_properties);
     $args->write_shortstr($mechanism);
     $args->write_longstr($response);
     $args->write_shortstr($locale);
     $this->send_method_frame(array(10, 11), $args);
 }
Example #2
0
 /**
  * declare queue, create if needed
  */
 public function queue_declare($queue = "", $passive = false, $durable = false, $exclusive = false, $auto_delete = true, $nowait = false, $arguments = NULL, $ticket = NULL)
 {
     if ($arguments == NULL) {
         $arguments = array();
     }
     $args = new AMQP_Writer();
     if ($ticket != NULL) {
         $args->write_short($ticket);
     } else {
         $args->write_short($this->default_ticket);
     }
     $args->write_shortstr($queue);
     $args->write_bit($passive);
     $args->write_bit($durable);
     $args->write_bit($exclusive);
     $args->write_bit($auto_delete);
     $args->write_bit($nowait);
     $args->write_table($arguments);
     $this->send_method_frame(array(50, 10), $args);
     if (!$nowait) {
         return $this->wait(array("50,11"));
     }
 }
Example #3
0
 /**
  * Write PHP array, as table. Input array format: keys are strings,
  * values are (type,value) tuples.
  */
 public function write_table($d)
 {
     $this->flushbits();
     $table_data = new AMQP_Writer();
     foreach ($d as $k => $va) {
         list($ftype, $v) = $va;
         $table_data->write_shortstr($k);
         if ($ftype == 'S') {
             $table_data->write('S');
             $table_data->write_longstr($v);
         } else {
             if ($ftype == 'I') {
                 $table_data->write('I');
                 $table_data->write_signed_long($v);
             } else {
                 if ($ftype == 'D') {
                     // 'D' type values are passed AMQPDecimal instances.
                     $table_data->write('D');
                     $table_data->write_octet($v->e);
                     $table_data->write_signed_long($v->n);
                 } else {
                     if ($ftype == 'T') {
                         $table_data->write('T');
                         $table_data->write_timestamp($v);
                     } else {
                         if ($ftype = 'F') {
                             $table_data->write('F');
                             $table_data->write_table($v);
                         }
                     }
                 }
             }
         }
     }
     $table_data = $table_data->getvalue();
     $this->write_long(strlen($table_data));
     $this->write($table_data);
 }