#pragma once #include #include #include "AForm.hpp" class RobotomyRequestForm : public AForm { private: const std::string _target; public: // Constructors RobotomyRequestForm() = delete; RobotomyRequestForm(std::string target); // Copy constructor and copy assignment operator RobotomyRequestForm(const RobotomyRequestForm &other); RobotomyRequestForm &operator=(const RobotomyRequestForm &other) = delete; // Move constructor and move assignment operator RobotomyRequestForm(RobotomyRequestForm &&other) noexcept; RobotomyRequestForm &operator=(RobotomyRequestForm &&other) noexcept = delete; // Destructor ~RobotomyRequestForm(); void execute(const Bureaucrat &executor) const override; const std::string getTarget() const; }; std::ostream &operator<<(std::ostream &os, const RobotomyRequestForm &form);