Program Listing for File robot_metrics_manager.hpp
↰ Return to documentation for file (cosm/ros/metrics/robot_metrics_manager.hpp
)
#pragma once
/*******************************************************************************
* Includes
******************************************************************************/
#include <string>
#include "rcppsw/er/client.hpp"
#include "rcppsw/metrics/config/metrics_config.hpp"
#include "rcppsw/metrics/network_output_manager.hpp"
#include "cosm/cosm.hpp"
#include "cosm/ros/topic.hpp"
/*******************************************************************************
* Namespaces
******************************************************************************/
namespace cosm::repr {
class base_block3D;
} /* namespace cosm::repr */
namespace cosm::controller {
class base_controller2D;
class base_controllerQ3D;
} /* namespace cosm::controller */
namespace cosm::ros::metrics {
/*******************************************************************************
* Class Definitions
******************************************************************************/
class robot_metrics_manager :public rer::client<robot_metrics_manager>,
public rmetrics::network_output_manager {
public:
robot_metrics_manager(const cros::topic& robot_ns,
const rmconfig::metrics_config* mconfig);
~robot_metrics_manager(void) override = default;
void collect_from_block(const crepr::base_block3D* block);
void collect_from_controller(const ccontroller::base_controller2D* controller);
protected:
void register_with_n_block_clusters(const rmconfig::metrics_config* mconfig,
size_t n_block_clusters);
void register_standard(const rmconfig::metrics_config* mconfig);
void register_with_n_robots(const rmconfig::metrics_config* mconfig,
size_t n_robots);
};
} /* namespace cosm::ros::metrics */