Program Listing for File taskable.hpp

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

#pragma once

/*******************************************************************************
 * Includes
 ******************************************************************************/
#include "rcppsw/common/common.hpp"
#include "rcppsw/metrics/base_metrics.hpp"

#include "cosm/cosm.hpp"

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

/*******************************************************************************
 * Class Decls
 ******************************************************************************/
class taskable_argument;

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

  virtual void task_execute(void) = 0;

  virtual bool task_finished(void) const = 0;

  virtual bool task_running(void) const = 0;

  virtual void task_reset(void) {}

  virtual void task_start(RCPPSW_UNUSED taskable_argument* c_arg) = 0;
};

} /* namespace cosm::ta */