source: XMLIO_V2/dev/dev_rv/src/xmlio/node/domain.hpp @ 182

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