Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
EntryPointMng.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* EntryPointMng.cc (C) 2000-2023 */
9/* */
10/* Gestionnaire des points d'entrée. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/List.h"
15#include "arcane/utils/Iostream.h"
16#include "arcane/utils/String.h"
17#include "arcane/utils/TraceAccessor.h"
18
19#include "arcane/ArcaneTypes.h"
20#include "arcane/IEntryPointMng.h"
21#include "arcane/IEntryPoint.h"
22#include "arcane/ISubDomain.h"
23#include "arcane/IModule.h"
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28namespace Arcane
29{
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
37: public TraceAccessor
38, public IEntryPointMng
39{
40 public:
41
42 explicit EntryPointMng(ISubDomain*);
43 ~EntryPointMng() override;
44
45 public:
46
47 void addEntryPoint(IEntryPoint*) override;
48 void dumpList(std::ostream&) override;
49 IEntryPoint* findEntryPoint(const String& s) override;
50 IEntryPoint* findEntryPoint(const String& module_name,const String& s) override;
52
53 private:
54
56};
57
58/*---------------------------------------------------------------------------*/
59/*---------------------------------------------------------------------------*/
60
61extern "C++" IEntryPointMng*
62arcaneCreateEntryPointMng(ISubDomain* sd)
63{
64 return new EntryPointMng(sd);
65}
66
67/*---------------------------------------------------------------------------*/
68/*---------------------------------------------------------------------------*/
69
70EntryPointMng::
71EntryPointMng(ISubDomain* sd)
72: TraceAccessor(sd->traceMng())
73{
74}
75
76/*---------------------------------------------------------------------------*/
77/*---------------------------------------------------------------------------*/
78
79EntryPointMng::
80~EntryPointMng()
81{
83 delete *i;
84}
85
86/*---------------------------------------------------------------------------*/
87/*---------------------------------------------------------------------------*/
88
91{
92 log() << " Add an entry point <" << v->module()->name() << "::" << v->name() << ">";
93 m_entry_points.add(v);
94}
95
96/*---------------------------------------------------------------------------*/
97/*---------------------------------------------------------------------------*/
98
100dumpList(std::ostream& o)
101{
102 o << "** EntryPointMng::dump_list: " << m_entry_points.count();
103 o << '\n';
105 o << "** EntryPoint: " << (*i)->name();
106 o << '\n';
107 }
108}
109
110/*---------------------------------------------------------------------------*/
111/*---------------------------------------------------------------------------*/
112
114findEntryPoint(const String& s)
115{
117 if ((*i)->name()==s)
118 return *i;
119 return 0;
120}
121
122/*---------------------------------------------------------------------------*/
123/*---------------------------------------------------------------------------*/
124
127{
129 if ((*i)->name()==s && (*i)->module()->name()==module_name)
130 return *i;
131 return nullptr;
132}
133
134/*---------------------------------------------------------------------------*/
135/*---------------------------------------------------------------------------*/
136
137}
138
139/*---------------------------------------------------------------------------*/
140/*---------------------------------------------------------------------------*/
141
Integer count() const
Nombre d'éléments de la collection.
Definition Collection.h:70
Gestionnaire des points d'entrée.
IEntryPoint * findEntryPoint(const String &s) override
Point d'entrée de nom s.
EntryPointCollection entryPoints() override
Liste des points d'entrées.
void addEntryPoint(IEntryPoint *) override
Ajoute un point d'entrée au gestionnaire.
void dumpList(std::ostream &) override
Affiche dans \o la liste des points d'entrée du gestionnaire.
EntryPointList m_entry_points
Liste des points d'entrée.
Interface du gestionnaire de point d'entrée.
Interface d'un point d'entrée d'un module.
Definition IEntryPoint.h:34
virtual IModule * module() const =0
Retourne le module associé au point d'entrée.
virtual String name() const =0
Retourne le nom du point d'entrée.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
ListEnumeratorT< IEntryPoint * > Enumerator
Type d'un itérateur constant sur tout le tableau.
Definition List.h:243
Chaîne de caractères unicode.
TraceMessage log() const
Flot pour un message de log.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-