Mercurial > hg > orthanc
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++) |