Program Listing for File env_dynamics.hpp

Return to documentation for file (cosm/tv/env_dynamics.hpp)

#pragma once

/*******************************************************************************
 * Includes
 ******************************************************************************/
#include "cosm/cosm.hpp"

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

/*******************************************************************************
 * Class Definitions
 ******************************************************************************/
template <typename TController>
class env_dynamics {
 public:
  env_dynamics(void) = default;
  virtual ~env_dynamics(void) = default;

  env_dynamics(const env_dynamics&) = delete;
  const env_dynamics& operator=(const env_dynamics&) = delete;

  virtual void register_controller(const TController& c) = 0;

  virtual void unregister_controller(const TController& c) = 0;

  virtual bool penalties_flush(const TController& c) = 0;
};

} /* namespace cosm::tv */