source: XMLIO_V2/dev/common/src/xmlio/node/domain.hpp @ 286

Last change on this file since 286 was 286, checked in by ymipsl, 13 years ago

reprise en main de la version de H. Ozdoba. Correction de différentes erreurs de conception et bug.
Version NEMO operationnel en client/server, interoperabilita avec OASIS, reconstition de fichiers via netcdf4/HDF5

YM

File size: 3.7 KB
Line 
1#ifndef __XMLIO_CDomain__
2#define __XMLIO_CDomain__
3
4/// xmlioserver headers ///
5#include "xmlioserver_spl.hpp"
6#include "group_factory.hpp"
7
8#include "declare_group.hpp"
9
10namespace xmlioserver {
11namespace tree {
12   
13   /// ////////////////////// Déclarations ////////////////////// ///
14
15   class CDomainGroup;
16   class CDomainAttributes;
17   class CDomain;
18
19   ///--------------------------------------------------------------
20
21   // Declare/Define CDomainAttribute
22   BEGIN_DECLARE_ATTRIBUTE_MAP(CDomain)
23#  include "domain_attribute.conf"
24   END_DECLARE_ATTRIBUTE_MAP(CDomain)
25
26   ///--------------------------------------------------------------
27
28   class CDomain
29      : public CObjectTemplate<CDomain>
30      , public CDomainAttributes
31   {
32         /// typedef ///
33         typedef CObjectTemplate<CDomain>   SuperClass;
34         typedef CDomainAttributes SuperClassAttribute;
35
36      public :
37
38         typedef CDomainAttributes RelAttributes;
39         typedef CDomainGroup      RelGroup;
40
41         /// Constructeurs ///
42         CDomain(void);
43         explicit CDomain(const StdString & id);
44         CDomain(const CDomain & domain);       // Not implemented yet.
45         CDomain(const CDomain * const domain); // Not implemented yet.
46
47         /// Vérifications ///
48         void checkAttributes(void);
49
50      private :
51
52         void checkGlobalDomain(void);
53
54         void checkLocalIDomain(void);
55         void checkLocalJDomain(void);
56
57         void checkMask(void);
58         void checkDomainData(void);
59         void checkCompression(void);
60         
61         void checkZoom(void);
62
63         void completeMask(void);
64
65      public :
66     
67         /// Autres ///
68         virtual void fromBinary(StdIStream & is);
69
70         /// Accesseurs ///
71         ARRAY(int, 2) getLocalMask(void) const;
72         
73         const std::set<StdString> & getRelFiles(void) const;
74
75         const std::vector<int> & getIBeginSub(void) const;
76         const std::vector<int> & getIEndSub(void) const;
77         const std::vector<int> & getJBeginSub(void) const;
78         const std::vector<int> & getJEndSub(void) const;
79
80         const std::vector<int> & getIBeginZoomSub(void) const;
81         const std::vector<int> & getJBeginZoomSub(void) const;
82         const std::vector<int> & getNiZoomSub(void) const;
83         const std::vector<int> & getNjZoomSub(void) const;
84         
85         const std::vector<ARRAY(double, 1)> & getLonValueSub(void) const;
86         const std::vector<ARRAY(double, 1)> & getLatValueSub(void) const;
87
88         /// Test ///
89         bool IsWritten(const StdString & filename) const;
90         bool hasZoom(void) const;
91         bool isEmpty(void) const;
92         
93      public :
94     
95         /// Mutateur ///
96         void addRelFile(const StdString & filename);
97         void completeLonLatServer(void);
98         void completeLonLatClient(void);
99         
100         /// Destructeur ///
101         virtual ~CDomain(void);
102
103         /// Accesseurs statiques ///
104         static StdString GetName(void);
105         static StdString GetDefName(void);
106         
107         static ENodeType GetType(void);
108
109       private :
110
111         /// Proriétés protégées ///
112         bool isChecked;
113         ARRAY(int, 2) local_mask;
114         std::set<StdString> relFiles;
115
116         std::vector<int> ibegin_sub, iend_sub, jbegin_sub, jend_sub;
117         std::vector<int> ibegin_zoom_sub, jbegin_zoom_sub, ni_zoom_sub, nj_zoom_sub;
118         std::vector<ARRAY(double, 1)> lonvalue_sub, latvalue_sub;
119
120   }; // class CDomain
121
122   ///--------------------------------------------------------------
123
124   // Declare/Define CDomainGroup and CDomainDefinition
125   DECLARE_GROUP(CDomain);
126
127   ///--------------------------------------------------------------
128
129} // namespace tree
130} // namespace xmlioserver
131
132#endif // __XMLIO_CDomain__
Note: See TracBrowser for help on using the repository browser.