Alien  1.3.0
User documentation
Loading...
Searching...
No Matches
Universe.h
Go to the documentation of this file.
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*!
8 * \file Universe.h
9 * \brief Universe.h
10 */
11
12#pragma once
13
14#include <alien/utils/Precomp.h>
15#include <arccore/trace/TraceGlobal.h>
16
17#include <memory>
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Alien
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33namespace Verbosity
34{
35 //! Verbosity level
36 enum Level
37 {
38 None = 3,
39 Info = 2,
40 Warning = 1,
41 Debug = 0
42 };
43} // namespace Verbosity
44
45/*---------------------------------------------------------------------------*/
46/*---------------------------------------------------------------------------*/
47
48/*!
49 * \brief Alien universe. Common structure to store shared objects between all elements of
50 * the library Alien.
51 */
52class ALIEN_EXPORT Universe final
53{
54 public:
55 //! Default constructor
56 Universe();
57
58 private:
59 Universe(const Universe&) = delete;
60
61 Universe(Universe&&) = delete;
62
63 void operator=(const Universe&) = delete;
64
65 void operator=(Universe&&) = delete;
66
67 public:
68 /*!
69 * \brief Set trace manager
70 * \param[in] traceMng The trace manager
71 */
72 void setTraceMng(Arccore::ITraceMng* traceMng);
73
74 /*!
75 * \brief Get the trace manager
76 * \returns The trace manager
77 */
78 Arccore::ITraceMng* traceMng() const;
79
80 /*!
81 * \brief Set verbosity level
82 * \param[in] level The verbosity level
83 */
85
86 /*!
87 * \brief Get the verbosity level
88 * \returns The verbosity level
89 */
91
92 //! Reset the universe
93 void reset();
94
95 /*!
96 * \brief Access the universe data base
97 * \returns The universe data base
98 */
100
101 private:
102 //! Creates the universe
103 void bigBang();
104
105 private:
106 struct Internal;
107 //! Internal structure of the universe
108 static std::shared_ptr<Internal> m_internal;
109};
110
111/*---------------------------------------------------------------------------*/
112/*---------------------------------------------------------------------------*/
113
114inline void
115setTraceMng(ITraceMng* trace)
116{
117 Universe().setTraceMng(trace);
118}
119
120/*---------------------------------------------------------------------------*/
121/*---------------------------------------------------------------------------*/
122
123inline void
124setVerbosityLevel(Verbosity::Level level)
125{
126 Universe().setVerbosityLevel(level);
127}
128
129/*---------------------------------------------------------------------------*/
130/*---------------------------------------------------------------------------*/
131
132inline Verbosity::Level
133verbosityLevel()
134{
135 return Universe().verbosityLevel();
136}
137
138/*---------------------------------------------------------------------------*/
139/*---------------------------------------------------------------------------*/
140
141} // namespace Alien
142
143/*---------------------------------------------------------------------------*/
144/*---------------------------------------------------------------------------*/
Level
Verbosity level.
Definition Universe.h:37
Data base for universe objects.
Alien universe. Common structure to store shared objects between all elements of the library Alien.
Definition Universe.h:53
void setVerbosityLevel(Verbosity::Level level)
Set verbosity level.
Definition Universe.cc:118
Verbosity::Level verbosityLevel() const
Get the verbosity level.
Definition Universe.cc:127
Universe()
Default constructor.
Definition Universe.cc:74
void reset()
Reset the universe.
Definition Universe.cc:135
Arccore::ITraceMng * traceMng() const
Get the trace manager.
Definition Universe.cc:110
UniverseDataBase & dataBase()
Access the universe data base.
Definition Universe.cc:83
void setTraceMng(Arccore::ITraceMng *traceMng)
Set trace manager.
Definition Universe.cc:101
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Definition BackEnd.h:17
Universe internal structure.
Definition Universe.cc:45