Program Listing for File execution_metrics.hpp

Return to documentation for file (cosm/ta/metrics/execution_metrics.hpp)

#pragma once

/*******************************************************************************
 * Includes
 ******************************************************************************/
#include "rcppsw/common/common.hpp"
#include "rcppsw/metrics/base_metrics.hpp"
#include "cosm/ta/time_estimate.hpp"
#include "rcppsw/types/timestep.hpp"
#include "rcppsw/rcppsw.hpp"

/*******************************************************************************
 * Namespaces/Decls
 ******************************************************************************/
namespace cosm::ta::metrics {

/*******************************************************************************
 * Class Definitions
 ******************************************************************************/
class execution_metrics : public virtual rmetrics::base_metrics {
 public:
  execution_metrics(void) = default;
  ~execution_metrics(void) override = default;

  virtual bool task_at_interface(void) const = 0;

  virtual rtypes::timestep task_last_exec_time(void) const = 0;

  virtual rtypes::timestep task_last_interface_time(size_t i) const = 0;

  virtual bool task_completed(void) const = 0;

  virtual bool task_aborted(void) const = 0;

  virtual const ta::time_estimate& task_exec_estimate(void) const = 0;

  virtual const ta::time_estimate& task_interface_estimate(size_t i) const = 0;

  virtual int task_last_active_interface(void) const = 0;
};

} /* namespace cosm::ta::metrics */