diff Applications/Dicomizer.cpp @ 199:a1c265cb2174

replacing deprecated std::auto_ptr by std::unique_ptr
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 06 Jul 2020 16:29:41 +0200
parents f299c191cd76
children 2a4e1f7de5ab
line wrap: on
line diff
--- a/Applications/Dicomizer.cpp	Mon Jul 06 16:17:09 2020 +0200
+++ b/Applications/Dicomizer.cpp	Mon Jul 06 16:29:41 2020 +0200
@@ -33,6 +33,7 @@
 #include "../Framework/Outputs/DicomPyramidWriter.h"
 #include "../Framework/Outputs/TruncatedPyramidWriter.h"
 
+#include <Compatibility.h>  // For std::unique_ptr
 #include <DicomParsing/FromDcmtkBridge.h>
 #include <Logging.h>
 #include <OrthancException.h>
@@ -300,7 +301,7 @@
     }
   }
 
-  std::auto_ptr<DcmDataset> dataset(Orthanc::FromDcmtkBridge::FromJson(json, true, true, Orthanc::Encoding_Latin1,
+  std::unique_ptr<DcmDataset> dataset(Orthanc::FromDcmtkBridge::FromJson(json, true, true, Orthanc::Encoding_Latin1,
                                                                        "" /* no private tag, thus no private creator */));
   if (dataset.get() == NULL)
   {
@@ -359,10 +360,10 @@
 
   {
     // Construct tag "Dimension Organization Sequence" (0020,9221)
-    std::auto_ptr<DcmItem> item(new DcmItem);
+    std::unique_ptr<DcmItem> item(new DcmItem);
     OrthancWSI::DicomToolbox::SetStringTag(*item, DCM_DimensionOrganizationUID, organization);
     
-    std::auto_ptr<DcmSequenceOfItems> sequence(new DcmSequenceOfItems(DCM_DimensionOrganizationSequence));
+    std::unique_ptr<DcmSequenceOfItems> sequence(new DcmSequenceOfItems(DCM_DimensionOrganizationSequence));
 
     if (!sequence->insert(item.release(), false, false).good() ||
         !dataset.insert(sequence.release(), true /* replace */, false).good())
@@ -374,17 +375,17 @@
 
   {
     // Construct tag "Dimension Index Sequence" (0020,9222)
-    std::auto_ptr<DcmItem> item(new DcmItem);
+    std::unique_ptr<DcmItem> item(new DcmItem);
     OrthancWSI::DicomToolbox::SetStringTag(*item, DCM_DimensionOrganizationUID, organization);
     OrthancWSI::DicomToolbox::SetAttributeTag(*item, DCM_FunctionalGroupPointer, DCM_PlanePositionSlideSequence);
     OrthancWSI::DicomToolbox::SetAttributeTag(*item, DCM_DimensionIndexPointer, DCM_ColumnPositionInTotalImagePixelMatrix);
 
-    std::auto_ptr<DcmItem> item2(new DcmItem);
+    std::unique_ptr<DcmItem> item2(new DcmItem);
     OrthancWSI::DicomToolbox::SetStringTag(*item2, DCM_DimensionOrganizationUID, organization);
     OrthancWSI::DicomToolbox::SetAttributeTag(*item2, DCM_FunctionalGroupPointer, DCM_PlanePositionSlideSequence);
     OrthancWSI::DicomToolbox::SetAttributeTag(*item2, DCM_DimensionIndexPointer, DCM_RowPositionInTotalImagePixelMatrix);
 
-    std::auto_ptr<DcmSequenceOfItems> sequence(new DcmSequenceOfItems(DCM_DimensionIndexSequence));
+    std::unique_ptr<DcmSequenceOfItems> sequence(new DcmSequenceOfItems(DCM_DimensionIndexSequence));
 
     if (!sequence->insert(item.release(), false, false).good() ||
         !sequence->insert(item2.release(), false, false).good() ||
@@ -397,13 +398,13 @@
 
   {
     // Construct tag "Shared Functional Groups Sequence" (5200,9229)
-    std::auto_ptr<DcmItem> item(new DcmItem);
+    std::unique_ptr<DcmItem> item(new DcmItem);
 
-    std::auto_ptr<DcmItem> item3(new DcmItem);
+    std::unique_ptr<DcmItem> item3(new DcmItem);
     OrthancWSI::DicomToolbox::SetStringTag(*item3, DCM_OpticalPathIdentifier, opticalPathId);
 
-    std::auto_ptr<DcmSequenceOfItems> sequence(new DcmSequenceOfItems(DCM_SharedFunctionalGroupsSequence));
-    std::auto_ptr<DcmSequenceOfItems> sequence3(new DcmSequenceOfItems(DCM_OpticalPathIdentificationSequence));
+    std::unique_ptr<DcmSequenceOfItems> sequence(new DcmSequenceOfItems(DCM_SharedFunctionalGroupsSequence));
+    std::unique_ptr<DcmSequenceOfItems> sequence3(new DcmSequenceOfItems(DCM_OpticalPathIdentificationSequence));
 
     if (!sequence3->insert(item3.release(), false, false).good() ||
         !item->insert(sequence3.release(), false, false).good() ||
@@ -441,13 +442,13 @@
   OrthancWSI::DicomToolbox::SetStringTag(dataset, DCM_ImagedVolumeHeight, boost::lexical_cast<std::string>(volume.GetHeight()));
   OrthancWSI::DicomToolbox::SetStringTag(dataset, DCM_ImagedVolumeDepth, boost::lexical_cast<std::string>(volume.GetDepth()));
 
-  std::auto_ptr<DcmItem> origin(new DcmItem);
+  std::unique_ptr<DcmItem> origin(new DcmItem);
   OrthancWSI::DicomToolbox::SetStringTag(*origin, DCM_XOffsetInSlideCoordinateSystem, 
                                          boost::lexical_cast<std::string>(volume.GetOffsetX()));
   OrthancWSI::DicomToolbox::SetStringTag(*origin, DCM_YOffsetInSlideCoordinateSystem, 
                                          boost::lexical_cast<std::string>(volume.GetOffsetY()));
 
-  std::auto_ptr<DcmSequenceOfItems> sequenceOrigin(new DcmSequenceOfItems(DCM_TotalPixelMatrixOriginSequence));
+  std::unique_ptr<DcmSequenceOfItems> sequenceOrigin(new DcmSequenceOfItems(DCM_TotalPixelMatrixOriginSequence));
   if (!sequenceOrigin->insert(origin.release(), false, false).good() ||
       !dataset.insert(sequenceOrigin.release(), false, false).good())
   {
@@ -473,7 +474,7 @@
       throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError);
     }
 
-    std::auto_ptr<DcmElement> element(Orthanc::FromDcmtkBridge::FromJson(
+    std::unique_ptr<DcmElement> element(Orthanc::FromDcmtkBridge::FromJson(
                                         Orthanc::DicomTag(DCM_OpticalPathSequence.getGroup(),
                                                           DCM_OpticalPathSequence.getElement()),
                                         json, false, encoding,
@@ -505,7 +506,7 @@
 
   if (!opticalPath->tagExists(DCM_ICCProfile))
   {
-    std::auto_ptr<DcmOtherByteOtherWord> icc(new DcmOtherByteOtherWord(DCM_ICCProfile));
+    std::unique_ptr<DcmOtherByteOtherWord> icc(new DcmOtherByteOtherWord(DCM_ICCProfile));
 
     if (!icc->putUint8Array(reinterpret_cast<const Uint8*>(profile.c_str()), profile.size()).good() ||
         !opticalPath->insert(icc.release()).good())
@@ -927,7 +928,7 @@
     {
       try
       {
-        std::auto_ptr<OrthancWSI::HierarchicalTiff> tiff(new OrthancWSI::HierarchicalTiff(path));
+        std::unique_ptr<OrthancWSI::HierarchicalTiff> tiff(new OrthancWSI::HierarchicalTiff(path));
         sourceCompression = tiff->GetImageCompression();
         return tiff.release();
       }
@@ -972,7 +973,7 @@
     if (ParseParameters(exitStatus, parameters, volume, argc, argv))
     {
       OrthancWSI::ImageCompression sourceCompression;
-      std::auto_ptr<OrthancWSI::ITiledPyramid> source;
+      std::unique_ptr<OrthancWSI::ITiledPyramid> source;
 
       source.reset(OpenInputPyramid(sourceCompression, parameters.GetInputFile(), parameters));
       if (source.get() == NULL)
@@ -983,10 +984,10 @@
       LOG(WARNING) << "Compression of the individual source tiles: " << OrthancWSI::EnumerationToString(sourceCompression);
       
       // Create the shared DICOM tags
-      std::auto_ptr<DcmDataset> dataset(ParseDataset(parameters.GetDatasetPath()));
+      std::unique_ptr<DcmDataset> dataset(ParseDataset(parameters.GetDatasetPath()));
       EnrichDataset(*dataset, *source, sourceCompression, parameters, volume);
 
-      std::auto_ptr<OrthancWSI::IFileTarget> output(parameters.CreateTarget());
+      std::unique_ptr<OrthancWSI::IFileTarget> output(parameters.CreateTarget());
       Recompress(*output, *source, *dataset, parameters, volume, sourceCompression);
     }
   }