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

Last change on this file since 274 was 274, checked in by hozdoba, 13 years ago

nouvelle interface fortran et corrections

File size: 3.6 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         
83         const std::vector<ARRAY(double, 1)> & getLonValueSub(void) const;
84         const std::vector<ARRAY(double, 1)> & getLatValueSub(void) const;
85
86         /// Test ///
87         bool IsWritten(const StdString & filename) const;
88         bool hasZoom(void) const;
89         bool isEmpty(void) const;
90         
91      public :
92     
93         /// Mutateur ///
94         void addRelFile(const StdString & filename);
95         void completeLonLatServer(void);
96         void completeLonLatClient(void);
97         
98         /// Destructeur ///
99         virtual ~CDomain(void);
100
101         /// Accesseurs statiques ///
102         static StdString GetName(void);
103         static StdString GetDefName(void);
104         
105         static ENodeType GetType(void);
106
107       private :
108
109         /// Proriétés protégées ///
110         bool isChecked;
111         ARRAY(int, 2) local_mask;
112         std::set<StdString> relFiles;
113
114         std::vector<int> ibegin_sub, iend_sub, jbegin_sub, jend_sub;
115         std::vector<int> ibegin_zoom_sub, jbegin_zoom_sub;
116         std::vector<ARRAY(double, 1)> lonvalue_sub, latvalue_sub;
117
118   }; // class CDomain
119
120   ///--------------------------------------------------------------
121
122   // Declare/Define CDomainGroup and CDomainDefinition
123   DECLARE_GROUP(CDomain);
124
125   ///--------------------------------------------------------------
126
127} // namespace tree
128} // namespace xmlioserver
129
130#endif // __XMLIO_CDomain__
Note: See TracBrowser for help on using the repository browser.