]> Creatis software - gdcm.git/blobdiff - src/gdcmDicomDirMeta.cxx
Oops.
[gdcm.git] / src / gdcmDicomDirMeta.cxx
index 8c00a238caf9e8d55cdbead5523381a2231e42d1..b6dec1c957d0535556bb00c673040b55ef22d263 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDicomDirMeta.cxx,v $
   Language:  C++
-  Date:      $Date: 2004/10/22 03:05:40 $
-  Version:   $Revision: 1.13 $
+  Date:      $Date: 2005/11/03 11:08:18 $
+  Version:   $Revision: 1.29 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
 
 #include "gdcmDicomDirMeta.h"
 #include "gdcmDocument.h"
-
+#include "gdcmDocEntry.h"
+#include "gdcmGlobal.h"
+#include "gdcmDataEntry.h"
 namespace gdcm 
 {
-
 //-----------------------------------------------------------------------------
 // Constructor / Destructor
-
 /**
- * \ingroup DicomDirMeta
  * \brief  Constructor
  */ 
-DicomDirMeta::DicomDirMeta(TagDocEntryHT* ptagHT):
-   DicomDirObject(ptagHT)
+DicomDirMeta::DicomDirMeta(bool empty):
+   DicomDirObject()
 {
+   if ( !empty )
+   {
+      uint8_t fmiv[2] = {0x02,0x00};
+      ListDicomDirStudyElem const &elemList = 
+         Global::GetDicomDirElements()->GetDicomDirMetaElements();
+      FillObject(elemList);
 
+      SetEntryBinArea(fmiv, 0x0002,0x0001, 2); 
+             
+   }
 }
 
 /**
- * \ingroup DicomDirMeta
  * \brief   Canonical destructor.
  */
 DicomDirMeta::~DicomDirMeta() 
 {
-   
-}
-
-//-----------------------------------------------------------------------------
-// Print
-/**
- * \brief   Prints the Meta Elements
- */ 
-void DicomDirMeta::Print(std::ostream& os)
-{
-   os << "META" << std::endl;
-   // warning : META doesn't behave exactly like a Objet 
-   for (ListDocEntry::iterator i = docEntries.begin();  
-        i != docEntries.end();
-        ++i)
-      (*i)->Print();    
 }
 
-
 //-----------------------------------------------------------------------------
 // Public
-
-
 /**
  * \brief   Writes the Meta Elements
+ * @param fp ofstream to write to
+ * @param filetype type of the file (ACR, ImplicitVR, ExplicitVR, ...)
  * @return
  */ 
-void DicomDirMeta::Write(std::ofstream* fp, FileType t)
+void DicomDirMeta::WriteContent(std::ofstream *fp, FileType filetype)
 {   
-   for (ListDocEntry::iterator i = docEntries.begin();  
-        i != docEntries.end();
-        ++i)
-      (*i)->Write(fp, t);   
+   for (ListDocEntry::iterator i = DocEntries.begin();  
+                              i != DocEntries.end();
+                              ++i)
+   {
+      (*i)->WriteContent(fp, filetype);
+   }
 }
 
 //-----------------------------------------------------------------------------
@@ -83,5 +75,25 @@ void DicomDirMeta::Write(std::ofstream* fp, FileType t)
 // Private
 
 //-----------------------------------------------------------------------------
+// Print
+/**
+ * \brief   Prints the Meta Elements
+ * @param os ostream to write to 
+ * @param indent Indentation string to be prepended during printing
+ */ 
+void DicomDirMeta::Print(std::ostream &os, std::string const & )
+{
+   os << "META" << std::endl;
+   // warning : META doesn't behave exactly like a Objet 
+   for (ListDocEntry::iterator i = DocEntries.begin();
+        i != DocEntries.end();
+        ++i)
+   {
+      (*i)->SetPrintLevel(PrintLevel);
+      (*i)->Print();
+      os << std::endl;
+   }
+}
 
+//-----------------------------------------------------------------------------
 } // end namespace gdcm