예제 #1
0
void allocation::write_task_information(

  std::string &task_info) const

  {
  std::string cpus;
  std::string mems;
  char        buf[256];

  translate_vector_to_range_string(cpus, this->cpu_indices);
  translate_vector_to_range_string(mems, this->mem_indices);
  task_info = "{\"task\":{\"cpu_list\":\"" + cpus;
  task_info += "\",\"mem_list\":\"" + mems;
  if (this->task_cput_used != 0)
    {
    unsigned long cput_used = this->task_cput_used;
    snprintf(buf, sizeof(buf), "\",\"cpu_time_used\":%lu", cput_used);
    task_info += buf;
    }
  if (this->task_memory_used != 0)
    {
    snprintf(buf, sizeof(buf), "\",\"memory_used\":%llu", this->task_memory_used);
    task_info += buf;
    }
  snprintf(buf, sizeof(buf), "\",\"cores\":%d", this->cores);
  task_info += buf;
  snprintf(buf, sizeof(buf), ",\"threads\":%d", this->threads);
  task_info += buf;
  task_info += ",\"host\":\"" + this->hostname + "\"}}";
  } // END write_task_information()
예제 #2
0
void allocation::place_indices_in_string(

  std::string &output,
  int          which)

  {
  if (which == MEM_INDICES)
    translate_vector_to_range_string(output, this->mem_indices);
  else
    translate_vector_to_range_string(output, this->cpu_indices);
  } // END place_indices_in_string()
예제 #3
0
END_TEST


START_TEST(test_translate_vector_to_range_string)
  {
  std::string range_string;
  std::vector<int> indices;

  for (int i = 0; i < 10; i++)
    indices.push_back(i);

  translate_vector_to_range_string(range_string, indices);
  fail_unless(range_string == "0-9", "string is %s", range_string.c_str());

  indices.clear();
  for (int i = 0; i < 10; i++)
    {
    if (i % 2 == 0)
      indices.push_back(i);
    }

  translate_vector_to_range_string(range_string, indices);
  fail_unless(range_string == "0,2,4,6,8", range_string.c_str());
  
  indices.clear();
  for (int i = 0; i < 3; i++)
    indices.push_back(i);
  for (int i = 4; i < 7; i++)
    indices.push_back(i);
  translate_vector_to_range_string(range_string, indices);
  fail_unless(range_string == "0-2,4-6");
  
  indices.clear();
  for (int i = 0; i < 3; i++)
    indices.push_back(i);
  for (int i = 4; i < 7; i++)
    indices.push_back(i);
  indices.push_back(8);
  indices.push_back(10);
  for (int i = 13; i < 15; i++)
    indices.push_back(i);

  translate_vector_to_range_string(range_string, indices);
  fail_unless(range_string == "0-2,4-6,8,10,13-14");
  }