| 10806 | namespace Catch { |
| 10807 | |
| 10808 | class Session : NonCopyable { |
| 10809 | public: |
| 10810 | |
| 10811 | Session(); |
| 10812 | ~Session() override; |
| 10813 | |
| 10814 | void showHelp() const; |
| 10815 | void libIdentify(); |
| 10816 | |
| 10817 | int applyCommandLine( int argc, char const * const * argv ); |
| 10818 | #if defined(CATCH_CONFIG_WCHAR) && defined(WIN32) && defined(UNICODE) |
| 10819 | int applyCommandLine( int argc, wchar_t const * const * argv ); |
| 10820 | #endif |
| 10821 | |
| 10822 | void useConfigData( ConfigData const& configData ); |
| 10823 | |
| 10824 | template<typename CharT> |
| 10825 | int run(int argc, CharT const * const argv[]) { |
| 10826 | if (m_startupExceptions) |
| 10827 | return 1; |
| 10828 | int returnCode = applyCommandLine(argc, argv); |
| 10829 | if (returnCode == 0) |
| 10830 | returnCode = run(); |
| 10831 | return returnCode; |
| 10832 | } |
| 10833 | |
| 10834 | int run(); |
| 10835 | |
| 10836 | clara::Parser const& cli() const; |
| 10837 | void cli( clara::Parser const& newParser ); |
| 10838 | ConfigData& configData(); |
| 10839 | Config& config(); |
| 10840 | private: |
| 10841 | int runInternal(); |
| 10842 | |
| 10843 | clara::Parser m_cli; |
| 10844 | ConfigData m_configData; |
| 10845 | std::shared_ptr<Config> m_config; |
| 10846 | bool m_startupExceptions = false; |
| 10847 | }; |
| 10848 | |
| 10849 | } // end namespace Catch |
| 10850 | |