Esempio n. 1
0
TEST_F(connected_test, queue_declare_counts_table) {
  boost::uint32_t message_count = 123;
  boost::uint32_t consumer_count = 123;

  Table qTable;

  qTable.insert(TableEntry(TableKey("IsATest"), TableValue(true)));

  std::string queue = channel->DeclareQueueWithCounts(
      "queue_declare_counts_table", message_count, consumer_count, false, false,
      true, true, qTable);

  EXPECT_NE("", queue);
  EXPECT_EQ(0, message_count);
  EXPECT_EQ(0, consumer_count);

  const std::string body("Test Message");
  BasicMessage::ptr_t out_message = BasicMessage::Create(body);
  channel->BasicPublish("", queue, out_message);
  channel->BasicPublish("", queue, out_message);
  channel->BasicPublish("", queue, out_message);

  std::string queue2 = channel->DeclareQueueWithCounts(
      "queue_declare_counts_table", message_count, consumer_count, false, false,
      true, true, qTable);

  EXPECT_NE("", queue2);
  EXPECT_EQ(3, message_count);
  EXPECT_EQ(0, consumer_count);

  channel->DeleteQueue(queue);
}
Esempio n. 2
0
const char *
RequestHeaderValue(TSession *   const sessionP,
                   const char * const name) {

    return TableValue(&sessionP->requestHeaderFields, name);
}
Esempio n. 3
0
TableValue TableValueImpl::CreateTableValue(const amqp_field_value_t &entry)
{
  switch (entry.kind)
  {
    case AMQP_FIELD_KIND_VOID:
      return TableValue();
    case AMQP_FIELD_KIND_BOOLEAN:
      return TableValue((bool)entry.value.boolean);
    case AMQP_FIELD_KIND_I8:
      return TableValue(entry.value.i8);
    case AMQP_FIELD_KIND_I16:
      return TableValue(entry.value.i16);
    case AMQP_FIELD_KIND_I32:
      return TableValue(entry.value.i32);
    case AMQP_FIELD_KIND_I64:
    case AMQP_FIELD_KIND_TIMESTAMP:
      return TableValue(entry.value.i64);
    case AMQP_FIELD_KIND_F32:
      return TableValue(entry.value.f32);
    case AMQP_FIELD_KIND_F64:
      return TableValue(entry.value.f64);
    case AMQP_FIELD_KIND_UTF8:
    case AMQP_FIELD_KIND_BYTES:
      return TableValue(std::string((char*)entry.value.bytes.bytes,
                                    entry.value.bytes.len));
    case AMQP_FIELD_KIND_ARRAY:
    {
      amqp_array_t array = entry.value.array;
      Detail::array_t new_array;

      for (int i = 0; i < array.num_entries; ++i)
      {
        new_array.push_back(CreateTableValue(array.entries[i]));
      }

      return TableValue(new_array);
    }
    case AMQP_FIELD_KIND_TABLE:
      return TableValue(CreateTable(entry.value.table));
    case AMQP_FIELD_KIND_DECIMAL:
    default:
      return TableValue();
  }
}