1
1

params.hh 883 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /**
  2. * params.hh for jsonstroller
  3. *
  4. * Author: isundil <isundill@gmail.com>
  5. **/
  6. #pragma once
  7. #include <list>
  8. #include <string>
  9. #include <istream>
  10. class AParams
  11. {
  12. public:
  13. virtual bool isIgnoringUnicode() const =0;
  14. virtual bool isStrict() const =0;
  15. };
  16. class Params: public AParams
  17. {
  18. public:
  19. Params(int ac, char **av);
  20. virtual ~Params();
  21. std::basic_istream<char> &getInput() const;
  22. bool isValid() const;
  23. bool isStrict() const;
  24. bool colorEnabled() const;
  25. static void usage(const std::string &) noexcept;
  26. const std::string &getProgName() const;
  27. bool isIgnoringUnicode() const;
  28. private:
  29. std::basic_istream<char> *input;
  30. const std::string progName;
  31. std::list<std::string> params;
  32. bool ignoreUnicode;
  33. bool colorMode;
  34. bool strict;
  35. };