Alien  1.3.0
Developer 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//-----------------------------------------------------------------------------
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{
36 enum Level
37 {
38 None = 3,
39 Info = 2,
40 Warning = 1,
41 Debug = 0
42 };
43} // namespace Verbosity
44
45/*---------------------------------------------------------------------------*/
46/*---------------------------------------------------------------------------*/
47
52class ALIEN_EXPORT Universe final
53{
54 public:
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:
72 void setTraceMng(Arccore::ITraceMng* traceMng);
73
78 Arccore::ITraceMng* traceMng() const;
79
85
91
93 void reset();
94
100
101 private:
103 void bigBang();
104
105 private:
106 struct Internal;
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
static std::shared_ptr< Internal > m_internal
Internal structure of the universe.
Definition Universe.h:108
void setVerbosityLevel(Verbosity::Level level)
Set verbosity level.
Definition Universe.cc:118
Verbosity::Level verbosityLevel() const
Get the verbosity level.
Definition Universe.cc:127
void bigBang()
Creates the universe.
Definition Universe.cc:91
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