Arcane  v4.1.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IExternalPlugin.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* IExternalPlugin.h (C) 2000-2025 */
9/* */
10/* Interface du service de plugin externes. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IEXTERNALPLUGIN_H
13#define ARCANE_CORE_IEXTERNALPLUGIN_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21// WARNING: Experimental API. Do not use outside of Arcane
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28/*!
29 * \brief Interface du service de chargement de services externes.
30 * \warning Cette interface est expérimentale.
31 *
32 * Il faut appeler loadFile() (éventuellement avec une chaîne de caractères vide)
33 * pour initialiser l'instance.
34 */
35class ARCANE_CORE_EXPORT IExternalPlugin
36{
37 public:
38
39 //! Libère les ressources
40 virtual ~IExternalPlugin() = default;
41
42 public:
43
44 /*!
45 * \brief Charge et exécute un fichier contenant un script externe.
46 *
47 * \a filename peut-être nul, auquel cas on ne fait que initialiser l'instance.
48 */
49 virtual void loadFile(const String& filename) = 0;
50
51 /*!
52 * \brief Exécute la fonction \a function_name.
53 *
54 * Il faut avoir chargé un script contenant cette fonction (via loadFile())
55 * avant d'appeler cette méthode. La méthode \a function_name ne doit pas
56 * avoir d'arguments.
57 */
58 virtual void executeFunction(const String& function_name) = 0;
59
60 /*!
61 * \brief Exécute la fonction \a function_name avec un contexte
62 *
63 * Il faut avoir chargé un script contenant cette fonction (via loadFile())
64 * avant d'appeler cette méthode. La méthode spécifiée doit prendre en
65 * argument une instance de PythonSubDomainContext.
66 */
67 virtual void executeContextFunction(const String& function_name) = 0;
68};
69
70/*---------------------------------------------------------------------------*/
71/*---------------------------------------------------------------------------*/
72
73} // namespace Arcane
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78#endif
Déclarations des types généraux de Arcane.
Interface du service de chargement de services externes.
virtual void executeContextFunction(const String &function_name)=0
Exécute la fonction function_name avec un contexte.
virtual void loadFile(const String &filename)=0
Charge et exécute un fichier contenant un script externe.
virtual void executeFunction(const String &function_name)=0
Exécute la fonction function_name.
virtual ~IExternalPlugin()=default
Libère les ressources.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-