]> Creatis software - gdcm.git/blob - src/gdcmElementSet.cxx
Last commit before the final(?) one, for the new version.
[gdcm.git] / src / gdcmElementSet.cxx
1 // gdcmElementSet.cxx
2 //-----------------------------------------------------------------------------
3 //
4 #include "gdcmElementSet.h"
5 #include "gdcmDebug.h"
6
7 //-----------------------------------------------------------------------------
8 // Constructor / Destructor
9 /**
10  * \ingroup gdcmElementSet
11  * \brief   Constructor from a given gdcmElementSet
12  */
13 gdcmElementSet::gdcmElementSet(int depthLevel) 
14               : gdcmDocEntrySet(depthLevel) {
15 }
16
17 /**
18  * \ingroup gdcmElementSet
19  * \brief   Canonical destructor.
20  */
21 gdcmElementSet::~gdcmElementSet() 
22 {
23   gdcmDocEntry* EntryToDelete;  
24   for(TagDocEntryHT::iterator cc = tagHT.begin();cc != tagHT.end();++cc)
25    {
26       EntryToDelete = cc->second;
27       if ( EntryToDelete )
28          delete EntryToDelete;  // TODO : a verifier
29    }
30    tagHT.clear();
31 }
32
33
34 //-----------------------------------------------------------------------------
35 // Public
36
37
38 //-----------------------------------------------------------------------------
39 // Print
40 /**
41   * \brief   Prints the Header Entries (Dicom Elements)
42   *          from the H Table
43   * @return
44   */ 
45 void gdcmElementSet::Print(std::ostream & os) {
46    cout << "entree ds gdcmElementSet::Print" << endl;
47    for (TagDocEntryHT::iterator i = tagHT.begin(); i != tagHT.end(); ++i)  
48    {
49       //(*i)->second->SetPrintLevel(printLevel);
50       (i->second)->Print(os);   
51    } 
52 }
53
54
55 //-----------------------------------------------------------------------------
56 // Protected
57
58 //-----------------------------------------------------------------------------
59
60 //-----------------------------------------------------------------------------
61 // Private
62
63
64 /**
65  * \brief   add a new Dicom Element pointer to the H Table
66  * @param   NewEntry entry to add
67  */
68 bool gdcmElementSet::AddEntry( gdcmDocEntry *NewEntry) {
69    TagKey key;
70    key = NewEntry->GetKey();
71
72    if(tagHT.count(key) == 1)
73    {
74       dbg.Verbose(1, "gdcmElementSet::AddEntry key already present: ", key.c_str());
75       return(false);
76    } 
77    else 
78    {
79       tagHT[NewEntry->GetKey()] = NewEntry;
80       return(true);
81    }   
82 }
83