Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IServiceInfo.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/* IServiceInfo.h (C) 2000-2025 */
9/* */
10/* Interface of service information. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ISERVICEINFO_H
13#define ARCANE_CORE_ISERVICEINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28/*!
29 * \ingroup Service
30 * \brief Interface for service or module information.
31 */
32class ARCANE_CORE_EXPORT IServiceInfo
33{
34 public:
35
36 static const Integer Dim1 = 1;
37 static const Integer Dim2 = 2;
38 static const Integer Dim3 = 4;
39
40 public:
41
42 virtual ~IServiceInfo() = default; //!< Frees resources
43
44 public:
45
46 //! Local part of the service name
47 virtual String localName() const = 0;
48
49 //! Service name namespace
50 virtual String namespaceURI() const = 0;
51
52 //! Service version
53 virtual VersionInfo version() const = 0;
54
55 //! Version of the axl file describing this service
56 virtual Real axlVersion() const = 0;
57
58 //! Indicates if the service is usable in dimension \a n.
59 virtual bool allowDimension(Integer n) const = 0;
60
61 /*! \brief Adds the name interface \a name to the interfaces
62 * implemented by this service.
63 */
64 virtual void addImplementedInterface(const String& name) = 0;
65
66 //! List of names of classes implemented by this service
68
69 //! Name of the file containing the dataset (null if none)
70 virtual const String& caseOptionsFileName() const = 0;
71
72 //! List of service factories
74
75 //! Factory for singleton services (nullptr if not supported)
77
78 /*! \brief Name of the service XML element for the language \a lang.
79 * If \a lang is null, returns the default name.
80 */
81 virtual String tagName(const String& lang) const = 0;
82
83 //! Information on factories available for this service
84 virtual IServiceFactoryInfo* factoryInfo() const = 0;
85
86 /*!
87 * \brief Indicates where the service can be used.
88 *
89 * It is a combination of eServiceType values.
90 */
91 virtual int usageType() const = 0;
92
93 //! Content of the AXL file associated with this service or module
94 virtual const FileContent& axlContent() const = 0;
95};
96
97/*---------------------------------------------------------------------------*/
98/*---------------------------------------------------------------------------*/
99
100} // namespace Arcane
101
102/*---------------------------------------------------------------------------*/
103/*---------------------------------------------------------------------------*/
104
105#endif
Declarations of Arcane's general types.
Description and content of a file.
Definition FileContent.h:33
Information about a service factory.
Interface for service or module information.
virtual String localName() const =0
Local part of the service name.
virtual int usageType() const =0
Indicates where the service can be used.
virtual Real axlVersion() const =0
Version of the axl file describing this service.
virtual IServiceFactoryInfo * factoryInfo() const =0
Information on factories available for this service.
virtual bool allowDimension(Integer n) const =0
Indicates if the service is usable in dimension n.
virtual VersionInfo version() const =0
Service version.
virtual ServiceFactory2Collection factories() const =0
List of service factories.
virtual Internal::ISingletonServiceFactory * singletonFactory() const =0
Factory for singleton services (nullptr if not supported).
virtual String namespaceURI() const =0
Service name namespace.
virtual ~IServiceInfo()=default
Frees resources.
virtual const FileContent & axlContent() const =0
Content of the AXL file associated with this service or module.
virtual void addImplementedInterface(const String &name)=0
Adds the name interface name to the interfaces implemented by this service.
virtual const String & caseOptionsFileName() const =0
Name of the file containing the dataset (null if none).
virtual StringCollection implementedInterfaces() const =0
List of names of classes implemented by this service.
virtual String tagName(const String &lang) const =0
Name of the service XML element for the language lang. If lang is null, returns the default name.
Information about a version.
Definition VersionInfo.h:47
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
Collection< String > StringCollection
Collection of strings.
Definition UtilsTypes.h:506
Collection< Internal::IServiceFactory2 * > ServiceFactory2Collection
Collection of service factories.
double Real
Type representing a real number.