X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOTreeNode.h;h=fca904ca53a216609933bf7459d121fed0cce84a;hb=9f8b288b5f8f56bc58fd01ddcb687833eb5ffa5b;hp=07b46cfb20efe18230ecf071bd23697ed205df90;hpb=cbf693fa62cd51f4ca5c881838bbb609edc447b0;p=creaImageIO.git diff --git a/src2/creaImageIOTreeNode.h b/src2/creaImageIOTreeNode.h index 07b46cf..fca904c 100644 --- a/src2/creaImageIOTreeNode.h +++ b/src2/creaImageIOTreeNode.h @@ -11,13 +11,16 @@ namespace creaImageIO namespace tree { + /** + * \ingroup Tree + */ //===================================================================== /// Forward declaration of Tree class Tree; //===================================================================== //===================================================================== - /// Abstract class to store user data on a tree node + /// Abstract class to store user data on a Tree node struct NodeData { NodeData() {} @@ -27,15 +30,22 @@ namespace creaImageIO //===================================================================== - /// Node of an attributed tree structure + /// Node of an attributed Tree structure class Node { public: + typedef std::map AttributeMapType; + + /// Ctor with parent Node(Node* parent); + /// Ctor with parent and attributes map + Node(Node* parent, const AttributeMapType& ); /// Virtual destructor virtual ~Node(); + /// Initializes the attribute map i.e. creates the entries + void InitializeAttributeMap(); /// Returns the level descriptor of the node const LevelDescriptor& GetLevelDescriptor() const; @@ -71,9 +81,8 @@ namespace creaImageIO const ChildrenListType& GetChildrenList() const { return mChildren; } /// Remove the given children from the children list - void RemoveChildrenFromList(Node*); + int RemoveChildrenFromList(Node*); - typedef std::map AttributeMapType; AttributeMapType& GetAttributeMap() { return mAttributeMap; } const AttributeMapType& GetAttributeMap() const { return mAttributeMap; } @@ -85,12 +94,13 @@ namespace creaImageIO void UnsafeSetAttribute(const std::string& k, const std::string& v) { mAttributeMap[k] = v; } - const AttributeDescriptor& GetAttributeDescriptor(const std::string& k) - const; + const AttributeDescriptor& GetAttributeDescriptor(const std::string& k)const; // { return GetTypeDescription().GetFieldDescription(k); } - + /// Returns true iff the KEY attributes of the node match those of the map provided + bool Matches( const AttributeMapType& ) const; + /// Returns the node data casted into the type T template T GetData() const { if (mData!=0) return dynamic_cast(mData); return 0; } @@ -101,9 +111,9 @@ namespace creaImageIO /// Sorts the children of the node void SortChildren(const LexicographicalComparator&); - /* - virtual void Print() const; + virtual void Print() const; std::string GetLabel() const; + /* int ImageGetRows() const; int ImageGetColumns() const; int ImageGetFrames() const;