+ 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 gdcmObject 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();
+