23Implemente_instanciable_sans_constructeur_ni_destructeur(
Nom,
"Nom",
Objet_U);
50 const int ok = s.
get(buffer, BUFLEN);
89 snprintf(chaine, 22,
"%d", i);
98 snprintf(chaine, 22,
"%ld", i);
107 snprintf(chaine, 22,
"%lld", i);
140 snprintf(la_chaine,80,
"%f",le_reel);
153 snprintf(la_chaine,80,format,le_reel);
157 unsigned int length=strlen(la_chaine);
158 if (la_chaine[length-5]==
'e')
161 for (
unsigned int i=length-3; i<=length; i++)
162 la_chaine[i]=la_chaine[i+1];
182 std::transform(
nom_.begin(),
nom_.end(),
nom_.begin(), ::toupper);
193 return (
int)
nom_.size()+1;
275 int n2 = (int)strlen(s);
285 const int n1 = (int)strlen(s);
286 const int n2 = (int)
nom_.size();
287 const std::string str1 =
nom_.substr(n1,n2);
296 return (
nom_.rfind(ch, 0) == 0);
301 auto l =
nom_.size(), e = s.size();
303 return (0 ==
nom_.compare(l - e, e, s));
310 std::size_t x =
nom_.find(n);
311 return (x != std::string::npos) ? (int)x : -1;
316 return find(std::string(n));
333 int n = (int)
nom_.size();
334 int n2 = (int)strlen(s);
344 const int n1 = (int)
nom_.size();
345 const int n2 = (int)strlen(s);
346 const std::string str1 =
nom_.substr(0,n1-n2);
373 if (!(sub_type(
Nom, x)))
return 0;
374 return (*
this == ref_cast(
Nom, x));
376 const Nom& n2 =
dynamic_cast<const Nom&
>(x);
377 return (*
this == n2);
389 int compteur=(int)
nom_.size();
390 const char* ptr=
nom_.c_str()+compteur;
391 while((*ptr!=
'.') && (*ptr!=
'/')&&(compteur>0))
403 compteur=(int)
nom_.size();
406 std::string newname=
nom_.substr(0,compteur);
409 int digits=0,diviseur=0;
412 digits = (n==0) ? 1 : (int)std::lrint(std::truncl(log10(n)+1.0));
413 diviseur = (int)std::lrint(std::truncl(pow(10, digits-1)));
440 Cerr <<
"Error in Nom::nom_me. Contact TRUST support." << finl;
447 if(prefixe) prefix_len+=(int)strlen(prefixe);
449 char *c_numero=
new char[prefix_len+digits+1];
452 if(prefixe) strcpy(c_numero+1, prefixe);
453 for (
int i=prefix_len; i<prefix_len+digits; i++)
456 char c= (char)((
int)
'0' + resultat);
458 n-=resultat*diviseur;
461 c_numero[prefix_len+digits]=
'\0';
465 Nom new_name(newname);
477 assert(deb - 1 + la_longueur <= (
int)
nom_.size());
478 Nom nouveau(
nom_.substr(deb-1,la_longueur));
490 int iLength = (int)
nom_.size();
491 for (
int i=0; i<iLength; i++)
496 the_basename.
suffix(dirname);
507Nom::operator
const char*()
const
518int operator ==(
const Nom& un_nom,
const char*
const un_autre)
520 int res_actu=(un_nom.
nom_.compare(un_autre)==0);
523int operator ==(
const Nom& un_nom,
const Nom& un_autre)
525 return (un_nom==un_autre.
getChar());
527int operator ==(
const char*
const un_autre,
const Nom& un_nom)
529 return (un_nom == un_autre);
538int operator !=(
const Nom& un_nom,
const char* un_autre)
540 return ! (un_nom == un_autre);
543int operator !=(
const Nom& un_nom,
const Nom& un_autre)
545 return ! (un_nom == un_autre);
548int operator !=(
const char*
const un_autre,
const Nom& un_nom)
550 return ! (un_autre == un_nom);
553bool operator <(
const Nom& n1,
const Nom& n2)
555 return n1.
nom_.compare(n2.
nom_) < 0;
Class defining operators and methods for all reading operation in an input flow (file,...
virtual int get(int *ob, std::streamsize n)
class Nom Une chaine de caractere pour nommer les objets de TRUST
~Nom() override
Destructeur.
const char * getChar() const
Nom()
Constructeur par defaut.
virtual int finit_par(const char *const n) const
Nom substr_old(const int, const int) const
Retourne un nom selon la commande usuelle substr ATTENTION : deb = 1 => premier caractere de la chain...
int est_egal_a(const Objet_U &) const override
Comparaison avec un Objet_U l'Objet_U est caste en Nom pour la comparaison.
const Nom getPrefix(const char *const) const
Nom & operator=(const char *const)
Copie la chaine nom.
Nom nom_me(int, const char *prefix=0, int without_padding=0) const
Insere _prefix000n (n=me() ou nproc()) dans un nom de fichier (par ex:toto.
const Nom getSuffix(const char *const) const
virtual int debute_par(const char *const n) const
virtual int find(const char *const n) const
Nom & operator+=(const Nom &x)
Concatenation avec un Nom.
int longueur() const
Renvoie le nombre de caracteres de la chaine du Nom y compris le caractere zero de fin de chaine.
Nom & prefix(const char *const)
Nom & majuscule()
Transforme le nom en majuscules Seules les lettres 'a'-'z' sont modifiees.
Nom operator+(const Nom &) const
Concatenation avec un Nom.
Nom & suffix(const char *const)
Extraction de suffixe : Nom x("azerty");.
Nom basename() const
Retourne fichier si le nom est sous la forme /toto/titi/fichier.
const Nom & le_nom() const override
Renvoie *this;.
classe Objet_U Cette classe est la classe de base des Objets de TRUST
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
Objet_U()
Constructeur par defaut : attribue un numero d'identifiant unique a l'objet (object_id_),...
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
static int nproc()
renvoie le nombre de processeurs dans le groupe courant Voir Comm_Group::nproc() et PE_Groups::curren...
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
Classe de base des flux de sortie.