Changeset 126 for XMLIO_V2/dev/dev_rv/src/XMLIO/base_attribut.hpp
- Timestamp:
- 10/07/10 10:29:38 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/dev_rv/src/XMLIO/base_attribut.hpp
r122 r126 4 4 using std::ostream; 5 5 using namespace blitz ; 6 7 6 8 7 using XMLIOSERVER::XMLIOIncompatibleTypeException; … … 12 11 class BaseAttribut 13 12 { 14 p ublic:13 protected : 15 14 16 virtual string getName(void) const = 0 ;17 virtual ostream & print(ostream& o) const = 0 ;15 BaseAttribut(void) 16 { /* Ne rien faire de plus */ } 18 17 19 friend ostream& operator <<(ostream& o,const BaseAttribut& attr) { return (attr.print(o)) ; } 18 BaseAttribut(const BaseAttribut& _ba) 19 { /* Ne rien faire de plus */ } 20 21 public : 22 23 friend ostream& operator <<(ostream& _out,const BaseAttribut& _attr) 24 { return (_attr.print(_out)) ; } 20 25 21 26 bool hasId(void) const { return (true); } 22 27 28 public : /* virtual */ 29 23 30 virtual string getId(void) const { return (getName()); } ; 24 31 25 virtual void assignValue(const BaseAttribut*) = 0; 26 virtual void setFromString(const std::string&) = 0; 27 virtual bool hasValue() const = 0; 32 virtual bool hasValue (void) const = 0; 33 virtual string getName (void) const = 0; 34 virtual ostream & print (ostream& o) const = 0; 35 virtual void assignValue (const BaseAttribut*) = 0; 36 virtual void setFromString(const std::string&) = 0; 28 37 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 setValue(const Array<TYPE,4>& value) {error_set() ; }\35 virtual void getValue(TYPE & value) const {error_get() ; }\36 virtual void getValue(Array<TYPE,1>& value) const {error_get() ; }\37 virtual void getValue(Array<TYPE,2>& value) const {error_get() ; }\38 virtual void getValue(Array<TYPE,3>& value) const {error_get() ; }\39 virtual void getValue(Array<TYPE,4>& value) const {error_get() ; }38 #define SETTER_AND_GETTER(TYPE) \ 39 virtual void setValue(const TYPE&) { BaseAttribut::error_set() ; }\ 40 virtual void setValue(const Array<TYPE,1>&) { BaseAttribut::error_set() ; }\ 41 virtual void setValue(const Array<TYPE,2>&) { BaseAttribut::error_set() ; }\ 42 virtual void setValue(const Array<TYPE,3>&) { BaseAttribut::error_set() ; }\ 43 virtual void setValue(const Array<TYPE,4>&) { BaseAttribut::error_set() ; }\ 44 virtual void getValue(TYPE&) const { BaseAttribut::error_get() ; }\ 45 virtual void getValue(Array<TYPE,1>&) const { BaseAttribut::error_get() ; }\ 46 virtual void getValue(Array<TYPE,2>&) const { BaseAttribut::error_get() ; }\ 47 virtual void getValue(Array<TYPE,3>&) const { BaseAttribut::error_get() ; }\ 48 virtual void getValue(Array<TYPE,4>&) const { BaseAttribut::error_get() ; } 40 49 41 50 SETTER_AND_GETTER(int) … … 43 52 SETTER_AND_GETTER(double) 44 53 SETTER_AND_GETTER(char) 45 SETTER_AND_GETTER(st ring)54 SETTER_AND_GETTER(std::string) 46 55 47 56 #undef SETTER_AND_GETTER 48 57 58 virtual ~BaseAttribut(void) 59 { /* Ne rien faire de plus */ } 60 61 public : /* static */ 62 49 63 static void error_set(void) 50 { throw XMLIOIncompatibleTypeException("BaseAttribut::set<type> > Setting value type is incompatible with attribut type"); } 64 { throw XMLIOIncompatibleTypeException 65 ("BaseAttribut::set<type> > Setting value type is incompatible with attribut type"); } 51 66 52 67 static void error_get(void) 53 { throw XMLIOIncompatibleTypeException("BaseAttribut::set<type> >Getting value type is incompatible with attribut type"); } 68 { throw XMLIOIncompatibleTypeException 69 ("BaseAttribut::set<type> >Getting value type is incompatible with attribut type"); } 54 70 55 71 }; //class BaseAttribut
Note: See TracChangeset
for help on using the changeset viewer.