Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IBase.h
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/* IBase.h (C) 2000-2025 */
9/* */
10/* Interface of a base object. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IBASE_H
13#define ARCANE_CORE_IBASE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28/*!
29 * \brief Interface of the base class for main arcane objects
30 */
31class ARCANE_CORE_EXPORT IBase
32{
33 public:
34
35 virtual ~IBase() = default; //!< Frees resources
36
37 public:
38
39 /*!
40 * \brief Constructs the instance members.
41 * The instance is not usable until this method has been
42 * called. This method must be called before initialize().
43 * \warning This method must only be called once.
44 */
45 virtual void build() = 0;
46
47 /*!
48 * \brief Initializes the instance.
49 * The instance is not usable until this method has been
50 * called.
51 * \warning This method must only be called once.
52 */
53 virtual void initialize() = 0;
54
55 public:
56
57 //! Parent of this object
58 virtual IBase* objectParent() const = 0;
59
60 //! Namespace of the object.
61 virtual String objectNamespaceURI() const = 0;
62
63 //! Local name of the object.
64 virtual String objectLocalName() const = 0;
65
66 //! Service version number.
67 virtual VersionInfo objectVersion() const = 0;
68
69 public:
70
71 //! Trace manager
72 virtual ITraceMng* traceMng() const = 0;
73
74 //! Resource manager
75 virtual IRessourceMng* ressourceMng() const = 0;
76
77 //! Service manager
78 virtual IServiceMng* serviceMng() const = 0;
79
80 public:
81};
82
83/*---------------------------------------------------------------------------*/
84/*---------------------------------------------------------------------------*/
85
86extern "C++" ARCANE_CORE_EXPORT String
87arcaneNamespaceURI();
88
89/*---------------------------------------------------------------------------*/
90/*---------------------------------------------------------------------------*/
91
92} // namespace Arcane
93
94/*---------------------------------------------------------------------------*/
95/*---------------------------------------------------------------------------*/
96
97#endif
Declarations of Arcane's general types.
Interface of the base class for main arcane objects.
Definition IBase.h:32
virtual void build()=0
Constructs the instance members. The instance is not usable until this method has been called....
virtual ~IBase()=default
Frees resources.
virtual VersionInfo objectVersion() const =0
Service version number.
virtual ITraceMng * traceMng() const =0
Trace manager.
virtual String objectLocalName() const =0
Local name of the object.
virtual void initialize()=0
Initializes the instance. The instance is not usable until this method has been called.
virtual IRessourceMng * ressourceMng() const =0
Resource manager.
virtual String objectNamespaceURI() const =0
Namespace of the object.
virtual IServiceMng * serviceMng() const =0
Service manager.
virtual IBase * objectParent() const =0
Parent of this object.
Interface of a resource manager.
Service manager interface.
Definition IServiceMng.h:32
Information about a version.
Definition VersionInfo.h:47
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --