source: XIOS/trunk/src/attribute_map.hpp @ 445

Last change on this file since 445 was 445, checked in by ymipsl, 11 years ago

Add possibility to make inheritance of attributes and reference before closing the context definition.
New fortran fonction : xios_solve inheritance()
After this call, the value of attribute have the inherited value of their parent.

YM

File size: 3.0 KB
Line 
1#ifndef __XMLIO_CAttributeMap__
2#define __XMLIO_CAttributeMap__
3
4/// xios headers ///
5#include "xmlioserver_spl.hpp"
6#include "attribute.hpp"
7#include "attribute_template.hpp"
8#include "exception.hpp"
9#include "xml_node.hpp"
10
11namespace xios
12{
13      /// ////////////////////// Déclarations ////////////////////// ///
14      class CAttributeMap
15         : public xios_map<StdString, CAttribute*>
16      {
17            typedef xios_map<StdString, CAttribute*> SuperClassMap;
18
19         public :
20
21            /// Tests ///
22            inline bool hasAttribute(const StdString & key) const;
23
24            /// Accesseurs ///
25            CAttribute * operator[](const StdString & key);
26
27            /// Mutateurs ///
28            void setAttribute(const StdString & key, CAttribute * const attr);
29
30            void setAttributes(const xml::THashAttributes & attributes);
31            void setAttributes(const CAttributeMap * const _parent, bool apply=true);
32
33            void clearAllAttributes(void);
34
35            /// Destructeur ///
36            virtual ~CAttributeMap(void);
37
38            /// Flux ///
39            // Debug only //
40            // friend StdOStream & operator << (StdOStream & os, const CAttributeMap & attributmap);
41
42            /// Autre ///
43            virtual StdString toString(void) const;
44            virtual void fromString(const StdString & str);
45           
46//            virtual void toBinary  (StdOStream & os) const;
47//            virtual void fromBinary(StdIStream & is);
48            virtual void generateCInterface(ostream& oss, const string& className) ;
49            virtual void generateFortran2003Interface(ostream& oss, const string& className) ;
50            virtual void generateFortranInterface_hdl_(ostream& oss, const string& className) ;
51            virtual void generateFortranInterface_hdl(ostream& oss, const string& className) ;
52            virtual void generateFortranInterface_id(ostream& oss, const string& className) ;
53            virtual void generateFortranInterfaceGet_hdl_(ostream& oss, const string& className) ;
54            virtual void generateFortranInterfaceGet_hdl(ostream& oss, const string& className) ;
55            virtual void generateFortranInterfaceGet_id(ostream& oss, const string& className) ;
56            virtual void generateFortranInterfaceIsDefined_hdl_(ostream& oss, const string& className) ;
57            virtual void generateFortranInterfaceIsDefined_hdl(ostream& oss, const string& className) ;
58            virtual void generateFortranInterfaceIsDefined_id(ostream& oss, const string& className) ;
59
60         protected :
61
62            /// Constructeurs ///
63            CAttributeMap(void);
64            CAttributeMap(const xios_map<StdString, CAttribute*> & umap);       // Never implemented.
65            CAttributeMap(const xios_map<StdString, CAttribute*> * const umap); // Not implemented.
66
67            /// Propriété statique ///
68            static CAttributeMap * Current;
69
70      };  // class CAttributeMap
71
72} // namespace xios
73
74#endif // __XMLIO_CAttributeMap__
Note: See TracBrowser for help on using the repository browser.