Open Source Tomb Raider Engine
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*!
  2. * \file include/commands/Command.h
  3. * \brief Command interface
  4. *
  5. * \author xythobuz
  6. */
  7. #ifndef _COMMAND_H_
  8. #define _COMMAND_H_
  9. #include <istream>
  10. #include <memory>
  11. #include <string>
  12. #include <vector>
  13. class Command {
  14. public:
  15. virtual ~Command();
  16. virtual std::string name() = 0;
  17. virtual std::string brief() = 0;
  18. virtual void printHelp();
  19. virtual int execute(std::istream& args) = 0;
  20. };
  21. #define DECLARE_SIMPLE_CMD(x) \
  22. class x : public Command { \
  23. public: \
  24. virtual std::string name(); \
  25. virtual std::string brief(); \
  26. virtual void printHelp(); \
  27. virtual int execute(std::istream& args); \
  28. }
  29. #define DECLARE_SIMPLE_CMD_NO_HELP(x) \
  30. class x : public Command { \
  31. public: \
  32. virtual std::string name(); \
  33. virtual std::string brief(); \
  34. virtual int execute(std::istream& args); \
  35. }
  36. #endif