[219] | 1 | #ifndef __XMLIO_CAttributeMap__ |
---|
| 2 | #define __XMLIO_CAttributeMap__ |
---|
| 3 | |
---|
[335] | 4 | /// xios headers /// |
---|
[219] | 5 | #include "xmlioserver_spl.hpp" |
---|
| 6 | #include "attribute.hpp" |
---|
| 7 | #include "attribute_template.hpp" |
---|
| 8 | #include "exception.hpp" |
---|
| 9 | #include "xml_node.hpp" |
---|
| 10 | |
---|
[335] | 11 | namespace xios |
---|
[219] | 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); |
---|
[445] | 31 | void setAttributes(const CAttributeMap * const _parent, bool apply=true); |
---|
[219] | 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 | |
---|
[369] | 46 | // virtual void toBinary (StdOStream & os) const; |
---|
| 47 | // virtual void fromBinary(StdIStream & is); |
---|
[313] | 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) ; |
---|
[432] | 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) ; |
---|
[219] | 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 | |
---|
[335] | 72 | } // namespace xios |
---|
[219] | 73 | |
---|
| 74 | #endif // __XMLIO_CAttributeMap__ |
---|