params.hh 708 B

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include <list>
  3. #include <string>
  4. #include <istream>
  5. class AParams
  6. {
  7. public:
  8. virtual bool isIgnoringUnicode() const =0;
  9. };
  10. class Params: public AParams
  11. {
  12. public:
  13. Params(int ac, char **av);
  14. virtual ~Params();
  15. std::basic_istream<char> &getInput() const;
  16. bool isValid() const;
  17. bool colorEnabled() const;
  18. static void usage(const std::string &) noexcept;
  19. const std::string &getProgName() const;
  20. bool isIgnoringUnicode() const;
  21. private:
  22. std::basic_istream<char> *input;
  23. const std::string progName;
  24. std::list<std::string> params;
  25. bool ignoreUnicode;
  26. bool colorMode;
  27. };