creaImageIOTree.h

Go to the documentation of this file.
00001 #ifndef __creaImageIOTree_h_INCLUDED__
00002 #define __creaImageIOTree_h_INCLUDED__
00003 
00004 #include <creaImageIOTreeNode.h>
00005 
00006 namespace creaImageIO
00007 {
00008 
00009   namespace tree
00010   {
00014     //=====================================================================
00016     struct TreeData
00017     { 
00018       TreeData() {}
00019       virtual ~TreeData() {}
00020     };
00021     //=====================================================================
00022     
00023     //=====================================================================
00025 
00027     class Tree : public Node
00028     {
00029     public:
00031       Tree();
00033       virtual ~Tree();
00034       
00036     
00038       virtual Tree* GetTree() { return this; }
00040       virtual const Tree* GetTree() const { return this; }
00042       virtual int GetLevel() const { return 0; }
00043       
00045       const Descriptor& GetDescriptor() const { return mDescriptor; }
00047       Descriptor& GetDescriptor() { return mDescriptor; }
00048 
00050       unsigned int GetNumberOfLevels() 
00051       { return GetDescriptor().GetNumberOfLevels(); }
00052 
00054       const LevelDescriptor& GetLevelDescriptor(int level) const
00055       { return GetDescriptor().GetLevelDescriptor(level); }
00056 
00060       const LevelDescriptor::AttributeDescriptorListType& 
00061       GetAttributeDescriptorList(int level, int type = 0) const
00062       { return GetDescriptor().GetAttributeDescriptorList(level, type); }
00063   
00064       virtual void Print() const;
00065 
00066 
00068           void CopyAttributeDescriptorList(int level)
00069           {
00070                   GetDescriptor().CopyAttributeDescriptorList(level);
00071           }
00072           
00074           const std::string isAttributeExist(const std::string i_attr)
00075           {
00076                   return mDescriptor.isExist(i_attr);
00077           }
00078 
00079     private:
00080       Descriptor mDescriptor;
00081 
00082     };
00083     // EO class Tree
00084     //=====================================================================
00085 
00086   } // EO namespace tree
00087   
00088 } // EO namespace creaImageIO
00089 
00090 // EOF
00091 #endif