ALib C++ Library
Library Version:
2312 R0
Documentation generated by
home
dev
A-Worx
ALib
src
alib
results
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)
12
# include "
alib/lib/fs_modules/module.hpp
"
13
#endif
14
15
#if !defined(HPP_ALIB_RESULTS_EXCEPTION)
16
#include "
alib/results/exception.hpp
"
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. */
30
ErrorWritingReport
= 1,
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}. */
73
extern
ALIB_API
results::Results
RESULTS
;
74
75
}}
// namespace [aworx::lib]
76
77
78
ALIB_ENUMS_ASSIGN_RECORD
(
aworx::lib::results::Exceptions
,
aworx::lib::results::ERException
)
79
ALIB_RESOURCED_IN_MODULE
(
aworx::lib::results::Exceptions
,
aworx::lib::RESULTS
,
"E"
)
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