| 10541 | namespace Catch { |
| 10542 | |
| 10543 | class Session : NonCopyable { |
| 10544 | public: |
| 10545 | |
| 10546 | Session(); |
| 10547 | ~Session() override; |
| 10548 | |
| 10549 | void showHelp() const; |
| 10550 | void libIdentify(); |
| 10551 | |
| 10552 | int applyCommandLine( int argc, char const * const * argv ); |
| 10553 | #if defined(CATCH_CONFIG_WCHAR) && defined(WIN32) && defined(UNICODE) |
| 10554 | int applyCommandLine( int argc, wchar_t const * const * argv ); |
| 10555 | #endif |
| 10556 | |
| 10557 | void useConfigData( ConfigData const& configData ); |
| 10558 | |
| 10559 | template<typename CharT> |
| 10560 | int run(int argc, CharT const * const argv[]) { |
| 10561 | if (m_startupExceptions) |
| 10562 | return 1; |
| 10563 | int returnCode = applyCommandLine(argc, argv); |
| 10564 | if (returnCode == 0) |
| 10565 | returnCode = run(); |
| 10566 | return returnCode; |
| 10567 | } |
| 10568 | |
| 10569 | int run(); |
| 10570 | |
| 10571 | clara::Parser const& cli() const; |
| 10572 | void cli( clara::Parser const& newParser ); |
| 10573 | ConfigData& configData(); |
| 10574 | Config& config(); |
| 10575 | private: |
| 10576 | int runInternal(); |
| 10577 | |
| 10578 | clara::Parser m_cli; |
| 10579 | ConfigData m_configData; |
| 10580 | std::shared_ptr<Config> m_config; |
| 10581 | bool m_startupExceptions = false; |
| 10582 | }; |
| 10583 | |
| 10584 | } // end namespace Catch |
| 10585 | |