ALib C++ Library
Library Version: 2312 R0
Documentation generated by doxygen
results.hpp
Go to the documentation of this file.
1 /** ************************************************************************************************
2  * \file
3  * This header file is part of module \alib_results of the \aliblong.
4  *
5  * \emoji :copyright: 2013-2023 A-Worx GmbH, Germany.
6  * Published under \ref mainpage_license "Boost Software License".
7  **************************************************************************************************/
8 #ifndef HPP_ALIB_RESULTS_RESULTS
9 #define HPP_ALIB_RESULTS_RESULTS 1
10 
11 #if !defined(HPP_ALIB_FS_MODULES_MODULE)
13 #endif
14 
15 #if !defined(HPP_ALIB_RESULTS_EXCEPTION)
17 #endif
18 
19 ALIB_ASSERT_MODULE(RESULTS)
20 
21 namespace aworx { namespace lib { namespace results {
22 
23 /** ************************************************************************************************
24  * Exception codes of namespace \alib_results.
25  **************************************************************************************************/
26 enum class Exceptions
27 {
28  /** Error when writing a report. This typically indicates an erroneous format string in an
29  * \ref ALIB_ASSERT_ERROR or related macro. */
31 };
32 
33 /** ************************************************************************************************
34  * The module class.
35  *
36  * This is a strict singleton class. The only instance is found with namespace variable
37  * \ref aworx::lib::RESULTS.
38  **************************************************************************************************/
39 class Results : public Module
40 {
41  public:
42  /** ****************************************************************************************
43  * Constructor.<br>
44  * While this is public, it must not be invoked as this is a strict singleton type.
45  * (See notes in \ref alib_manual_bootstrapping_class_module_singletons).
46  ******************************************************************************************/
47  Results();
48 
49  protected:
50  /** ****************************************************************************************
51  * Initializes this module.
52  *
53  * @param phase The initialization phase to perform.
54  * @param argc The number of command line arguments. Defaults to \c 0.
55  * @param argv List of command line arguments if given as single byte character strings.
56  * @param wargv List of command line arguments if given as multi-byte character strings.
57  ******************************************************************************************/
58  virtual void bootstrap( BootstrapPhases phase,
59  int argc, const char** argv, const wchar_t** wargv ) override;
60 
61  /** ****************************************************************************************
62  * Terminates this module.
63  * @param phase The shutdown phase to perform.
64  ******************************************************************************************/
65  virtual void shutdown( ShutdownPhases phase ) override;
66 
67 }; // class Results
68 
69 
70 } // namespace aworx::lib[::results]
71 
72 /** The singleton of module-class \alib{results,Results}. */
74 
75 }} // namespace [aworx::lib]
76 
77 
80 
81 #endif // HPP_ALIB_RESULTS_RESULTS
ALIB_ASSERT_MODULE
#define ALIB_ASSERT_MODULE(modulename)
Definition: modules.hpp:237
aworx::lib::results::Results::Results
Results()
Definition: results.cpp:90
ALIB_RESOURCED_IN_MODULE
#define ALIB_RESOURCED_IN_MODULE(T, Module, ResName)
Definition: resources.hpp:648
aworx::lib::Module::ShutdownPhases
ShutdownPhases
Definition: module.hpp:88
aworx::lib::results::Exceptions::ErrorWritingReport
aworx::lib::results::Results::shutdown
virtual void shutdown(ShutdownPhases phase) override
Definition: results.cpp:140
aworx::lib::Module::BootstrapPhases
BootstrapPhases
Definition: module.hpp:78
aworx::lib::results::Exceptions
Exceptions
Definition: results.hpp:26
aworx::lib::results::ERException
Definition: exception.hpp:62
aworx
Definition: alox/alox.hpp:40
module.hpp
ALIB_ENUMS_ASSIGN_RECORD
#define ALIB_ENUMS_ASSIGN_RECORD(TEnum, TRecord)
Definition: records.hpp:769
ALIB_API
#define ALIB_API
Definition: compilers.hpp:150
exception.hpp
aworx::lib::results::Results::bootstrap
virtual void bootstrap(BootstrapPhases phase, int argc, const char **argv, const wchar_t **wargv) override
Definition: results.cpp:98
aworx::lib::Module
Definition: module.hpp:74
aworx::lib::results::Results
Definition: results.hpp:39
aworx::lib::RESULTS
results::Results RESULTS
Definition: results.cpp:35