]> Creatis software - creaImageIO.git/blob - src2/creaImageIOTreeDescriptor.h
Utilisation d'un fichier de config pour la création de la BD et des AttributeDescript...
[creaImageIO.git] / src2 / creaImageIOTreeDescriptor.h
1 #ifndef __creaImageIOTreeDescriptor_h_INCLUDED__
2 #define __creaImageIOTreeDescriptor_h_INCLUDED__
3
4 #include <creaImageIOTreeAttributeMapType.h>
5 #include <creaImageIOTreeLevelDescriptor.h>
6
7
8 namespace creaImageIO
9 {
10         using namespace std;
11   namespace tree
12   {
13     
14     /**
15      * \ingroup Tree
16      */
17     
18         ///Descriptor of the structure of a Tree (number of levels, descriptors of each level, ...). 
19           //Any Tree has at least one level (level 0) of name "Root"
20      
21     class Descriptor
22     {
23     public:
24       /// Ctor : creates the mandatory level 0 descriptor called "Root"
25       Descriptor();
26       /// Destructor
27       ~Descriptor();
28
29       /// Loads from a xml description file
30       void LoadXML(const std::string& filename);
31       /// Creates the default descriptor
32       void CreateDefault();
33
34       /// Returns the number of levels of the tree
35       unsigned int GetNumberOfLevels() 
36       { return mLevelDescriptorList.size(); }
37
38       /// Returns the LevelDescriptor of a given level (const ref)
39       const LevelDescriptor& GetLevelDescriptor(int level) const
40       { return mLevelDescriptorList[level]; }
41
42       /// Returns the AttributeDescriptorList of a given level (const ref)
43       const LevelDescriptor::AttributeDescriptorListType& 
44       GetAttributeDescriptorList(int level) const
45       { return mLevelDescriptorList[level].GetAttributeDescriptorList(); }
46   
47       /// Adds a LevelDescriptor at the end of the list
48       void Add(const LevelDescriptor&);
49       
50       /// Adds an AttributeDescriptor to level l
51       void Add(const AttributeDescriptor&, int l);
52       
53       
54       /// Builds the key to value map of all the attributes of the tree
55         void BuildAttributeMap( AttributeMapType& ) const;
56
57       /// The type of LevelDescriptor container
58         typedef std::vector<LevelDescriptor> LevelDescriptorListType;
59  
60       /// Returns the list of tree levels (const)
61         const LevelDescriptorListType& GetLevelDescriptorList() const { return mLevelDescriptorList; }
62
63       /// Clears the Descriptor
64       void Clear();
65
66           //Create Attribute Descriptors from a file
67         void createDescriptorfromFile(std::string &i_file);
68
69     private:
70       LevelDescriptorListType mLevelDescriptorList;
71       /// Creates the mandatory level 0 descriptor called "Root"
72       /// (assumes the list is empty)
73       void CreateLevel0Descriptor();
74   
75     };
76     // EO class Descriptor
77     //=====================================================================
78   } // EO namespace tree
79
80 } // EO namespace creaImageIO
81
82 // EOF
83 #endif