/*----------------------------------------------------------------------------*/ /* Copyright (c) 2019 FIRST. All Rights Reserved. */ /* Open Source Software - may be modified and shared by FRC teams. The code */ /* must be accompanied by the FIRST BSD license file in the root directory of */ /* the project. */ /*----------------------------------------------------------------------------*/ #pragma once #include #include #include #include #include #include #include "frc2/command/Command.h" namespace frc2 { /** * A Sendable base class for Commands. */ class CommandBase : public Command, public frc::Sendable, public frc::SendableHelper { public: /** * Adds the specified requirements to the command. * * @param requirements the requirements to add */ void AddRequirements(std::initializer_list requirements); void AddRequirements(wpi::SmallSet requirements); wpi::SmallSet GetRequirements() const override; /** * Sets the name of this Command. * * @param name name */ void SetName(const wpi::Twine& name); /** * Gets the name of this Command. * * @return Name */ std::string GetName() const override; /** * Gets the subsystem name of this Command. * * @return Subsystem name */ std::string GetSubsystem() const; /** * Sets the subsystem name of this Command. * * @param subsystem subsystem name */ void SetSubsystem(const wpi::Twine& subsystem); void InitSendable(frc::SendableBuilder& builder) override; protected: CommandBase(); wpi::SmallSet m_requirements; }; } // namespace frc2