comparison Core/DicomParsing/ParsedDicomFile.cpp @ 3712:2a170a8f1faf

replacing std::auto_ptr by std::unique_ptr
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 02 Mar 2020 15:32:45 +0100
parents 4922bdd046dd
children 113a7b994a12
comparison
equal deleted inserted replaced
3709:1f4910999fe7 3712:2a170a8f1faf
154 154
155 namespace Orthanc 155 namespace Orthanc
156 { 156 {
157 struct ParsedDicomFile::PImpl 157 struct ParsedDicomFile::PImpl
158 { 158 {
159 std::auto_ptr<DcmFileFormat> file_; 159 std::unique_ptr<DcmFileFormat> file_;
160 std::auto_ptr<DicomFrameIndex> frameIndex_; 160 std::unique_ptr<DicomFrameIndex> frameIndex_;
161 }; 161 };
162 162
163 163
164 #if ORTHANC_ENABLE_CIVETWEB == 1 || ORTHANC_ENABLE_MONGOOSE == 1 164 #if ORTHANC_ENABLE_CIVETWEB == 1 || ORTHANC_ENABLE_MONGOOSE == 1
165 static void ParseTagAndGroup(DcmTagKey& key, 165 static void ParseTagAndGroup(DcmTagKey& key,
647 647
648 InvalidateCache(); 648 InvalidateCache();
649 649
650 bool hasCodeExtensions; 650 bool hasCodeExtensions;
651 Encoding encoding = DetectEncoding(hasCodeExtensions); 651 Encoding encoding = DetectEncoding(hasCodeExtensions);
652 std::auto_ptr<DcmElement> element(FromDcmtkBridge::FromJson(tag, value, decodeDataUriScheme, encoding, privateCreator)); 652 std::unique_ptr<DcmElement> element(FromDcmtkBridge::FromJson(tag, value, decodeDataUriScheme, encoding, privateCreator));
653 InsertInternal(*pimpl_->file_->getDataset(), element.release()); 653 InsertInternal(*pimpl_->file_->getDataset(), element.release());
654 } 654 }
655 655
656 656
657 void ParsedDicomFile::ReplacePlainString(const DicomTag& tag, 657 void ParsedDicomFile::ReplacePlainString(const DicomTag& tag,
796 { 796 {
797 return; 797 return;
798 } 798 }
799 } 799 }
800 800
801 std::auto_ptr<DcmElement> element(FromDcmtkBridge::CreateElementForTag(tag, privateCreator)); 801 std::unique_ptr<DcmElement> element(FromDcmtkBridge::CreateElementForTag(tag, privateCreator));
802 802
803 if (!utf8Value.empty()) 803 if (!utf8Value.empty())
804 { 804 {
805 bool hasCodeExtensions; 805 bool hasCodeExtensions;
806 Encoding encoding = DetectEncoding(hasCodeExtensions); 806 Encoding encoding = DetectEncoding(hasCodeExtensions);
919 919
920 bool hasCodeExtensions; 920 bool hasCodeExtensions;
921 Encoding encoding = DetectEncoding(hasCodeExtensions); 921 Encoding encoding = DetectEncoding(hasCodeExtensions);
922 922
923 std::set<DicomTag> tmp; 923 std::set<DicomTag> tmp;
924 std::auto_ptr<DicomValue> v(FromDcmtkBridge::ConvertLeafElement 924 std::unique_ptr<DicomValue> v(FromDcmtkBridge::ConvertLeafElement
925 (*element, DicomToJsonFlags_Default, 925 (*element, DicomToJsonFlags_Default,
926 0, encoding, hasCodeExtensions, tmp)); 926 0, encoding, hasCodeExtensions, tmp));
927 927
928 if (v.get() == NULL || 928 if (v.get() == NULL ||
929 v->IsNull()) 929 v->IsNull())
930 { 930 {
931 value = ""; 931 value = "";
1307 assert(bytesPerPixel != 0); 1307 assert(bytesPerPixel != 0);
1308 1308
1309 DcmTag key(DICOM_TAG_PIXEL_DATA.GetGroup(), 1309 DcmTag key(DICOM_TAG_PIXEL_DATA.GetGroup(),
1310 DICOM_TAG_PIXEL_DATA.GetElement()); 1310 DICOM_TAG_PIXEL_DATA.GetElement());
1311 1311
1312 std::auto_ptr<DcmPixelData> pixels(new DcmPixelData(key)); 1312 std::unique_ptr<DcmPixelData> pixels(new DcmPixelData(key));
1313 1313
1314 unsigned int pitch = accessor.GetWidth() * bytesPerPixel; 1314 unsigned int pitch = accessor.GetWidth() * bytesPerPixel;
1315 Uint8* target = NULL; 1315 Uint8* target = NULL;
1316 pixels->createUint8Array(accessor.GetHeight() * pitch, target); 1316 pixels->createUint8Array(accessor.GetHeight() * pitch, target);
1317 1317
1442 ReplacePlainString(FromDcmtkBridge::Convert(DCM_Modality), "OT"); 1442 ReplacePlainString(FromDcmtkBridge::Convert(DCM_Modality), "OT");
1443 ReplacePlainString(FromDcmtkBridge::Convert(DCM_ConversionType), "WSD"); 1443 ReplacePlainString(FromDcmtkBridge::Convert(DCM_ConversionType), "WSD");
1444 ReplacePlainString(FromDcmtkBridge::Convert(DCM_MIMETypeOfEncapsulatedDocument), MIME_PDF); 1444 ReplacePlainString(FromDcmtkBridge::Convert(DCM_MIMETypeOfEncapsulatedDocument), MIME_PDF);
1445 //ReplacePlainString(FromDcmtkBridge::Convert(DCM_SeriesNumber), "1"); 1445 //ReplacePlainString(FromDcmtkBridge::Convert(DCM_SeriesNumber), "1");
1446 1446
1447 std::auto_ptr<DcmPolymorphOBOW> element(new DcmPolymorphOBOW(DCM_EncapsulatedDocument)); 1447 std::unique_ptr<DcmPolymorphOBOW> element(new DcmPolymorphOBOW(DCM_EncapsulatedDocument));
1448 1448
1449 size_t s = pdf.size(); 1449 size_t s = pdf.size();
1450 if (s & 1) 1450 if (s & 1)
1451 { 1451 {
1452 // The size of the buffer must be even 1452 // The size of the buffer must be even
1517 const std::string& privateCreator) 1517 const std::string& privateCreator)
1518 { 1518 {
1519 const bool generateIdentifiers = (flags & DicomFromJsonFlags_GenerateIdentifiers) ? true : false; 1519 const bool generateIdentifiers = (flags & DicomFromJsonFlags_GenerateIdentifiers) ? true : false;
1520 const bool decodeDataUriScheme = (flags & DicomFromJsonFlags_DecodeDataUriScheme) ? true : false; 1520 const bool decodeDataUriScheme = (flags & DicomFromJsonFlags_DecodeDataUriScheme) ? true : false;
1521 1521
1522 std::auto_ptr<ParsedDicomFile> result(new ParsedDicomFile(generateIdentifiers)); 1522 std::unique_ptr<ParsedDicomFile> result(new ParsedDicomFile(generateIdentifiers));
1523 result->SetEncoding(FromDcmtkBridge::ExtractEncoding(json, GetDefaultDicomEncoding())); 1523 result->SetEncoding(FromDcmtkBridge::ExtractEncoding(json, GetDefaultDicomEncoding()));
1524 1524
1525 const Json::Value::Members tags = json.getMemberNames(); 1525 const Json::Value::Members tags = json.getMemberNames();
1526 1526
1527 for (size_t i = 0; i < tags.size(); i++) 1527 for (size_t i = 0; i < tags.size(); i++)