Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
StandaloneAcceleratorMng.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* StandaloneStandaloneAcceleratorMng.cc (C) 2000-2025 */
9/* */
10/* Standalone implementation (without IApplication) of 'IAcceleratorMng.h'. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/launcher/StandaloneAcceleratorMng.h"
15
16#include "arcane/utils/Ref.h"
17#include "arcane/utils/ITraceMng.h"
18
19#include "arcane/impl/MainFactory.h"
20
21#include "arcane/accelerator/core/IAcceleratorMng.h"
22
23#include "arcane/AcceleratorRuntimeInitialisationInfo.h"
24
25#include "arcane/launcher/ArcaneLauncher.h"
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30namespace Arcane
31{
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
37{
38 public:
39
40 Impl()
41 {
42 MainFactory main_factory;
43 m_trace_mng = makeRef<ITraceMng>(main_factory.createTraceMng());
44 m_accelerator_mng = main_factory.createAcceleratorMngRef(m_trace_mng.get());
45 }
46
47 public:
48
49 Ref<ITraceMng> m_trace_mng;
50 Ref<IAcceleratorMng> m_accelerator_mng;
51};
52
53/*---------------------------------------------------------------------------*/
54/*---------------------------------------------------------------------------*/
55
56StandaloneAcceleratorMng::
57StandaloneAcceleratorMng()
58: m_p(makeRef(new Impl()))
59{
60 m_p->m_accelerator_mng->initialize(ArcaneLauncher::acceleratorRuntimeInitialisationInfo());
61}
62
63/*---------------------------------------------------------------------------*/
64/*---------------------------------------------------------------------------*/
65
67traceMng() const
68{
69 return m_p->m_trace_mng.get();
70}
71
72/*---------------------------------------------------------------------------*/
73/*---------------------------------------------------------------------------*/
74
76acceleratorMng() const
77{
78 return m_p->m_accelerator_mng.get();
79}
80
81/*---------------------------------------------------------------------------*/
82/*---------------------------------------------------------------------------*/
83
84} // End namespace Arcane
85
86/*---------------------------------------------------------------------------*/
87/*---------------------------------------------------------------------------*/
static AcceleratorRuntimeInitialisationInfo & acceleratorRuntimeInitialisationInfo()
Information for accelerator initialization.
Creation of Arcane classes.
Definition MainFactory.h:54
ITraceMng * createTraceMng() override
Creates a trace manager.
Ref< IAcceleratorMng > createAcceleratorMngRef(ITraceMng *tm) override
Creates a manager for accelerators.
Reference to an instance.
ITraceMng * traceMng() const
Associated trace manager.
IAcceleratorMng * acceleratorMng() const
Associated accelerator manager.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
auto makeRef(InstanceType *t) -> Ref< InstanceType >
Creates a reference on a pointer.