X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmFileHelper.h;h=f4322b9b0196927a2a3b2c1b351e449647f34fa1;hb=f7a26bf3c5aeaab693baca4c3dfc95e475bca776;hp=7f7476d4fece7275b5c7cda8a694f5ff632563bb;hpb=152afe8bd1276d919b3c3a0748f8dca452eb82f7;p=gdcm.git diff --git a/src/gdcmFileHelper.h b/src/gdcmFileHelper.h index 7f7476d4..f4322b9b 100644 --- a/src/gdcmFileHelper.h +++ b/src/gdcmFileHelper.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFileHelper.h,v $ Language: C++ - Date: $Date: 2005/10/25 12:43:25 $ - Version: $Revision: 1.28 $ + Date: $Date: 2005/11/07 09:50:52 $ + Version: $Revision: 1.30 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -20,7 +20,7 @@ #define GDCMFILEHELPER_H #include "gdcmDebug.h" -#include "gdcmBase.h" +#include "gdcmRefCounter.h" namespace gdcm @@ -40,8 +40,10 @@ typedef void (*VOID_FUNCTION_PUINT8_PFILE_POINTER)(uint8_t *, File *); * for accessing the image/volume content. One can also use it to * write Dicom/ACR-NEMA/RAW files. */ -class GDCM_EXPORT FileHelper : public Base +class GDCM_EXPORT FileHelper : public RefCounter { + gdcmTypeMacro(FileHelper); + public: enum FileMode { @@ -50,9 +52,8 @@ public: }; public: - FileHelper( ); - FileHelper( File *header ); - GDCM_LEGACY(FileHelper( std::string const &filename )); + static FileHelper *New() {return new FileHelper();} + static FileHelper *New(File *header) {return new FileHelper(header);} virtual ~FileHelper(); @@ -65,7 +66,7 @@ public: void SetLoadMode(int loadMode); void SetFileName(std::string const &fileName); bool Load(); - /// to allow user to modify pixel order (e.g. Mirror, TopDown,...) + /// to allow user to modify pixel order (e.g. Mirror, UpsideDown,...) void SetUserFunction( VOID_FUNCTION_PUINT8_PFILE_POINTER userFunc ) { UserFunction = userFunc; } // File methods @@ -147,8 +148,17 @@ public: bool WriteDcmExplVR(std::string const &fileName); bool WriteAcr (std::string const &fileName); bool Write (std::string const &fileName); - + /// \brief if user knows he didn't modify the pixels (e.g. he just anonymized + /// the file), he is allowed to ask to keep the original + /// 'Media Storage SOP Class UID' and 'Image Type' + void SetKeepMediaStorageSOPClassUID (bool v) + { KeepMediaStorageSOPClassUID = v; } + // no GetKeepMediaStorageSOPClassUID() method, on purpose! + protected: + FileHelper( ); + FileHelper( File *header ); + bool CheckWriteIntegrity(); void SetWriteToRaw(); @@ -182,11 +192,6 @@ private: /// gdcm::File to use to load the file File *FileInternal; - /// \brief Whether the underlying \ref gdcm::File was loaded by - /// the constructor or passed to the constructor. - /// When false the destructor is in charge of deletion. - bool SelfHeader; - /// Whether already parsed or not bool Parsed; @@ -214,6 +219,11 @@ private: /// User will Cast it according what he founds with f->GetPixelType() /// See vtkgdcmSerieViewer for an example VOID_FUNCTION_PUINT8_PFILE_POINTER UserFunction; + + /// if user knows he didn't modify the pixels (e.g. he just anonymized + /// the file), he is allowed to ask to keep the original + /// 'Media Storage SOP Class UID' and 'Image Type' + bool KeepMediaStorageSOPClassUID; }; } // end namespace gdcm