-// gdcmElementSet.cxx
-//-----------------------------------------------------------------------------
-//
+/*=========================================================================
+
+ Program: gdcm
+ Module: $RCSfile: gdcmElementSet.cxx,v $
+ Language: C++
+ Date: $Date: 2004/06/22 14:42:02 $
+ Version: $Revision: 1.12 $
+
+ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
+ l'Image). All rights reserved. See Doc/License.txt or
+ http://www.creatis.insa-lyon.fr/Public/Gdcm/License.htm for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+
#include "gdcmElementSet.h"
#include "gdcmDebug.h"
+#include "gdcmValEntry.h"
+#include "gdcmBinEntry.h"
+#include "gdcmSeqEntry.h"
//-----------------------------------------------------------------------------
// Constructor / Destructor
{
EntryToDelete = cc->second;
if ( EntryToDelete )
- delete EntryToDelete; // TODO : a verifier
+ delete EntryToDelete;
}
tagHT.clear();
}
void gdcmElementSet::Print(std::ostream & os) {
for (TagDocEntryHT::iterator i = tagHT.begin(); i != tagHT.end(); ++i)
{
- //(*i)->second->SetPrintLevel(printLevel);
+ //(i)->second->SetPrintLevel(printLevel);
(i->second)->Print(os);
}
}
+/**
+ * \brief Writes the Header Entries (Dicom Elements)
+ * from the H Table
+ * @return
+ */
+void gdcmElementSet::Write(FILE *fp, FileType filetype) {
+
+// Troubles expected : BinEntries ARE ValEntries :-(
+// BinEntry is checked first, then ValEntry;
+ gdcmDocEntry *e;
+ for (TagDocEntryHT::iterator i = tagHT.begin(); i != tagHT.end(); ++i)
+ {
+ e=i->second;
+ e->WriteCommonPart(fp, filetype);
+ std::cout<<e->GetKey() << " " << std::hex << e->GetVR() << " "
+ << e->GetName()
+ << std::endl;
+
+// e->Write(fp,filetype); // This will be the right way to proceed !
+
+ if (gdcmBinEntry* BinEntry = dynamic_cast< gdcmBinEntry* >(e) ) {
+ BinEntry->Write(fp);
+ continue;
+ }
+ if (gdcmValEntry* ValEntry = dynamic_cast< gdcmValEntry* >(e) ) {
+ ValEntry->Write(fp);
+ continue;
+ }
+
+ if (gdcmSeqEntry* SeqEntry = dynamic_cast< gdcmSeqEntry* >(e) ) {
+ SeqEntry->Write(fp,filetype);
+ continue;
+ }
+ }
+}
//-----------------------------------------------------------------------------
// Protected