16#include "arcane/utils/Iostream.h"
17#include "arcane/utils/Iterator.h"
18#include "arcane/utils/List.h"
19#include "arcane/utils/ScopedPtr.h"
20#include "arcane/utils/Deleter.h"
21#include "arcane/utils/PlatformUtils.h"
22#include "arcane/utils/ValueConvert.h"
23#include "arcane/utils/OStringStream.h"
24#include "arcane/utils/ITraceMng.h"
25#include "arcane/utils/TraceClassConfig.h"
26#include "arcane/utils/IMemoryInfo.h"
27#include "arcane/utils/IStackTraceService.h"
28#include "arcane/utils/ISymbolizerService.h"
29#include "arcane/utils/IProcessorAffinityService.h"
30#include "arcane/utils/IOnlineDebuggerService.h"
31#include "arcane/utils/StringBuilder.h"
32#include "arcane/utils/IProfilingService.h"
33#include "arcane/utils/IThreadImplementationService.h"
34#include "arcane/utils/IDynamicLibraryLoader.h"
35#include "arcane/utils/IPerformanceCounterService.h"
36#include "arcane/utils/ITraceMngPolicy.h"
37#include "arcane/utils/JSONReader.h"
38#include "arcane/utils/Profiling.h"
39#include "arcane/utils/internal/TaskFactoryInternal.h"
40#include "arcane/utils/internal/DependencyInjection.h"
42#include "arcane/core/ArcaneVersion.h"
43#include "arcane/core/ISubDomain.h"
44#include "arcane/core/IIOMng.h"
45#include "arcane/core/IXmlDocumentHolder.h"
46#include "arcane/core/IParallelSuperMng.h"
47#include "arcane/core/IMainFactory.h"
48#include "arcane/core/IArcaneMain.h"
49#include "arcane/core/IRessourceMng.h"
50#include "arcane/core/IServiceLoader.h"
51#include "arcane/core/IServiceMng.h"
52#include "arcane/core/ICodeService.h"
53#include "arcane/core/ISession.h"
54#include "arcane/core/IDataFactory.h"
55#include "arcane/core/IDataFactoryMng.h"
56#include "arcane/core/IXmlDocumentHolder.h"
57#include "arcane/core/XmlNode.h"
58#include "arcane/core/XmlNodeList.h"
59#include "arcane/core/ItemTypeMng.h"
61#include "arcane/core/IPhysicalUnitSystemService.h"
62#include "arcane/core/ServiceBuilder.h"
63#include "arcane/core/Configuration.h"
64#include "arcane/core/Directory.h"
65#include "arcane/core/IServiceAndModuleFactoryMng.h"
66#include "arcane/core/ApplicationBuildInfo.h"
68#include "arcane/core/IItemEnumeratorTracer.h"
69#include "arcane/impl/Application.h"
70#include "arcane/impl/ConfigurationReader.h"
71#include "arcane/impl/ArcaneMain.h"
76#include "arcane/core/Item.h"
77#include "arcane/core/IndexedItemConnectivityView.h"
78#include "arcane/core/UnstructuredMeshConnectivity.h"
80#include "arccore_version.h"
99createNullPhysicalUnitSystemService();
101arcaneCreateConfigurationMng(
ITraceMng* tm);
103arcaneCreateServiceAndModuleFactoryMng(
ITraceMng* tm);
108extern "C++" ARCANE_CORE_EXPORT
void
134, m_namespace_uri(arcaneNamespaceURI())
135, m_local_name(
"Application")
143, m_configuration_mng(nullptr)
147, m_trace_policy(nullptr)
150, m_service_and_module_factory_mng(nullptr)
167 m_task_implementation.reset();
185 delete m_service_and_module_factory_mng;
189 delete m_configuration_mng;
192 m_owned_sequential_parallel_super_mng.reset();
202 delete m_trace_policy;
214_stringListToArray(
const StringList& slist)
const
217 for(
const String& s : slist )
263 DependencyInjection::Injector injector;
264 injector.fillWithGlobalFactories();
269 auto t = injector.createInstance<InterfaceType>(s,
true);
282extern "C++" ARCANE_UTILS_EXPORT
void
283arcaneSetPauseOnError(
bool v);
300 Int32 output_level = build_info.outputLevel();
301 if (output_level!=Trace::UNSPECIFIED_VERBOSITY_LEVEL){
302 m_trace_policy->setVerbosityLevel(output_level);
303 m_trace_policy->setStandardOutputVerbosityLevel(output_level);
305 Int32 verbosity_level = build_info.verbosityLevel();
306 if (verbosity_level!=Trace::UNSPECIFIED_VERBOSITY_LEVEL){
307 m_trace_policy->setVerbosityLevel(verbosity_level);
310 bool has_output_file = build_info.isMasterHasOutputFile();
311 m_trace_policy->setIsMasterHasOutputFile(has_output_file);
316 Int32 minimal_verbosity_level = build_info.minimalVerbosityLevel();
317 if (minimal_verbosity_level==Trace::UNSPECIFIED_VERBOSITY_LEVEL)
318 minimal_verbosity_level = Trace::DEFAULT_VERBOSITY_LEVEL;
319 m_trace_policy->setDefaultVerboseLevel(
m_trace.get(),minimal_verbosity_level);
322 arcaneGlobalMemoryInfo()->setTraceMng(
traceMng());
326 m_trace->info(4) <<
"*** Initialization informations:";
332 if (dynamic_library_loader){
334#ifdef ARCANE_OS_WIN32
351 m_trace->info(4) <<
"Adding '" << os_dir <<
"' to search library path";
353 SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_DEFAULT_DIRS);
354 AddDllDirectory(wide_os_dir.c_str());
359 m_trace->info(4) <<
"*** Trying to load dynamic library: " << name;
362 m_trace->info(4) <<
"WARNING: Can not load library '" << name <<
"'";
366#ifdef ARCANE_OS_WIN32
367 if (dynamic_library_loader){
370 String dyn_lib_names[5] = {
"arcane_mpi",
"arcane_std",
"arcane_mesh",
371 "arcane_thread",
"arcane_mpithread",
374 dynamic_library_loader->
open(os_dir,dyn_lib_names[i]);
378 m_configuration_mng = arcaneCreateConfigurationMng(
traceMng());
381 m_service_and_module_factory_mng = arcaneCreateServiceAndModuleFactoryMng(
traceMng());
383 m_service_and_module_factory_mng->addGlobalFactory(*i);
385 m_service_and_module_factory_mng->addGlobalFactory(*i);
387 m_service_and_module_factory_mng->createAllServiceRegistererFactories();
393 if (!pause_on_error.
null()){
394 arcaneSetPauseOnError(
true);
398 bool has_dbghelp =
false;
408 m_stack_trace_service = sv;
422 if (!s.
get() && has_dbghelp){
426 m_symbolizer_service = s;
432 StringList names = build_info.threadImplementationServices();
436 m_thread_implementation_service = sv;
437 m_thread_implementation = sv->createImplementation();
439 m_thread_implementation->initialize();
443 m_trace->info() <<
"Can not find thread implementation service "
444 <<
"(names=" << _stringListToArray(names) <<
"). Threads are disabled.";
455 Integer nb_task_thread = build_info.nbTaskThread();
456 if (nb_task_thread>=0){
458 StringList names = build_info.taskImplementationServices();
462 TaskFactoryInternal::setImplementation(sv.get());
464 sv->initialize(nb_task_thread);
466 m_task_implementation = sv;
469 ARCANE_FATAL(
"Can not find task implementation service (names='{0}')."
470 " Please check if Arcane is configured with Intel TBB library",
471 _stringListToArray(names));
484 if (!profile_str.
null()){
488 m_profiling_service = sv;
492 ARCANE_FATAL(
"Can not find profiling service (name='{0}')",profile_str);
501 m_online_debugger = sv;
511 m_processor_affinity_service = sv;
517 String message_passing_service = build_info.messagePassingService();
518 if (message_passing_service.
null())
519 message_passing_service = build_info.internalDefaultMessagePassingService();
523 ARCANE_FATAL(
"Can not find message passing service '{0}'",message_passing_service);
529 if (sm->isParallel()){
531 seq_sm = m_owned_sequential_parallel_super_mng.get();
533 ARCANE_FATAL(
"Can not find service 'SequentialParallelSuperMng'");
578 m_trace_policy->setIsParallel(is_parallel);
579 m_trace_policy->setIsDebug(is_debug);
580 bool is_parallel_output = is_parallel && is_debug;
585 is_parallel_output =
true;
587 is_parallel_output =
false;
589 m_trace_policy->setIsParallelOutput(is_parallel_output);
597#ifdef ARCANE_CHECK_MEMORY
598 arcaneGlobalMemoryInfo()->setTraceMng(
m_trace);
609 m_trace->warning() <<
"Application is already initialised";
619 m_trace_policy->setDefaultClassConfigXmlBuffer(userConfigBuffer());
622 m_trace->logdate() <<
"Begin execution.";
625 m_trace->info() <<
"WARNING: Execution in DEBUG mode!";
628 m_trace->info() <<
"WARNING: Compilation in CHECK mode !";
634 if (!check_str.
null()){
635 bool is_check = check_str !=
"0";
636 m_trace->info() <<
"WARNING: Setting CHECK mode to " << is_check;
640 m_trace->info() <<
"WARNING: Execution in CHECK mode!";
644 m_trace->info() <<
"WARNING: Execution in TRACE mode !";
647 m_trace->info() <<
"Using 64bits version!";
650 m_trace->info() <<
"** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- **";
651 m_trace->info() <<
"** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- **";
663 m_trace->info() <<
"** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- **";
664 m_trace->info() <<
"** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- ** -- **";
667 m_trace->info() <<
"ArccoreVersion: " << ARCCORE_VERSION_STR_FULL;
668 m_trace->info() <<
"ArcaneVersion: " << ARCANE_VERSION_STR_FULL
675 m_trace->info() <<
"Stack trace service is available";
678 m_trace->info() <<
"Symbolizer service is available";
681#ifdef ARCANE_USE_LIBXML2
682 m_trace->info() <<
"Using 'libxml2' for XML parsing";
695 m_trace->info() <<
"Hyoda service is now hooked";
698 m_trace->info() <<
"Unknown online debugger service";
704 _readCodeConfigurationFile();
712 ByteConstSpan runtime_config =
m_exe_info.runtimeConfigFileContent();
713 if (!runtime_config.empty()){
714 m_trace->info() <<
"Reading configuration parameters from runtime config file";
716 jdoc.
parse(runtime_config);
725 if (!configuration_elem.
null()){
726 m_trace->info() <<
"Reading configuration parameters from code config file";
733 _initDataInitialisationPolicy();
739 m_trace->info() <<
"No thread management active";
744 std::ostringstream ostr;
746 m_trace->info() <<
"TaskManagement infos:" << ostr.str();
749 m_trace->info() <<
"No task management active";
755 String service_name =
"Udunits";
758 m_trace->info() <<
"UnitSystem service found name=" << service_name;
761 m_trace->info() <<
"No unit system service found";
762 sv =
makeRef(createNullPhysicalUnitSystemService());
764 m_physical_unit_system_service = sv;
769 String service_name =
"LinuxPerfPerformanceCounterService";
771 if (!env_service_name.
null())
772 service_name = env_service_name +
"PerformanceCounterService";
775 m_performance_counter_service = p;
777 m_trace->info() <<
"PerformanceCounterService found name=" << service_name;
780 m_trace->info() <<
"No performance counter service found";
786 bool force_tracer =
false;
791 auto p = m_performance_counter_service;
793 m_trace->info() <<
"Enumerator tracing is enabled";
795 arcaneSetSingletonItemEnumeratorTracer(tracer);
800 m_trace->info() <<
"WARNING: enumerator tracing is not available because no performance counter service is available.";
803 m_trace->info() <<
"WARNING: enumerator tracing is not available when using multi-tasking.";
817 <<
" ItemEnumeratorVersion=" << ItemEnumerator::version();
823 if (init_time_accelerator!=0.0)
824 m_trace->info() <<
"Time (in ms) to initialize Accelerators = " << init_time_accelerator;
832_readCodeConfigurationFile()
846 bool use_config_file =
true;
847 if (config_file_name.
null()){
848 use_config_file =
false;
850 else if (config_file_name.
empty()){
866 m_trace->info() <<
"Using configuration file in current directory.";
869 config_file_name = buf.toString();
871 m_trace->info() <<
"Using configuration file: '" << config_file_name <<
"'";
873 if (use_config_file){
876 ARCANE_FATAL(
"Can not read configuration file '{0}'",config_file_name);
879 ARCANE_FATAL(
"Can not parse configuration file '{0}'",config_file_name);
893 String buf = user_config_dir.
file(
"config.xml");
899 m_trace->log() <<
"No user configuration file '" << buf <<
"'";
906 m_trace->log() <<
"Can not parse user configuration file '" << buf <<
"'";
943 bool has_arc_extension =
false;
944 for(
Integer i=0, n=services.size(); i<n; ++i ){
946 if (_hasExtension(code_service,
"arc")){
947 has_arc_extension =
true;
951 if (!has_arc_extension){
952 services.add(createArcaneCodeService(
this));
958 std::size_t extension_pos = fview.find_last_of(
'.');
959 if (extension_pos==std::string_view::npos)
961 fview.remove_prefix(extension_pos+1);
965 for(
const auto& code_service : services ){
969 found_service = code_service;
973 if (found_service.
get())
977 return found_service;
1004 return m_service_and_module_factory_mng->serviceFactories2();
1013 return m_service_and_module_factory_mng->moduleFactoryInfos();
1020_initDataInitialisationPolicy()
1024 bool is_changed =
false;
1025 if (data_init_policy==
"DEFAULT"){
1029 else if (data_init_policy==
"NAN"){
1033 else if (data_init_policy==
"NONE"){
1037 else if (data_init_policy==
"LEGACY"){
1041 else if (data_init_policy==
"NAN_AND_DEFAULT"){
1048 m_trace->info() <<
"Change data initialisation policy: " << data_init_policy
1049 <<
" (" << (int)init_policy <<
")";
1051 m_trace->info() <<
"Data initialisation policy is : " << (int)init_policy;
1060 return m_arcane_main->applicationBuildInfo();
1069 return m_arcane_main->dotnetRuntimeInitialisationInfo();
1078 return m_arcane_main->acceleratorRuntimeInitialisationInfo();
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Classes, Types et macros pour gérer la concurrence.
Fonctions utilitaires sur les chaînes de caractères.
ARCCORE_BASE_EXPORT std::wstring convertToStdWString(const String &str)
Retourne la conversion de str en std::wstring.
Informations pour l'initialisation des accélérateurs.
Informations pour construire une instance de IApplication.
String configFileName() const
Nom du fichier de configuration du code.
const String & dataDir() const
Retourne le chemin où se trouve les fichiers de données.
const String & codeName() const
Retourne le nom du code de calcul lié l'application.
bool isDebug() const
Retourne true si on s'exécute en mode debug.
String m_user_config_path
Répertoire de configuration utilisateur.
void _openUserConfig()
Analyse le fichier de configuration de l'utilisateur.
ReferenceCounter< ITraceMng > m_trace
Gestionnaire de traces.
~Application() override
Détruit le gestionnaire.
ModuleFactoryInfoCollection m_main_module_factory_infos
Tableau des fabriques de module.
IDataFactory * dataFactory() override
Fabrique de donnée.
ScopedPtrT< IXmlDocumentHolder > m_config_document
Arbre DOM de la configuration.
const ApplicationBuildInfo & applicationBuildInfo() const override
Informations sur les paramètres de construction de l'instance.
ApplicationInfo m_exe_info
Informations sur l'exécutable.
String m_major_and_minor_version_str
Version M.m.
ITraceMngPolicy * getTraceMngPolicy() override
Politique de configuration d'un gestionnaire de trace.
String m_version_str
Infos sur la configuration.
String m_used_task_service_name
Nom du service utilisé pour gérer les tâches.
ITraceMng * createAndInitializeTraceMng(ITraceMng *parent_trace, const String &file_suffix) override
Créé et initialise une instance de ITraceMng.
IMainFactory * m_main_factory
Manufacture principale.
const DotNetRuntimeInitialisationInfo & dotnetRuntimeInitialisationInfo() const override
Informations d'initialisation du runtime '.Net'.
IMainFactory * mainFactory() const override
Manufacture principale.
SessionList m_sessions
Liste des sessions.
Ref< InterfaceType > _tryCreateServiceUsingInjector(const StringList &names, String *found_name)
Ref< InterfaceType > _tryCreateService(const StringList &names, String *found_name)
const AcceleratorRuntimeInitialisationInfo & acceleratorRuntimeInitialisationInfo() const override
Informations d'initialisation du runtime pour les accélérateurs.
String m_user_name
Nom de l'utilisateur.
IRessourceMng * m_ressource_mng
Gestionnaire de ressources.
const ApplicationInfo & applicationInfo() const override
Informations sur l'exécutable.
IDataFactoryMng * dataFactoryMng() const override
Fabrique de donnée.
String m_used_thread_service_name
Nom du service utilisé pour gérer les threads.
XmlNode m_user_config_root_element
Elément racine de la configuration utilisateur.
String m_main_version_str
Version sous la forme Majeur.mineur.beta.
void initialize() override
Initialise l'instance. L'instance n'est pas utilisable tant que cette méthode n'a pas été appelée.
ModuleFactoryInfoCollection moduleFactoryInfos() override
Liste des informations sur les fabriques des modules.
UniqueArray< Byte > m_user_config_bytes
Fichier contenant la configuration utilisateur.
bool m_is_init
true si déjà initialisé
void build() override
Construit les membres de l'instance. L'instance n'est pas utilisable tant que cette méthode n'a pas é...
ITraceMng * traceMng() const override
Gestionnaire de traces.
XmlNode m_config_root_element
Elément racine de la configuration.
String m_application_name
Nom de l'application.
String m_targetinfo_str
Infos sur la configuration.
ScopedPtrT< IXmlDocumentHolder > m_user_config_document
Arbre DOM de la configuration utilisateur.
ServiceFactoryInfoCollection m_main_service_factory_infos
Tableau des fabriques de service.
ServiceFactory2Collection serviceFactories2() override
Liste des fabriques de service.
bool hasGarbageCollector() const override
Indique que certains objets sont gérés via un ramasse miette.
Ref< ICodeService > getCodeService(const String &file_name) override
Retourne le chargeur de cas correspondant au fichier donné par file_name.
Ref< IParallelSuperMng > m_parallel_super_mng
Gestionnaire du parallélisme.
IServiceMng * m_service_mng
Gestionnaire des services.
void removeSession(ISession *s) override
Supprime la session session.
IIOMng * m_io_mng
Gestionnaire des entrées/sorties.
UniqueArray< Byte > m_config_bytes
Fichier contenant la configuration.
void addSession(ISession *s) override
Ajoute la session session.
Ref< IDataFactoryMng > m_data_factory_mng
Fabrique des données.
IParallelSuperMng * m_sequential_parallel_super_mng
Gestionnaire du parallélisme séquentiel.
Application(IArcaneMain *)
Construit un superviseur avec les informations d'exécution ex.
IParallelSuperMng * parallelSuperMng() override
Gestionnaire superviseur du parallélisme.
static Real initializationTimeForAccelerator()
Retourne le temps (en seconde) pour l'initialisation des runtimes accélérateurs pour ce processus.
void add(ConstReferenceType val)
Ajoute l'élément val à la fin du tableau.
EnumeratorT< String > Enumerator
Lecteurs de fichiers de configuration.
void addValuesFromXmlNode(const XmlNode &element, Integer priority)
Ajoute des valeurs à la configuration.
void addValuesFromJSON(const JSONValue &jv, Integer priority)
Ajoute des valeurs à la configuration.
Classe utilitaire pour la destruction des objets alloués par new.
Classe gérant un répertoire.
String file(const String &file_name) const override
Retourne le chemin complet du fichier file_name dans le répertoire.
String path() const override
Retourne le chemin du répertoire.
Informations pour l'initialisation du runtime '.Net'.
Interface de l'application.
Interface de la classe de gestion du code.
Interface d'un chargeur de cas.
virtual StringCollection validExtensions() const =0
Retourne la liste des extensions de fichier traitées par l'instance. L'extension ne comprend pas le '...
Gestionnaire de configuration.
Interface du gestionnaire de fabrique d'une donnée.
Interface d'une fabrique d'une donnée.
Interface d'une chargeur dynamique de bibliothèque.
virtual IDynamicLibrary * open(const String &directory, const String &name)=0
Charge une bibliothèque dynamique.
Interface d'une bibliothèque dynamique.
virtual ITraceMng * createTraceMng()=0
Créé un gestionnaire de trace.
Classe abstraite du superviseur de parallélisme.
virtual bool isParallel() const =0
Retourne true si l'exécution est parallèle.
virtual void initialize()=0
Initialise l'instance.
Interface d'un service gérant un système d'unité.
Interface d'un service de de trace des appels de fonctions.
static IRessourceMng * createDefault(IApplication *)
Création d'un gestionnaire d'historique par défaut.
Interface d'un gestionnaire de fabriques de services et modules.
Interface d'une session d'exécution d'un cas.
Interface du gestionnaire de configuration d'un gestionnnaire de trace.
virtual void initializeTraceMng(ITraceMng *trace, Int32 rank)=0
Initialise trace.
Interface du gestionnaire de traces.
Gestionnaire d'un document DOM.
virtual XmlNode documentNode()=0
Noeud document. Ce noeud est nul si le document n'existe pas.
Classe de base d'une vue sur une connectivité non structurée.
Vues sur les conteneurs contenant les connectivités. Cette classe permet de rendre opaque en dehors d...
Informations de connectivité, pour une famille d'entité, permettant la transition entre les anciennes...
Structure interne d'une entité de maillage.
Index d'un Item dans une variable.
Structure interne partagée d'une entité de maillage.
void build(IParallelSuperMng *parallel_mng, ITraceMng *trace)
Constructeur effectif.
static ItemTypeMng * _singleton()
Instance singleton du type.
Itérateur pour la classe ItemVectorView.
Vue sur un vecteur d'entités.
Classe de base d'un élément de maillage.
Gestion d'un document JSON.
void parse(Span< const Byte > bytes)
Lit le fichier au format UTF-8.
JSONValue root() const
Elément racine.
Représente une valeur JSON.
JSONValue child(StringView name) const
Valeur fille de nom name. Retourne une valeur nulle si non trouvé.
static void setProfilingLevel(Int32 level)
Positionne le niveau de profilage.
static Int32 profilingLevel()
Niveau de profilage.
Référence à une instance.
InstanceType * get() const
Instance associée ou nullptr si aucune.
Classe utilitaire pour instantier un service d'une interface donnée.
UniqueArray< Ref< InterfaceType > > createAllInstances()
Créé une instance de chaque service qui implémente InterfaceType.
Ref< InterfaceType > createReference(const String &name, eServiceBuilderProperties properties=SB_None)
Créé une instance implémentant l'interface InterfaceType.
Chaîne de caractères unicode.
bool null() const
Retourne true si la chaîne est nulle.
bool empty() const
Vrai si la chaîne est vide (nulle ou "")
std::string_view toStdStringView() const
Retourne une vue de la STL sur la chaîne actuelle.
static void setVerboseLevel(Integer v)
Positionne le niveau de verbosité (0 pour pas d'affichage qui est le défaut)
static Int32 nbAllowedThread()
Nombre de threads utilisés au maximum pour gérer les tâches.
static void terminate()
Indique qu'on n'utilisera plus les threads. Cette méthode ne doit pas être appelée lorsque des tâches...
static bool isActive()
Indique si les tâches sont actives. Les tâches sont actives si une implémentation est disponible et s...
static void printInfos(std::ostream &o)
Affiche les informations sur l'implémentation.
Vecteur 1D de données avec sémantique par valeur (style STL).
Vue sur les connectivités standards d'un maillage non structuré.
Informations sur une version.
int versionMajor() const
Retourne le numéro de version majeur.
int versionMinor() const
Retourne le numéro de version mineur.
int versionPatch() const
Retourne le numéro de version patch.
XmlNode documentElement() const
Retourne le noeud élément du document.
bool null() const
Vrai si le noeud est nul.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
void setGlobalDataInitialisationPolicy(eDataInitialisationPolicy init_policy)
Positionne la politique d'initialisation des variables.
@ SB_AllowNull
Autorise l'absence du service.
bool arcaneIsCheck()
Vrai si on est en mode vérification.
eDataInitialisationPolicy
Type de politique d'initialisation possible pour une donnée.
@ DIP_InitInitialWithNanResizeWithDefault
Initialisation avec des NaN pour à la création et le constructeur par défaut ensuite.
@ DIP_Legacy
Initialisation en mode historique.
@ DIP_None
Pas d'initialisation forcée.
@ DIP_InitWithNan
Initialisation avec des NaN (Not a Number)
@ DIP_InitWithDefault
Initialisation avec le constructeur par défaut.
bool arcaneHasThread()
Vrai si arcane est compilé avec le support des threads ET qu'ils sont actifs.
std::int64_t Int64
Type entier signé sur 64 bits.
void arcaneSetHasThread(bool v)
Active ou désactive le support des threads.
eDataInitialisationPolicy getGlobalDataInitialisationPolicy()
Récupère la politique d'initialisation des variables.
Int32 Integer
Type représentant un entier.
Collection< String > StringCollection
Collection de chaînes de caractères.
Collection< Internal::IServiceFactory2 * > ServiceFactory2Collection
Collection de fabriques de service.
Collection< IModuleFactoryInfo * > ModuleFactoryInfoCollection
Collection d'informations sur les fabriques de module.
List< String > StringList
Tableau de chaînes de caractères unicode.
void arcaneSetCheck(bool v)
Active ou désactive le mode vérification.
eItemKind
Genre d'entité de maillage.
double Real
Type représentant un réel.
auto makeRef(InstanceType *t) -> Ref< InstanceType >
Créé une référence sur un pointeur.
std::int32_t Int32
Type entier signé sur 32 bits.