X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fvom%2Fvom%2Fstat_client.cpp;h=6406e2151932164fea8336d330f270dd7f5d9bba;hb=refs%2Fchanges%2F45%2F16545%2F4;hp=b348c6c24eb2bdd6d2dd1a528079cba8df8662ca;hpb=7fd73afc60d6526a2c0f805385127b39daac9145;p=vpp.git diff --git a/extras/vom/vom/stat_client.cpp b/extras/vom/vom/stat_client.cpp index b348c6c24eb..6406e215193 100644 --- a/extras/vom/vom/stat_client.cpp +++ b/extras/vom/vom/stat_client.cpp @@ -17,29 +17,22 @@ namespace VOM { -stat_client::stat_data_t::stat_data_t() - : m_name("") - , m_type(STAT_DIR_TYPE_ILLEGAL) -{ -} - -stat_client::stat_data_t::stat_data_t(stat_segment_data_t* stat_seg_data) - : m_name(stat_seg_data->name) - , m_type(stat_seg_data->type) +stat_client::stat_data_t::stat_data_t(const stat_segment_data_t& stat_seg_data) + : m_name(stat_seg_data.name) + , m_type(stat_seg_data.type) { switch (m_type) { case STAT_DIR_TYPE_SCALAR_INDEX: - m_scalar_value = stat_seg_data->scalar_value; + m_scalar_value = stat_seg_data.scalar_value; break; case STAT_DIR_TYPE_COUNTER_VECTOR_SIMPLE: - m_simple_counter_vec = stat_seg_data->simple_counter_vec; + m_simple_counter_vec = stat_seg_data.simple_counter_vec; break; case STAT_DIR_TYPE_COUNTER_VECTOR_COMBINED: - m_combined_counter_vec = - reinterpret_cast(stat_seg_data->combined_counter_vec); + m_combined_counter_vec = stat_seg_data.combined_counter_vec; break; case STAT_DIR_TYPE_ERROR_INDEX: - m_error_Value = stat_seg_data->error_value; + m_error_value = stat_seg_data.error_value; break; case STAT_DIR_TYPE_ILLEGAL: break; @@ -59,22 +52,25 @@ stat_client::stat_data_t::type() const } double -stat_client::stat_data_t::get_stat_segment_scalar_data() +stat_client::stat_data_t::get_stat_segment_scalar_data() const { return m_scalar_value; } + uint64_t -stat_client::stat_data_t::get_stat_segment_error_data() +stat_client::stat_data_t::get_stat_segment_error_data() const { - return m_error_Value; + return m_error_value; } + uint64_t** -stat_client::stat_data_t::get_stat_segment_simple_counter_data() +stat_client::stat_data_t::get_stat_segment_simple_counter_data() const { return m_simple_counter_vec; } -counter_t** -stat_client::stat_data_t::get_stat_segment_combined_counter_data() + +vlib_counter_t** +stat_client::stat_data_t::get_stat_segment_combined_counter_data() const { return m_combined_counter_vec; } @@ -83,6 +79,9 @@ stat_client::stat_client(std::string& socket_name) : m_socket_name(socket_name) , m_patterns() , m_stat_connect(0) + , m_counter_vec() + , m_stat_seg_data(nullptr) + , m_stat_data() { m_patterns.push_back("/if"); } @@ -91,6 +90,9 @@ stat_client::stat_client(std::vector& pattern) : m_socket_name("/run/vpp/stats.sock") , m_patterns(pattern) , m_stat_connect(0) + , m_counter_vec() + , m_stat_seg_data(nullptr) + , m_stat_data() { } @@ -99,6 +101,9 @@ stat_client::stat_client(std::string socket_name, : m_socket_name(socket_name) , m_patterns(patterns) , m_stat_connect(0) + , m_counter_vec() + , m_stat_seg_data(nullptr) + , m_stat_data() { } @@ -106,6 +111,9 @@ stat_client::stat_client() : m_socket_name("/run/vpp/stats.sock") , m_patterns() , m_stat_connect(0) + , m_counter_vec() + , m_stat_seg_data(nullptr) + , m_stat_data() { m_patterns.push_back("/if"); } @@ -127,8 +135,10 @@ stat_client::stat_client(const stat_client& o) int stat_client::connect() { - if (stat_segment_connect(m_socket_name.c_str()) == 0) + if (stat_segment_connect(m_socket_name.c_str()) == 0) { m_stat_connect = 1; + ls(); + } return m_stat_connect; } @@ -165,19 +175,17 @@ stat_client::ls() const stat_client::stat_data_vec_t& stat_client::dump() { - stat_segment_data_t* ssd; stat_segment_data_free(m_stat_seg_data); if (m_stat_data.size()) { m_stat_data.clear(); } - ssd = stat_segment_dump(m_counter_vec); - if (!ssd) { + m_stat_seg_data = stat_segment_dump(m_counter_vec); + if (!m_stat_seg_data) { ls(); return m_stat_data; } - m_stat_seg_data = ssd; - for (int i = 0; i < stat_segment_vec_len(ssd); i++) { - stat_data_t sd(&ssd[i]); + for (int i = 0; i < stat_segment_vec_len(m_stat_seg_data); i++) { + stat_data_t sd(m_stat_seg_data[i]); m_stat_data.push_back(sd); } return m_stat_data; @@ -186,19 +194,17 @@ stat_client::dump() const stat_client::stat_data_vec_t& stat_client::dump_entry(uint32_t index) { - stat_segment_data_t* ssd; stat_segment_data_free(m_stat_seg_data); if (m_stat_data.size()) { m_stat_data.clear(); } - ssd = stat_segment_dump_entry(index); - if (!ssd) { + m_stat_seg_data = stat_segment_dump_entry(index); + if (!m_stat_seg_data) { ls(); return m_stat_data; } - m_stat_seg_data = ssd; - for (int i = 0; i < stat_segment_vec_len(ssd); i++) { - stat_data_t sd(&ssd[i]); + for (int i = 0; i < stat_segment_vec_len(m_stat_seg_data); i++) { + stat_data_t sd(m_stat_seg_data[i]); m_stat_data.push_back(sd); } return m_stat_data;