source: XMLIO_V2/dev/dev_rv/src/XMLIO/base_attribut.hpp @ 118

Last change on this file since 118 was 114, checked in by hozdoba, 14 years ago

Le code respecte davantage la norme C++ 98 pour le portage sur les différentes plate-formes,

Une compilation plus restrictive passe sans problÚme sous gcc avec les options de compilation suivantes :
"-W -Wall -Wextra -Werror -ansi -pedantic "
et le retrait de certain avertissements :
-Wno-ignored-qualifiers < plusieurs avertissements dans Blitz.
-Wno-unused-parameter < des paramÚtres ne sont pas utilisés dans la classe BaseAttribut? (voir les get/set)
-Wno-long-long < besoin des long long pour le calendrier.

File size: 2.0 KB
Line 
1#ifndef __BASE_ATTRIBUT__
2#define __BASE_ATTRIBUT__
3
4using std::ostream;
5using namespace blitz ;
6
7
8using XMLIOSERVER::XMLIOIncompatibleTypeException;
9
10namespace XMLIOSERVER
11{
12   class BaseAttribut
13   {
14      public:
15
16         virtual string getName(void) const = 0  ;
17         virtual ostream & print(ostream& o) const = 0  ;
18
19         friend ostream& operator <<(ostream& o,const BaseAttribut& Attr) { return (Attr.print(o)) ; }
20
21         bool hasId(void) const { return (true); }
22
23         virtual string getId(void) const { return (getName()); } ;
24
25         virtual void assignValue(const BaseAttribut*) = 0;
26         virtual void setFromString(const std::string str) = 0;
27         virtual bool _hasValue() const = 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)
44
45#undef SETTER_AND_GETTER
46
47         static void error_set(void)
48         { throw XMLIOIncompatibleTypeException("BaseAttribut::set<type> > Setting value type is incompatible with attribut type"); }
49
50         static void error_get(void)
51         { throw XMLIOIncompatibleTypeException("BaseAttribut::set<type> >Getting value type is incompatible with attribut type"); }
52
53   }; //class BaseAttribut
54} // namespace XMLIOSERVER
55
56#endif //__BASE_ATTRIBUT__
57
58
59
60
Note: See TracBrowser for help on using the repository browser.