Program Listing for File robot_repair.hpp

Return to documentation for file (cosm/argos/operations/robot_repair.hpp)

#pragma once

/*******************************************************************************
 * Includes
 ******************************************************************************/
#include "rcppsw/er/client.hpp"
#include "rcppsw/types/type_uuid.hpp"
#include "rcppsw/types/timestep.hpp"
#include "rcppsw/patterns/visitor/visitor.hpp"

#include "cosm/cosm.hpp"

/*******************************************************************************
 * Namespaces
 ******************************************************************************/
namespace cosm::fsm {
class supervisor_fsm;
} /* namespace fsm */

namespace cosm::pal::argos::controller {
class adaptor2D;
class adaptorQ3D;
} /* namespace cosm::pal */

namespace cosm::argos::operations {

/*******************************************************************************
 * Class Definitions
 ******************************************************************************/
class robot_repair : public rer::client<robot_repair> {
 public:
  robot_repair(void)
      : ER_CLIENT_INIT("cosm.pal.argos.operations.robot_repair") {}
  ~robot_repair(void) override = default;

  robot_repair(const robot_repair& op) = delete;
  robot_repair& operator=(const robot_repair& op) = delete;

  void visit(cfsm::supervisor_fsm& fsm);
  void visit(cpargos::controller::adaptor2D& controller);
  void visit(cpargos::controller::adaptorQ3D& controller);
};

} /* namespace cosm::argos::operations */