Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ServiceProperty.h
Aller à la documentation de ce fichier.
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* ServiceProperty.h (C) 2000-2022 */
9/* */
10/* Propriétés d'un service. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_SERVICEPROPERTY_H
13#define ARCANE_SERVICEPROPERTY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \brief Propriétés pour les fabriques des service.
29 *
30 * Il s'agit de drapeaux qui s'utilisent avec l'opérateur ou binaire (|)
31 */
33{
34 //! Aucune propriété particulière
36 //! Indique que le service est singleton
38 //! Indique que le service se charge automatiquement.
39 SFP_Autoload = 2
40};
41
42/*---------------------------------------------------------------------------*/
43/*---------------------------------------------------------------------------*/
44/*!
45 * \brief Type du service.
46 *
47 * Cette énumération permet de connaitre à quel endroit peut
48 * être créé un service.
49 *
50 * Il s'agit de drapeaux qui s'utilisent avec l'opérateur ou binaire (|).
51 * Un service peut donc être disponible à plusieurs endroits. Par exemple,
52 * il peut être présent comme option du jeu de données (#ST_CaseOption) et aussi
53 * au niveau du sous-domaine (#ST_SubDomain). Dans ce dernier cas,
54 * il peut être créé via la classe ServiceBuilder.
55 *
56 * \note Ce type doit correspondre avec le type C# correspondant
57 */
59{
60 ST_None = 0,
61 //! Le service s'utilise au niveau de l'application
63 //! Le service s'utilise au niveau de la session
65 //! Le service s'utilise au niveau du sous-domaine
67 //! Le service s'utilise au niveau du jeu de données.
69 // NOTE: Cette valeur n'est pas encore utilisée.
70 //! Le service s'utilise avec un maillage spécifié explicitement.
71 ST_Mesh = 16
72};
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
76/*!
77 * \brief Propriétés de création d'un service.
78 *
79 * Cette classe est utilisée dans les macros d'enregistrement des services
80 * et peut donc être instantiée en tant que variable globale avant d'entrer
81 * dans le main() du code. Elle ne doit donc contenir que des champs de type
82 * Plain Object Data (POD).
83 *
84 * En général, les instances de cette classe sont utilisés lors
85 * de l'enregistrement d'un service via la macro ARCANE_REGISTER_SERVICE().
86 *
87 * Dans le constructeur, les paramètres \a type et \a properties
88 * peuvent utiliser une combinaison de valeur énumérées. Par exemple,
89 * pour spécifier un service pouvant être utilisé à la fois dans le
90 * jeu de données et au niveau du sous-domaine, on peut faire comme suit:
91 *
92 * \code
93 * ServiceProperty("ServiceName",ST_SubDomain|ST_CaseOption);
94 * \endcode
95 */
96class ARCANE_CORE_EXPORT ServiceProperty
97{
98 public:
99
100 /*!
101 * \brief Construit une instance pour un service de nom \a aname et de type \a atype
102 * avec les propriétés \a properties.
103 */
104 ServiceProperty(const char* aname, int atype, eServiceFactoryProperties aproperties) ARCANE_NOEXCEPT
105 : m_name(aname)
106 , m_type(atype)
107 , m_properties(aproperties)
108 {
109 }
110
111 //! Construit une instance pour un service de nom \a aname et de type \a atype
112 ServiceProperty(const char* aname, int atype) ARCANE_NOEXCEPT
113 : m_name(aname)
114 , m_type(atype)
115 , m_properties(SFP_None)
116 {
117 }
118
119 //! Construit une instance pour un service de nom \a aname et de type \a atype
120 ServiceProperty(const char* aname, eServiceType atype) ARCANE_NOEXCEPT
121 : m_name(aname)
122 , m_type((int)atype)
123 , m_properties(SFP_None)
124 {
125 }
126
127 public:
128
129 //! Nom du service.
130 const char* name() const { return m_name; }
131
132 //! Type du service (combinaison de eServiceType)
133 int type() const { return m_type; }
134
135 //! Propriétés du service (combinaison de eServiceFactoryProperties)
136 eServiceFactoryProperties properties() const { return m_properties; }
137
138 private:
139
140 const char* m_name;
141 int m_type;
142 eServiceFactoryProperties m_properties;
143};
144
145/*---------------------------------------------------------------------------*/
146/*---------------------------------------------------------------------------*/
147
148} // namespace Arcane
149
150/*---------------------------------------------------------------------------*/
151/*---------------------------------------------------------------------------*/
152
153#endif
Fichier de configuration d'Arcane.
Propriétés de création d'un service.
const char * name() const
Nom du service.
ServiceProperty(const char *aname, int atype, eServiceFactoryProperties aproperties) ARCANE_NOEXCEPT
Construit une instance pour un service de nom aname et de type atype avec les propriétés properties.
eServiceFactoryProperties properties() const
Propriétés du service (combinaison de eServiceFactoryProperties)
ServiceProperty(const char *aname, int atype) ARCANE_NOEXCEPT
Construit une instance pour un service de nom aname et de type atype.
ServiceProperty(const char *aname, eServiceType atype) ARCANE_NOEXCEPT
Construit une instance pour un service de nom aname et de type atype.
int type() const
Type du service (combinaison de eServiceType)
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eServiceFactoryProperties
Propriétés pour les fabriques des service.
@ SFP_Autoload
Indique que le service se charge automatiquement.
@ SFP_None
Aucune propriété particulière.
@ SFP_Singleton
Indique que le service est singleton.
eServiceType
Type du service.
@ ST_Application
Le service s'utilise au niveau de l'application.
@ ST_CaseOption
Le service s'utilise au niveau du jeu de données.
@ ST_Session
Le service s'utilise au niveau de la session.
@ ST_Mesh
Le service s'utilise avec un maillage spécifié explicitement.
@ ST_SubDomain
Le service s'utilise au niveau du sous-domaine.