| 12582 | namespace Catch { |
| 12583 | |
| 12584 | class Session : NonCopyable { |
| 12585 | public: |
| 12586 | |
| 12587 | Session(); |
| 12588 | ~Session() override; |
| 12589 | |
| 12590 | void showHelp() const; |
| 12591 | void libIdentify(); |
| 12592 | |
| 12593 | int applyCommandLine( int argc, char const * const * argv ); |
| 12594 | #if defined(CATCH_CONFIG_WCHAR) && defined(_WIN32) && defined(UNICODE) |
| 12595 | int applyCommandLine( int argc, wchar_t const * const * argv ); |
| 12596 | #endif |
| 12597 | |
| 12598 | void useConfigData( ConfigData const& configData ); |
| 12599 | |
| 12600 | template<typename CharT> |
| 12601 | int run(int argc, CharT const * const argv[]) { |
| 12602 | if (m_startupExceptions) |
| 12603 | return 1; |
| 12604 | int returnCode = applyCommandLine(argc, argv); |
| 12605 | if (returnCode == 0) |
| 12606 | returnCode = run(); |
| 12607 | return returnCode; |
| 12608 | } |
| 12609 | |
| 12610 | int run(); |
| 12611 | |
| 12612 | clara::Parser const& cli() const; |
| 12613 | void cli( clara::Parser const& newParser ); |
| 12614 | ConfigData& configData(); |
| 12615 | Config& config(); |
| 12616 | private: |
| 12617 | int runInternal(); |
| 12618 | |
| 12619 | clara::Parser m_cli; |
| 12620 | ConfigData m_configData; |
| 12621 | std::shared_ptr<Config> m_config; |
| 12622 | bool m_startupExceptions = false; |
| 12623 | }; |
| 12624 | |
| 12625 | } // end namespace Catch |
| 12626 | |