| 13214 | namespace Catch { |
| 13215 | |
| 13216 | class Session : NonCopyable { |
| 13217 | public: |
| 13218 | |
| 13219 | Session(); |
| 13220 | ~Session() override; |
| 13221 | |
| 13222 | void showHelp() const; |
| 13223 | void libIdentify(); |
| 13224 | |
| 13225 | int applyCommandLine( int argc, char const * const * argv ); |
| 13226 | #if defined(CATCH_CONFIG_WCHAR) && defined(_WIN32) && defined(UNICODE) |
| 13227 | int applyCommandLine( int argc, wchar_t const * const * argv ); |
| 13228 | #endif |
| 13229 | |
| 13230 | void useConfigData( ConfigData const& configData ); |
| 13231 | |
| 13232 | template<typename CharT> |
| 13233 | int run(int argc, CharT const * const argv[]) { |
| 13234 | if (m_startupExceptions) |
| 13235 | return 1; |
| 13236 | int returnCode = applyCommandLine(argc, argv); |
| 13237 | if (returnCode == 0) |
| 13238 | returnCode = run(); |
| 13239 | return returnCode; |
| 13240 | } |
| 13241 | |
| 13242 | int run(); |
| 13243 | |
| 13244 | clara::Parser const& cli() const; |
| 13245 | void cli( clara::Parser const& newParser ); |
| 13246 | ConfigData& configData(); |
| 13247 | Config& config(); |
| 13248 | private: |
| 13249 | int runInternal(); |
| 13250 | |
| 13251 | clara::Parser m_cli; |
| 13252 | ConfigData m_configData; |
| 13253 | std::shared_ptr<Config> m_config; |
| 13254 | bool m_startupExceptions = false; |
| 13255 | }; |
| 13256 | |
| 13257 | } // end namespace Catch |
| 13258 | |