/* * Fills all section of all backends */ static void backends_stats_json(uint64_t categories, rapidjson::Value &stat_value, rapidjson::Document::AllocatorType &allocator, struct dnet_node *node) { const auto &backends = node->config_data->backends->backends; for (size_t i = 0; i < backends.size(); ++i) { rapidjson::Value backend_stat(rapidjson::kObjectType); stat_value.AddMember(std::to_string(static_cast<unsigned long long>(i)).c_str(), allocator, backend_stats_json(categories, backend_stat, allocator, node, i), allocator); } }
/* * Fills all section of all backends */ static void backends_stats_json(uint64_t categories, rapidjson::Value &stat_value, rapidjson::Document::AllocatorType &allocator, struct dnet_node *node) { auto backends = node->config_data->backends->get_all_backends(); for (auto &backend_ptr : backends) { auto config_backend = backend_ptr.get(); auto backend_id = config_backend->backend_id; std::lock_guard<std::mutex> guard(*config_backend->state_mutex); if (config_backend->state != DNET_BACKEND_UNITIALIZED) { rapidjson::Value backend_stat(rapidjson::kObjectType); stat_value.AddMember(std::to_string(static_cast<unsigned long long>(backend_id)).c_str(), allocator, backend_stats_json(categories, backend_stat, allocator, node, config_backend), allocator); } } }