Analysis  version 7.0 - august 2014
Param.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file Param.hh
3  *
4  * Déclaration des méthodes de la classe Param qui est la classe
5  * générique pour les paramètres d'un événement.
6  */
7 //======================================================================
8 
9 
10 #ifndef PARAM_HH
11 #define PARAM_HH
12 
13 #include "EventCommon.hh"
14 #include "DataTypes.hh"
15 #include "GNamed.hh"
16 
17 #define PARAM_NONAME "unnamed" ///< Nom de paramètre non spécifié
18 
19 // identification des types de paramètres
20 #define PARAM_TYPE_UNDEFINED 0 ///< Identificateur de type de paramètre inconnu
21 #define PARAM_TYPE_SINGLE 1 ///< Identificateur de type de paramètre simple
22 #define PARAM_TYPE_ARRAY 2 ///< Identificateur de type de paramètre tableau fixe
23 #define PARAM_TYPE_MULTIHIT 3 ///< Identificateur de type de paramètre multihit
24 
25 //======================================================================
26 /*! \class Param
27  *
28  * C'est une classe virtuelle pure qui est la classe
29  * générique pour les paramètres d'un événement.
30  * Les classes de paramètres sont:
31  * - ParamSingle paramètre simple auquel est associé une seule valeur
32  * - ParamArray tableau avec un nombre fixé de valeurs
33  * - ParamMultihit liste avec un nombre variable de valeurs
34  *
35  * \note
36  * L'affectation d'un type de base ou d'une instance Data à un
37  * paramètre ne modifie pas le type du paramètre
38  * (un cast est effectué sur la valeur).
39  *
40  * Le mot d'état du paramètre indique:
41  * - si au moins une valeur à été affectée au paramètre
42  *
43  *
44  * La bibliothèque Event nécessite la bibliothèque Data, mais la
45  * réciproque est fausse. Afin de garder cette indépendance de la
46  * bibliothèque Data, il n'y a pas d'opérateur d'affectation d'une
47  * instance Param vers une instance Data.
48  *
49  * Comme l'opérateur d'affectation ne peut pas être redéfini hors
50  * de la définition de la classe Data (opérateur à 2 opérandes
51  * déclaré dans Param.hh):
52  * \code
53  DataI2 & operator = ( DataI2 &d, const Param &p )
54  { return (d = p.Get()) ; }
55  * \endcode
56  * il faudrait alors déclarer l'opérateur dans la classe Data
57  * (opérateur virtuel pur), et le définir dans les classes
58  * dérivées:
59  *
60  * dans Data
61  * \code
62  Data & Data::operator = ( const Param &p ) = 0;
63  * \endcode
64  *
65  * et dans DataI2 (par exemple)
66  * \code
67  Data & DataI2::operator = ( const Param &p )
68  { return (*this = p.Get()); }
69  * \endcode
70  *
71  * La bibliothèque ne pourrait plus exister sans la déclaration de
72  * la classe Param de la bibliothèque Event.
73  *
74  * Il est toutefois possible d'affecter une donnée de type Data à partir
75  * d'une instance Param, en appelant la méthode Get(), par exemple:
76  * \code
77  DataI2 i;
78  Param p("mon_parametre", (Real4) 15.6);
79  i = p.Get() // bien sûr, dans ce cas, il y a un cast
80  * \endcode
81  */
82 
83 class Param : public GNamed
84 {
85 //----------------------------------------------------------------------
86  /*! \object_doc */
87  GObjectV(Param);
88 //----------------------------------------------------------------------
89 
90  /// Identification des types de paramètres
91  enum PTypes
92  {
93  typeUndefined = 0,
94  typeSingle = 1,
95  typeArray = 2,
96  typeMultihit = 3
97  } ;
98 
99  protected:
100  u_int status; ///< Mot d'état du paramètre (non implémenté)03f
101 
102  Data *def_value_ptr; ///< Pointeur sur la valeur par défaut du paramètre
103 
104  public:
105 
106 //----------------------------------------------------------------------
107 // CONSTRUCTEUR / AFFECTATION / DESTRUCTEUR
108 //----------------------------------------------------------------------
109 
110  /*! Constructeur: le nom de paramètre doit être spécifié. * \param par_name nom du paramètre */ Param ( const string &par_name = PARAM_NONAME ) : GNamed (par_name) { status = 0; def_value_ptr = NULL; } /*! Constructeur de recopie. * \param par paramètre à copier */ Param ( const Param &par ) : GNamed (par) { status = par.status; def_value_ptr = NULL; } /*! Opérateur d'affectation. * \param par paramètre à affecter */ Param & operator = ( const Param &par ) { name = par.GetName(); status = par.status; def_value_ptr = _AllocData( *(par.def_value_ptr)); return (*this); } /*! Destructeur*/ virtual ~Param () { if (def_value_ptr != NULL) delete def_value_ptr; } //---------------------------------------------------------------------- // METHODES VIRTUELLES PURES: AFFECTATION //---------------------------------------------------------------------- /*! Opérateur d'affectation d'une donnée. * \param d donnée à affecter */ virtual Param & operator = ( const Data &d ) = 0; /*! Opérateur d'affectation d'un entier 16 bits signé. * \param val valeur à affecter */ virtual Param & operator = ( const Int2 val ) = 0; /*! Opérateur d'affectation d'un entier 16 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int2 val ) = 0; /*! Opérateur d'affectation d'un entier 32 bits signé. * \param val valeur à affecter */ virtual Param & operator = ( const Int4 val ) = 0; /*! Opérateur d'affectation d'un entier 32 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int4 val ) = 0; /*! Opérateur d'affectation d'un entier 64 bits signé. * \param val valeur à affecter */ virtual Param & operator = ( const Int8 val ) = 0; /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int8 val ) = 0; /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real4 val ) = 0; /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real8 val ) = 0; //---------------------------------------------------------------------- // METHODES VIRTUELLES PURES: CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ virtual operator Data & () const = 0; #endif /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int2 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int2 () const = 0; /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int4 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int4 () const = 0; /*! Opérateur de cast un entier 64 bits signé.*/ virtual operator Int8 () const = 0; /*! Opérateur de cast un entier 64 bits non signé.*/ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif
111  * \param par_name nom du paramètre
112  */
113  Param ( const string &par_name = PARAM_NONAME ) : GNamed (par_name)
114  {
115  status = 0;
116  def_value_ptr = NULL;
117  }
118 
119  /*! Constructeur de recopie.
120  * \param par paramètre à copier
121  */
122  Param ( const Param &par ) : GNamed (par)
123  {
124  status = par.status;
125  def_value_ptr = NULL;
126  }
127 
128  /*! Opérateur d'affectation.
129  * \param par paramètre à affecter
130  */
131  Param & operator = ( const Param &par )
132  {
133  name = par.GetName();
134  status = par.status;
136 
137  return (*this);
138  }
139 
140  /*! Destructeur*/
141  virtual ~Param ()
142  {
143  if (def_value_ptr != NULL) delete def_value_ptr;
144  }
145 
146 //----------------------------------------------------------------------
147 // METHODES VIRTUELLES PURES: AFFECTATION
148 //----------------------------------------------------------------------
149 
150  /*! Opérateur d'affectation d'une donnée.
151  * \param d donnée à affecter
152  */
153  virtual Param & operator = ( const Data &d ) = 0;
154 
155  /*! Opérateur d'affectation d'un entier 16 bits signé. * \param val valeur à affecter */ virtual Param & operator = ( const Int2 val ) = 0; /*! Opérateur d'affectation d'un entier 16 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int2 val ) = 0; /*! Opérateur d'affectation d'un entier 32 bits signé. * \param val valeur à affecter */ virtual Param & operator = ( const Int4 val ) = 0; /*! Opérateur d'affectation d'un entier 32 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int4 val ) = 0; /*! Opérateur d'affectation d'un entier 64 bits signé. * \param val valeur à affecter */ virtual Param & operator = ( const Int8 val ) = 0; /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int8 val ) = 0; /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real4 val ) = 0; /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real8 val ) = 0; //---------------------------------------------------------------------- // METHODES VIRTUELLES PURES: CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ virtual operator Data & () const = 0; #endif /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int2 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int2 () const = 0; /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int4 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int4 () const = 0; /*! Opérateur de cast un entier 64 bits signé.*/ virtual operator Int8 () const = 0; /*! Opérateur de cast un entier 64 bits non signé.*/ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif
156  * \param val valeur à affecter
157  */
158  virtual Param & operator = ( const Int2 val ) = 0;
159 
160  /*! Opérateur d'affectation d'un entier 16 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int2 val ) = 0; /*! Opérateur d'affectation d'un entier 32 bits signé. * \param val valeur à affecter */ virtual Param & operator = ( const Int4 val ) = 0; /*! Opérateur d'affectation d'un entier 32 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int4 val ) = 0; /*! Opérateur d'affectation d'un entier 64 bits signé. * \param val valeur à affecter */ virtual Param & operator = ( const Int8 val ) = 0; /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int8 val ) = 0; /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real4 val ) = 0; /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real8 val ) = 0; //---------------------------------------------------------------------- // METHODES VIRTUELLES PURES: CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ virtual operator Data & () const = 0; #endif /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int2 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int2 () const = 0; /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int4 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int4 () const = 0; /*! Opérateur de cast un entier 64 bits signé.*/ virtual operator Int8 () const = 0; /*! Opérateur de cast un entier 64 bits non signé.*/ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif
161  * \param val valeur à affecter
162  */
163  virtual Param & operator = ( const U_Int2 val ) = 0;
164 
165  /*! Opérateur d'affectation d'un entier 32 bits signé. * \param val valeur à affecter */ virtual Param & operator = ( const Int4 val ) = 0; /*! Opérateur d'affectation d'un entier 32 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int4 val ) = 0; /*! Opérateur d'affectation d'un entier 64 bits signé. * \param val valeur à affecter */ virtual Param & operator = ( const Int8 val ) = 0; /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int8 val ) = 0; /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real4 val ) = 0; /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real8 val ) = 0; //---------------------------------------------------------------------- // METHODES VIRTUELLES PURES: CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ virtual operator Data & () const = 0; #endif /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int2 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int2 () const = 0; /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int4 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int4 () const = 0; /*! Opérateur de cast un entier 64 bits signé.*/ virtual operator Int8 () const = 0; /*! Opérateur de cast un entier 64 bits non signé.*/ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif
166  * \param val valeur à affecter
167  */
168  virtual Param & operator = ( const Int4 val ) = 0;
169 
170  /*! Opérateur d'affectation d'un entier 32 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int4 val ) = 0; /*! Opérateur d'affectation d'un entier 64 bits signé. * \param val valeur à affecter */ virtual Param & operator = ( const Int8 val ) = 0; /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int8 val ) = 0; /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real4 val ) = 0; /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real8 val ) = 0; //---------------------------------------------------------------------- // METHODES VIRTUELLES PURES: CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ virtual operator Data & () const = 0; #endif /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int2 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int2 () const = 0; /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int4 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int4 () const = 0; /*! Opérateur de cast un entier 64 bits signé.*/ virtual operator Int8 () const = 0; /*! Opérateur de cast un entier 64 bits non signé.*/ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif
171  * \param val valeur à affecter
172  */
173  virtual Param & operator = ( const U_Int4 val ) = 0;
174 
175  /*! Opérateur d'affectation d'un entier 64 bits signé. * \param val valeur à affecter */ virtual Param & operator = ( const Int8 val ) = 0; /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int8 val ) = 0; /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real4 val ) = 0; /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real8 val ) = 0; //---------------------------------------------------------------------- // METHODES VIRTUELLES PURES: CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ virtual operator Data & () const = 0; #endif /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int2 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int2 () const = 0; /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int4 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int4 () const = 0; /*! Opérateur de cast un entier 64 bits signé.*/ virtual operator Int8 () const = 0; /*! Opérateur de cast un entier 64 bits non signé.*/ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif
176  * \param val valeur à affecter
177  */
178  virtual Param & operator = ( const Int8 val ) = 0;
179 
180  /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ virtual Param & operator = ( const U_Int8 val ) = 0; /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real4 val ) = 0; /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ virtual Param & operator = ( const Real8 val ) = 0; //---------------------------------------------------------------------- // METHODES VIRTUELLES PURES: CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ virtual operator Data & () const = 0; #endif /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int2 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int2 () const = 0; /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int4 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int4 () const = 0; /*! Opérateur de cast un entier 64 bits signé.*/ virtual operator Int8 () const = 0; /*! Opérateur de cast un entier 64 bits non signé.*/ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif
181  * \param val valeur à affecter
182  */
183  virtual Param & operator = ( const U_Int8 val ) = 0;
184 
185  /*! Opérateur d'affectation d'un réel 32 bits.
186  * \param val valeur à affecter
187  */
188  virtual Param & operator = ( const Real4 val ) = 0;
189 
190  /*! Opérateur d'affectation d'un réel 64 bits.
191  * \param val valeur à affecter
192  */
193  virtual Param & operator = ( const Real8 val ) = 0;
194 
195 
196 //----------------------------------------------------------------------
197 // METHODES VIRTUELLES PURES: CAST
198 //----------------------------------------------------------------------
199 
200 #ifndef __MAKECINT__
201  /*! Opérateur de cast une donnée générique.*/
202  virtual operator Data & () const = 0;
203 #endif
204 
205  /*! Opérateur de cast un entier 32 bits signé./ virtual operator Int2 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int2 () const = 0; /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int4 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int4 () const = 0; /*! Opérateur de cast un entier 64 bits signé.*/ virtual operator Int8 () const = 0; /*! Opérateur de cast un entier 64 bits non signé.*/ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif */
206  virtual operator Int2 () const = 0;
207 
208  /*! Opérateur de cast un entier 32 bits non signé./ virtual operator U_Int2 () const = 0; /*! Opérateur de cast un entier 32 bits signé.*/ virtual operator Int4 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int4 () const = 0; /*! Opérateur de cast un entier 64 bits signé.*/ virtual operator Int8 () const = 0; /*! Opérateur de cast un entier 64 bits non signé.*/ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif */
209  virtual operator U_Int2 () const = 0;
210 
211  /*! Opérateur de cast un entier 32 bits signé./ virtual operator Int4 () const = 0; /*! Opérateur de cast un entier 32 bits non signé.*/ virtual operator U_Int4 () const = 0; /*! Opérateur de cast un entier 64 bits signé.*/ virtual operator Int8 () const = 0; /*! Opérateur de cast un entier 64 bits non signé.*/ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif */
212  virtual operator Int4 () const = 0;
213 
214  /*! Opérateur de cast un entier 32 bits non signé./ virtual operator U_Int4 () const = 0; /*! Opérateur de cast un entier 64 bits signé.*/ virtual operator Int8 () const = 0; /*! Opérateur de cast un entier 64 bits non signé.*/ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif */
215  virtual operator U_Int4 () const = 0;
216 
217  /*! Opérateur de cast un entier 64 bits signé./ virtual operator Int8 () const = 0; /*! Opérateur de cast un entier 64 bits non signé.*/ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif */
218  virtual operator Int8 () const = 0;
219 
220  /*! Opérateur de cast un entier 64 bits non signé./ virtual operator U_Int8 () const = 0; /*! Opérateur de cast un réel 32 bits.*/ virtual operator Real4 () const = 0; /*! Opérateur de cast un réel 64 bits.*/ virtual operator Real8 () const = 0; //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ virtual inline u_int TypeId() const {return (typeUndefined); } ; /*! Retourne le type de paramètre.*/ virtual string Type() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type. */ virtual string InfoString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ virtual string ValueString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ virtual string ValueFullString() const = 0; /*! Retourne chaîne de caractères avec le paramètre et son type * et l'ensemble des données. */ virtual string DataString() const = 0; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ virtual string GetDataType() const = 0; /*! Retourne l'identifiant du type de donnée.*/ virtual u_int GetDataTypeId() const = 0; //---------------------------------------------------------------------- /*! Remise à zéro du paramètre. */ virtual void Reset() = 0; /*! Retourne le nombre de données numériques du paramètre. */ virtual u_int Dimension() const = 0; /*! Retourne la donnée courante. */ virtual const Data & Get() const = 0; /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode * n'a de sens que pour un paramètre à valeurs multiples. Pour * un paramètre simple, tout argument différent de zéro entraine * une erreur. * \param index position de la valeur dans le paramètre */ virtual Data & operator [] (u_int index) const = 0; /*! Retourne la donnée par défault. */ virtual const Data & GetDefaultData() { return (*def_value_ptr); } // Définit la donnée par défaut. virtual void SetDefaultData( const Data &d ); //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool First() const = 0; /*! Positionne le paramètre sur sa dernière donnée. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Last() const = 0; /*! Positionne le paramètre sur la dernière suivante. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Next() const = 0; /*! Positionne le paramètre sur la dernière précédente. Cette fonction * n'a pas d'utilité pour les paramètres simples. */ virtual bool Previous() const = 0; //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: // Alloue une nouvelle donnée par recopie Data *_AllocData ( const Data & ) ; //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(Param,0); } ; //====================================================================== // FONCTIONS ASSOCIEES //====================================================================== /*! Opérateur d'écriture d'un paramètre dans un flux de sortie. * \param os flux de sortie * \param p paramètre à écrire */ inline ostream & operator << ( ostream & os, const Param &p ) { return (os << p.Get().String()); } //====================================================================== #endif */
221  virtual operator U_Int8 () const = 0;
222 
223  /*! Opérateur de cast un réel 32 bits.*/
224  virtual operator Real4 () const = 0;
225 
226  /*! Opérateur de cast un réel 64 bits.*/
227  virtual operator Real8 () const = 0;
228 
229 //----------------------------------------------------------------------
230 //
231 //----------------------------------------------------------------------
232 
233  /*! Retourne l'identificateur de type de paramètre.*/
234  virtual inline u_int TypeId() const {return (typeUndefined); } ;
235 
236  /*! Retourne le type de paramètre.*/
237  virtual string Type() const = 0;
238 
239  /*! Retourne chaîne de caractères avec le paramètre et son type.
240  */
241  virtual string InfoString() const = 0;
242 
243  /*! Retourne chaîne de caractères avec le paramètre et son type
244  * et la valeur courante.
245  */
246  virtual string ValueString() const = 0;
247 
248  /*! Retourne chaîne de caractères avec le paramètre et son type
249  * et la valeur courante avec son mot d'état.
250  */
251  virtual string ValueFullString() const = 0;
252 
253  /*! Retourne chaîne de caractères avec le paramètre et son type
254  * et l'ensemble des données.
255  */
256  virtual string DataString() const = 0;
257 
258 //----------------------------------------------------------------------
259 
260  /*! Retourne chaîne de caractères avec de donnée.*/
261  virtual string GetDataType() const = 0;
262 
263  /*! Retourne l'identifiant du type de donnée.*/
264  virtual u_int GetDataTypeId() const = 0;
265 
266 
267 //----------------------------------------------------------------------
268  /*! Remise à zéro du paramètre.
269  */
270  virtual void Reset() = 0;
271 
272  /*! Retourne le nombre de données numériques du paramètre.
273  */
274  virtual u_int Dimension() const = 0;
275 
276  /*! Retourne la donnée courante.
277  */
278  virtual const Data & Get() const = 0;
279 
280  /*! Opérateur []: renvoie la valeur de rang donnée. Cette méthode
281  * n'a de sens que pour un paramètre à valeurs multiples. Pour
282  * un paramètre simple, tout argument différent de zéro entraine
283  * une erreur.
284  * \param index position de la valeur dans le paramètre
285  */
286  virtual Data & operator [] (u_int index) const = 0;
287 
288 
289  /*! Retourne la donnée par défault. */
290  virtual const Data & GetDefaultData() { return (*def_value_ptr); }
291 
292  // Définit la donnée par défaut.
293  virtual void SetDefaultData( const Data &d );
294 
295 //----------------------------------------------------------------------
296 
297  /*! Positionne le paramètre sur sa première donnée. Cette fonction
298  * n'a pas d'utilité pour les paramètres simples.
299  */
300  virtual bool First() const = 0;
301 
302  /*! Positionne le paramètre sur sa dernière donnée. Cette fonction
303  * n'a pas d'utilité pour les paramètres simples.
304  */
305  virtual bool Last() const = 0;
306 
307  /*! Positionne le paramètre sur la dernière suivante. Cette fonction
308  * n'a pas d'utilité pour les paramètres simples.
309  */
310  virtual bool Next() const = 0;
311 
312  /*! Positionne le paramètre sur la dernière précédente. Cette fonction
313  * n'a pas d'utilité pour les paramètres simples.
314  */
315  virtual bool Previous() const = 0;
316 
317 //----------------------------------------------------------------------
318 // METHODES PROTEGEES
319 //----------------------------------------------------------------------
320 
321  protected:
322 
323  // Alloue une nouvelle donnée par recopie
324  Data *_AllocData ( const Data & ) ;
325 
326 
327 //----------------------------------------------------------------------
328 // pour ROOT...
329  public:
330  /*! Définition à usage de ROOT... */
331  ClassDef(Param,0);
332 } ;
333 
334 
335 //======================================================================
336 // FONCTIONS ASSOCIEES
337 //======================================================================
338 
339 /*! Opérateur d'écriture d'un paramètre dans un flux de sortie.
340  * \param os flux de sortie
341  * \param p paramètre à écrire
342  */
343 inline ostream & operator << ( ostream & os, const Param &p )
344  { return (os << p.Get().String()); }
345 
346 //======================================================================
347 #endif
double Real8
Définition du type réel 32 bits.
Definition: EventCommon.hh:68
float Real4
Définition du type réel 32 bits.
Definition: EventCommon.hh:62
virtual string Type() const =0
ostream & operator<<(ostream &os, const Data &d)
Definition: Data.hh:445
virtual ~Param()
Definition: Param.hh:141
virtual string DataString() const =0
virtual const Data & GetDefaultData()
Definition: Param.hh:290
virtual string InfoString() const =0
virtual bool Last() const =0
virtual const Data & Get() const =0
virtual bool Next() const =0
PTypes
Identification des types de paramètres.
Definition: Param.hh:91
#define PARAM_NONAME
Nom de paramètre non spécifié
Definition: Param.hh:17
unsigned short U_Int2
Définition du type entier 16 bits non signé
Definition: EventCommon.hh:32
virtual void Reset()=0
Param(const Param &par)
Definition: Param.hh:122
short Int2
Définition du type entier 16 bits.
Definition: EventCommon.hh:26
virtual Data & operator[](u_int index) const =0
virtual bool First() const =0
virtual string GetDataType() const =0
virtual void SetDefaultData(const Data &d)
Definition: Param.cpp:69
virtual u_int Dimension() const =0
Definition: Param.hh:83
ULong64_t U_Int8
Définition du type entier 64 bits non signé
Definition: EventCommon.hh:56
Data * _AllocData(const Data &)
Definition: Param.cpp:19
virtual u_int GetDataTypeId() const =0
virtual string ValueString() const =0
virtual bool Previous() const =0
virtual u_int TypeId() const
Definition: Param.hh:234
Definition: Data.hh:153
Param & operator=(const Param &par)
Definition: Param.hh:131
int Int4
Définition du type entier 32 bits.
Definition: EventCommon.hh:38
virtual string ValueFullString() const =0
Param(const string &par_name="unnamed")
Definition: Param.hh:113
unsigned int U_Int4
Définition du type entier 32 bits non signé
Definition: EventCommon.hh:44
u_int status
Mot d&#39;état du paramètre (non implémenté)
Definition: Param.hh:100
Long64_t Int8
Définition du type entier 64 bits.
Definition: EventCommon.hh:50
GObjectV(Param)
ClassDef(Param, 0)
Data * def_value_ptr
Pointeur sur la valeur par défaut du paramètre.
Definition: Param.hh:102
virtual string String() const =0