| 12979 | namespace Catch { |
| 12980 | |
| 12981 | class Session : NonCopyable { |
| 12982 | public: |
| 12983 | |
| 12984 | Session(); |
| 12985 | ~Session() override; |
| 12986 | |
| 12987 | void showHelp() const; |
| 12988 | void libIdentify(); |
| 12989 | |
| 12990 | int applyCommandLine( int argc, char const * const * argv ); |
| 12991 | #if defined(CATCH_CONFIG_WCHAR) && defined(_WIN32) && defined(UNICODE) |
| 12992 | int applyCommandLine( int argc, wchar_t const * const * argv ); |
| 12993 | #endif |
| 12994 | |
| 12995 | void useConfigData( ConfigData const& configData ); |
| 12996 | |
| 12997 | template<typename CharT> |
| 12998 | int run(int argc, CharT const * const argv[]) { |
| 12999 | if (m_startupExceptions) |
| 13000 | return 1; |
| 13001 | int returnCode = applyCommandLine(argc, argv); |
| 13002 | if (returnCode == 0) |
| 13003 | returnCode = run(); |
| 13004 | return returnCode; |
| 13005 | } |
| 13006 | |
| 13007 | int run(); |
| 13008 | |
| 13009 | clara::Parser const& cli() const; |
| 13010 | void cli( clara::Parser const& newParser ); |
| 13011 | ConfigData& configData(); |
| 13012 | Config& config(); |
| 13013 | private: |
| 13014 | int runInternal(); |
| 13015 | |
| 13016 | clara::Parser m_cli; |
| 13017 | ConfigData m_configData; |
| 13018 | std::shared_ptr<Config> m_config; |
| 13019 | bool m_startupExceptions = false; |
| 13020 | }; |
| 13021 | |
| 13022 | } // end namespace Catch |
| 13023 | |