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

Last change on this file since 180 was 180, checked in by hozdoba, 12 years ago
File size: 2.8 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         const std::set<StdString> & getRelFiles(void) const;
72
73         /// Test ///
74         bool IsWritten(const StdString & filename) const;
75
76         /// Mutateur ///
77         void addRelFile(const StdString & filename);
78
79         /// Destructeur ///
80         virtual ~CDomain(void);
81
82         /// Accesseurs statiques ///
83         static StdString GetName(void);
84         static StdString GetDefName(void);
85         
86         static ENodeType GetType(void);
87
88       private :
89
90         /// Proriétés protégées ///
91         bool isChecked;
92         boost::shared_ptr<CMask> local_mask;
93         std::set<StdString> relFiles;
94
95         std::vector<int> ibegin_sub, iend_sub, jbegin_sub, jend_sub;
96
97   }; // class CDomain
98
99   ///--------------------------------------------------------------
100
101   // Declare/Define CDomainGroup and CDomainDefinition
102   DECLARE_GROUP(CDomain);
103
104   ///--------------------------------------------------------------
105
106} // namespace tree
107} // namespace xmlioserver
108
109#endif // __XMLIO_CDomain__
Note: See TracBrowser for help on using the repository browser.