return data.u.dbl;
}
+static inline void append_to_vector(std::vector <char> &buffer, char *buf)
+{
+ size_t strlen_buf = strlen(buf);
+ std::vector<char>::size_type sz = buffer.size();
+ buffer.resize(sz + strlen_buf);
+ memcpy(&buffer[sz], buf, strlen_buf);
+}
+
void ProfLogger::
write_json_to_buf(std::vector <char> &buffer)
{
char buf[512];
Mutex::Locker lck(m_lock);
+ snprintf(buf, sizeof(buf), "'%s':{", m_name.c_str());
+ append_to_vector(buffer, buf);
+
prof_log_data_vec_t::const_iterator d = m_data.begin();
prof_log_data_vec_t::const_iterator d_end = m_data.end();
for (; d != d_end; ++d) {
break;
}
}
- size_t strlen_buf = strlen(buf);
- std::vector<char>::size_type sz = buffer.size();
- buffer.resize(sz + strlen_buf);
- memcpy(&buffer[sz], buf, strlen_buf);
+ append_to_vector(buffer, buf);
}
+
+ buffer.push_back('}');
}
const std::string &ProfLogger::
: m_cct(cct),
m_lower_bound(lower_bound),
m_upper_bound(upper_bound),
- m_name(std::string("ProfLogger::") + name.c_str()),
- m_lock(m_name.c_str())
+ m_name(name.c_str()),
+ m_lock_name(std::string("ProfLogger::") + name.c_str()),
+ m_lock(m_lock_name.c_str())
{
m_data.resize(upper_bound - lower_bound - 1);
}
ProfLoggerTestClient test_client(get_socket_path());
std::string msg;
ASSERT_EQ("", test_client.get_message(&msg));
- ASSERT_EQ("{'element1':0,'element2':0,'element3':{'count':0,'sum':0},}", msg);
+ ASSERT_EQ("{'fake_proflogger_1':{'element1':0,"
+ "'element2':0,'element3':{'count':0,'sum':0},}}", msg);
fake_pf->inc(FAKE_PROFLOGGER1_ELEMENT_1);
fake_pf->fset(FAKE_PROFLOGGER1_ELEMENT_2, 0.5);
fake_pf->finc(FAKE_PROFLOGGER1_ELEMENT_3, 100.0);
ASSERT_EQ("", test_client.get_message(&msg));
- ASSERT_EQ("{'element1':1,'element2':0.5,'element3':{'count':1,'sum':100},}", msg);
+ ASSERT_EQ("{'fake_proflogger_1':{'element1':1,"
+ "'element2':0.5,'element3':{'count':1,'sum':100},}}", msg);
fake_pf->finc(FAKE_PROFLOGGER1_ELEMENT_3, 0.0);
fake_pf->finc(FAKE_PROFLOGGER1_ELEMENT_3, 25.0);
ASSERT_EQ("", test_client.get_message(&msg));
- ASSERT_EQ("{'element1':1,'element2':0.5,'element3':{'count':3,'sum':125},}", msg);
+ ASSERT_EQ("{'fake_proflogger_1':{'element1':1,'element2':0.5,"
+ "'element3':{'count':3,'sum':125},}}", msg);
}
enum {
std::string msg;
ASSERT_EQ("", test_client.get_message(&msg));
- ASSERT_EQ("{'element1':0,'element2':0,'element3':{'count':0,'sum':0},'foo':0,'bar':0,}", msg);
+ ASSERT_EQ("{'fake_proflogger_1':{'element1':0,'element2':0,'element3':"
+ "{'count':0,'sum':0},}'fake_proflogger_2':{'foo':0,'bar':0,}}", msg);
fake_pf1->inc(FAKE_PROFLOGGER1_ELEMENT_1);
fake_pf1->inc(FAKE_PROFLOGGER1_ELEMENT_1, 5);
ASSERT_EQ("", test_client.get_message(&msg));
- ASSERT_EQ("{'element1':6,'element2':0,'element3':{'count':0,'sum':0},'foo':0,'bar':0,}", msg);
+ ASSERT_EQ("{'fake_proflogger_1':{'element1':6,'element2':0,'element3':"
+ "{'count':0,'sum':0},}'fake_proflogger_2':{'foo':0,'bar':0,}}", msg);
coll->logger_remove(fake_pf2);
ASSERT_EQ("", test_client.get_message(&msg));
- ASSERT_EQ("{'element1':6,'element2':0,'element3':{'count':0,'sum':0},}", msg);
+ ASSERT_EQ("{'fake_proflogger_1':{'element1':6,'element2':0,"
+ "'element3':{'count':0,'sum':0},}}", msg);
coll->logger_clear();
ASSERT_EQ("", test_client.get_message(&msg));