16#include <Synonyme_info.h>
17#include <Objet_U_ptr.h>
31 else os <<
"vide" << finl;
42 if (nom_type !=
"vide")
44 objet =
typer(nom_type);
49 if (objet) is >> (*objet);
79 assert(ptr !=
nullptr);
96 if (cle_ != -1 || ptr_object_id_ != -1)
101 if (
id == ptr_object_id_)
105 Cerr <<
"(PE" <<
me() <<
") ";
106 Cerr <<
"Error in Objet_U_ptr::get_Objet_U_ptr_check() : id != ptr_object_id_\n";
107 Cerr <<
" Pointer type " <<
le_type();
108 Cerr <<
"\n cle_ = " << cle_;
109 Cerr <<
"\n ptr_object_id_ = " << ptr_object_id_;
110 Cerr <<
"\n id = " << id;
111 std::cerr <<
"\n &la_memoire().objet_u(cle_) = " << addr << std::endl;
125 if (ptr ==
nullptr)
return 1;
134 if (! type_info_ptr.
can_cast(&type_info_obj))
136 Cerr <<
"(PE" <<
me() <<
") ";
137 Cerr <<
"Error in Objet_U_ptr::get_Objet_U_ptr_check() : Type error\n";
138 Cerr <<
" Pointer type " <<
le_type();
139 Cerr <<
"\n cle_ = " << cle_;
140 Cerr <<
"\n ptr_object_id_ = " << ptr_object_id_;
141 std::cerr <<
"\n &memoire.objet_u(cle_) = " << ptr;
142 Cerr <<
"\n Type accepted by the pointer : " << type_info_ptr.
name();
143 Cerr <<
"\n Object type in reference : " << type_info_obj.
name();
163 cle_ = new_ones[cle_];
192 objet = & memoire.
objet_u(cle_);
240 Cerr <<
"Error in Deriv_::typer_(const char* const type)" << finl << type <<
" is not a type." << finl;
241 Cerr <<
"Type required : derived from " << type_base.
name() << finl << finl;
242 Cerr << type <<
" is not a recognized keyword." << finl <<
"Check your data set." << finl;
244 if (nompb.
find(
"TURBULENT") != -1 || nompb.
find(
"TURBULENCE") != -1)
245 Cerr << finl <<
"*** NOTE :: Since TRUST V1.8.0, turbulence models are in TrioCFD and not anymore in TRUST.\nTry using TrioCFD executable or contact TRUST support." << finl;
251 Cerr <<
"Error in Deriv_::typer_(const char* const type).\n" << type <<
" is not instanciable." << finl;
255 if (! type_info->
has_base(&type_base))
256 Cerr <<
"Error in Deriv_::typer_(const char* const type).\n " << type <<
" is not a subtype of " << type_base.
name() << finl;
Class defining operators and methods for all reading operation in an input flow (file,...
Objet_U & objet_u(int)
Retoune une reference sur l'Objet_U de rang num dans la memoire.
static Memoire & Instance()
Retourne un pointeur sur l'instance de la memoire Cree un nouvel objet memoire si aucune instance n'a...
class Nom Une chaine de caractere pour nommer les objets de TRUST
virtual int find(const char *const n) const
int associer_(Objet_U &objet) override
Associe l'Objet_U a un autre Objet_U Methode virtuelle a surcharger.
int change_num(const int *const) override
Pour mettre a jour les cles lorsque les Objet_U ont etes renumerotes.
Objet_U * get_Objet_U_ptr_check() const
Verifie si le pointeur est valide.
virtual void set_Objet_U_ptr(Objet_U *)
Fait pointer *this sur l'objet *ptr L'adresse peut etre nulle (pointeur nul).
void recopie(const Objet_U &)
Duplique l'Objet_U obj puis change le pointeur vers cette copie.
int check_Objet_U_ptr_type(const Objet_U *ptr) const
Verifie que l'objet pointe par ptr est d'un type acceptable pour le pointeur (avec get_info_ptr).
~Objet_U_ptr() override
Destructeur.
Objet_U_ptr()
construit un pointeur nul (cle a -1)
Objet_U * typer(const char *nom_type)
Essaie de creer une instance du type "type".
virtual Objet_U * get_Objet_U_ptr() const
Renvoie un pointeur sur l'Objet_U associe ATTENTION: l'adresse peut etre nulle (si le pointeur est nu...
virtual const Type_info & get_info_ptr() const =0
classe Objet_U Cette classe est la classe de base des Objets de TRUST
virtual int duplique() const =0
virtual int associer_(Objet_U &)
Associe l'Objet_U a un autre Objet_U Methode virtuelle a surcharger.
int numero() const
Renvoie l'indice de l'objet dans Memoire::data.
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
virtual int change_num(const int *const)
Change le numero interne de l'Objet_U.
const char * le_type() const
Donne le nom du type de l'Objet_U.
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
int get_object_id() const
Renvoie l'identifiant unique de l'objet object_id_.
virtual const Type_info * get_info() const
Donne des informations sur le type de l'Objet_U.
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
static int me()
renvoie mon rang dans le groupe de communication courant.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.
modelise une information de synonyme pour les Objet_U
static const Synonyme_info * synonyme_info_from_name(const char *synonyme_name)
Methode statique qui renvoie un pointeur vers le Synonyme_info dont le nom est "synonyme_name".
const char * org_name_() const
modelise une information de type pour les Objet_U
int instanciable() const
Renvoie 1 si le type associe est instanciable (cree_instance non nul) renvoie 0 sinon.
Objet_U * instance() const
Cree une instance de la classe associee au type_info.
int has_base(const Type_info *p, int direct=0) const
Test d'appartenance d'un type dans les types de bases du type considere si direct == 0.
int can_cast(const Type_info *p) const
Exploration de la hierarchie des types retourne 1 si p pointe sur un sous type du type considere.
static const Type_info * type_info_from_name(const char *type_name)
Methode statique qui renvoie un pointeur vers le Type_info dont le nom est "type_name".