+ void SetStartMethod(gdcmMethod*, void* = NULL, gdcmMethod* = NULL);
+ void SetStartMethodArgDelete(gdcmMethod*);
+ void SetProgressMethod(gdcmMethod* ,void* = NULL, gdcmMethod* = NULL);
+ void SetProgressMethodArgDelete(gdcmMethod*);
+ void SetEndMethod(gdcmMethod*, void* = NULL,gdcmMethod* = NULL);
+ void SetEndMethodArgDelete(gdcmMethod*);
+
+ /// GetProgress GetProgress
+ float GetProgress() { return progress; };
+
+ /// AbortProgress AbortProgress
+ void AbortProgress() { abort = true; };
+
+ /// IsAborted IsAborted
+ bool IsAborted() { return abort; };
+
+// Adding
+ gdcmDicomDirMeta* NewMeta();
+ gdcmDicomDirPatient* NewPatient();
+
+// Write
+ bool WriteDicomDir(std::string const & fileName);
+
+ /// Types of the gdcmDicomDirObject within the gdcmDicomDir
+ typedef enum
+ {
+ GDCM_DICOMDIR_NONE,
+ GDCM_DICOMDIR_META,
+ GDCM_DICOMDIR_PATIENT,
+ GDCM_DICOMDIR_STUDY,
+ GDCM_DICOMDIR_SERIE,
+ GDCM_DICOMDIR_IMAGE
+ } gdcmDicomDirType;
+
+protected:
+ void CreateDicomDirChainedList(std::string const & path);
+ void CallStartMethod();
+ void CallProgressMethod();
+ void CallEndMethod();
+