Ignore:
Timestamp:
06/07/10 18:34:17 (14 years ago)
Author:
hozdoba
Message:

Prise en charge de l'héritage descendant.
Travail sur les flux de sortie.
Correction de divers problÚmes.
Ajout d'une macro à BaseAttribut?.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/dev_rv/src/XMLIO/base_attribut.hpp

    r98 r104  
    66 
    77 
    8 using XMLIOSERVER::XMLIOIncompatibeTypeException; 
     8using XMLIOSERVER::XMLIOIncompatibleTypeException; 
    99 
    1010namespace XMLIOSERVER 
     
    1212   class BaseAttribut 
    1313   { 
    14      public: 
     14      public: 
    1515      
    16      virtual const char * getName(void) const = 0  ; 
    17          
    18      virtual ostream & print(ostream& o) const = 0  ; 
     16         virtual const char * getName(void) const = 0  ;         
     17         virtual ostream & print(ostream& o) const = 0  ; 
    1918      
    20      friend ostream& operator <<(ostream& o,const BaseAttribut& Attr) 
    21      {return Attr.print(o) ; } 
     19         friend ostream& operator <<(ostream& o,const BaseAttribut& Attr) 
     20         {return Attr.print(o) ; } 
     21          
     22         virtual void assignValue(const BaseAttribut*) = 0; 
    2223      
    23      virtual const char * getId(void) {return getName();} ; 
    24      bool hasId(void){return (true);} 
     24         virtual const char * getId(void) {return getName();} ; 
     25         bool hasId(void){return (true);} 
    2526 
    26      virtual void setFromString(const std::string str) = 0; 
     27         virtual void setFromString(const std::string str) = 0; 
     28      
     29#define  SETTER_AND_GETTER(TYPE) \ 
     30         virtual void setValue(const TYPE & value)          { error_set() ; }\ 
     31         virtual void setValue(const Array<TYPE,1>& value)  { error_set() ; }\ 
     32         virtual void setValue(const Array<TYPE,2>& value)  { error_set() ; }\ 
     33         virtual void setValue(const Array<TYPE,3>& value)  { error_set() ; }\ 
     34         virtual void getValue(TYPE & value)         const  { error_get() ; }\ 
     35         virtual void getValue(Array<TYPE,1>& value) const  { error_get() ; }\ 
     36         virtual void getValue(Array<TYPE,2>& value) const  { error_get() ; }\ 
     37         virtual void getValue(Array<TYPE,3>& value) const  { error_get() ; } 
     38          
     39         SETTER_AND_GETTER(int) 
     40         SETTER_AND_GETTER(bool) 
     41         SETTER_AND_GETTER(double) 
     42         SETTER_AND_GETTER(char) 
     43         SETTER_AND_GETTER(string) 
    2744       
    28      virtual void setValue(const int & value)          { error_set() ; } 
    29      virtual void setValue(const Array<int,1>& value)  { error_set() ; } 
    30      virtual void setValue(const Array<int,2>& value)  { error_set() ; } 
    31      virtual void setValue(const Array<int,3>& value)  { error_set() ; } 
     45#undef SETTER_AND_GETTER 
     46 
     47          
     48         virtual bool _hasValue() = 0; 
     49 
     50         static void error_set(void) 
     51         { throw XMLIOIncompatibleTypeException("BaseAttribut::set<type> > Setting value type is incompatible with attribut type"); } 
     52 
     53         static void error_get(void) 
     54         { throw XMLIOIncompatibleTypeException("BaseAttribut::set<type> >Getting value type is incompatible with attribut type"); } 
    3255      
    33      virtual void setValue(const double & value)          { error_set() ; } 
    34      virtual void setValue(const Array<double,1>& value)  { error_set() ; } 
    35      virtual void setValue(const Array<double,2>& value)  { error_set() ; } 
    36      virtual void setValue(const Array<double,3>& value)  { error_set() ; } 
    37       
    38      virtual void setValue(const bool & value)          { error_set() ; } 
    39      virtual void setValue(const Array<bool,1>& value)  { error_set() ; } 
    40      virtual void setValue(const Array<bool,2>& value)  { error_set() ; } 
    41      virtual void setValue(const Array<bool,3>& value)  { error_set() ; } 
    42       
    43      virtual void setValue(const char * value)            { error_set() ; } 
    44      virtual void setValue(const string & value)          { error_set() ; } 
    45      virtual void setValue(const Array<string,1>& value)  { error_set() ; } 
    46      virtual void setValue(const Array<string,2>& value)  { error_set() ; } 
    47      virtual void setValue(const Array<string,3>& value)  { error_set() ; } 
    48       
    49      virtual void setValue(const char & value)          { error_set() ; } 
    50      virtual void setValue(const Array<char,1>& value)  { error_set() ; } 
    51      virtual void setValue(const Array<char,2>& value)  { error_set() ; } 
    52      virtual void setValue(const Array<char,3>& value)  { error_set() ; } 
    53  
    54  
    55      virtual void getValue(int & value) const        { error_get() ; } 
    56      virtual void getValue(Array<int,1>& value) const  { error_get() ; } 
    57      virtual void getValue(Array<int,2>& value) const  { error_get() ; } 
    58      virtual void getValue(Array<int,3>& value) const  { error_get() ; } 
    59       
    60      virtual void getValue(double & value) const          { error_get() ; } 
    61      virtual void getValue(Array<double,1>& value) const  { error_get() ; } 
    62      virtual void getValue(Array<double,2>& value) const  { error_get() ; } 
    63      virtual void getValue(Array<double,3>& value) const  { error_get() ; } 
    64       
    65      virtual void getValue(bool & value) const          { error_get() ; } 
    66      virtual void getValue(Array<bool,1>& value) const  { error_get() ; } 
    67      virtual void getValue(Array<bool,2>& value) const  { error_get() ; } 
    68      virtual void getValue(Array<bool,3>& value) const  { error_get() ; } 
    69       
    70      virtual void getValue(char * value) const            { error_get() ; } 
    71      virtual void getValue(string & value) const          { error_get() ; } 
    72      virtual void getValue(Array<string,1>& value) const  { error_get() ; } 
    73      virtual void getValue(Array<string,2>& value) const  { error_get() ; } 
    74      virtual void getValue(Array<string,3>& value) const  { error_get() ; } 
    75       
    76      virtual void getValue(char & value) const          { error_get() ; } 
    77      virtual void getValue(Array<char,1>& value) const  { error_get() ; } 
    78      virtual void getValue(Array<char,2>& value) const  { error_get() ; } 
    79      virtual void getValue(Array<char,3>& value) const  { error_get() ; } 
    80  
    81      static void error_set(void) 
    82      { 
    83         throw XMLIOIncompatibeTypeException("BaseAttribut::set<type> > Setting value type is incompatible with attribut type"); 
    84      } 
    85  
    86      static void error_get(void) 
    87      { 
    88         throw XMLIOIncompatibeTypeException("BaseAttribut::set<type> >Getting value type is incompatible with attribut type"); 
    89      } 
    9056   }; //class BaseAttribut 
    9157} // namespace XMLIOSERVER 
Note: See TracChangeset for help on using the changeset viewer.