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); }
/** * 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")); } }
/** * 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); }