Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
AbstractService.h
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/* AbstractService.h (C) 2000-2017 */
9/* */
10/* Classe de base d'un service. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ABSTRACTSERVICE_H
13#define ARCANE_ABSTRACTSERVICE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/IService.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23ARCANE_BEGIN_NAMESPACE
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class ServiceBuildInfo;
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
39class ARCANE_CORE_EXPORT AbstractService
40: public TraceAccessor
41, public IService
42{
43 protected:
44
47
48 public:
49
51 virtual ~AbstractService();
52
53 public:
54
56
59 virtual void build() {}
60
61 public:
62
64
65 virtual IServiceInfo* serviceInfo() const { return m_service_info; }
66
68 virtual IBase* serviceParent() const { return m_parent; }
69
71 virtual IService* serviceInterface() { return this; }
72
73 private:
74
75 IServiceInfo* m_service_info;
76 IBase* m_parent;
77};
78
79/*---------------------------------------------------------------------------*/
80/*---------------------------------------------------------------------------*/
81
82ARCANE_END_NAMESPACE
83
84/*---------------------------------------------------------------------------*/
85/*---------------------------------------------------------------------------*/
86
87#endif
88
Classe de base d'un service.
virtual IService * serviceInterface()
Retourne l'interface bas niveau IService du service.
virtual IServiceInfo * serviceInfo() const
Accès aux informations du service.
virtual IBase * serviceParent() const
Accès à l'interface de base des principaux objets Arcane.
virtual void build()
Construction de niveau build du service.
Interface de la classe de base des objets principaux arcane.
Definition IBase.h:38
Interface des informations d'un service ou d'un module.
Interface d'un service.
Definition IService.h:45
Structure contenant les informations pour créer un service.