params.hh 802 B

123456789101112131415161718192021222324252627282930313233343536373839
  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. virtual bool isStrict() const =0;
  10. };
  11. class Params: public AParams
  12. {
  13. public:
  14. Params(int ac, char **av);
  15. virtual ~Params();
  16. std::basic_istream<char> &getInput() const;
  17. bool isValid() const;
  18. bool isStrict() const;
  19. bool colorEnabled() const;
  20. static void usage(const std::string &) noexcept;
  21. const std::string &getProgName() const;
  22. bool isIgnoringUnicode() const;
  23. private:
  24. std::basic_istream<char> *input;
  25. const std::string progName;
  26. std::list<std::string> params;
  27. bool ignoreUnicode;
  28. bool colorMode;
  29. bool strict;
  30. };