Mercurial > hg > orthanc
diff OrthancServer/Sources/Database/FindResponse.cpp @ 5565:def06a42e5ef find-refactoring
Updated FindRequest & FindResponse definitions
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Tue, 23 Apr 2024 13:07:38 +0200 |
parents | 12d8a1a266e9 |
children | b0b5546f1b9f |
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/FindResponse.cpp Mon Apr 15 16:13:24 2024 +0200 +++ b/OrthancServer/Sources/Database/FindResponse.cpp Tue Apr 23 13:07:38 2024 +0200 @@ -114,8 +114,10 @@ } - FindResponse::Item::Item(ResourceType level, + FindResponse::Item::Item(FindRequest::ResponseContent responseContent, + ResourceType level, DicomMap* dicomMap /* takes ownership */) : + responseContent_(responseContent), level_(level), dicomMap_(dicomMap) { @@ -131,7 +133,8 @@ void FindResponse::Item::AddMetadata(MetadataType metadata, - const std::string& value) + const std::string& value, + int64_t revision) { if (metadata_.find(metadata) != metadata_.end()) { @@ -139,15 +142,16 @@ } else { - metadata_[metadata] = value; + metadata_[metadata] = StringWithRevision(value, revision); } } bool FindResponse::Item::LookupMetadata(std::string& value, + int64_t revision, MetadataType metadata) const { - std::map<MetadataType, std::string>::const_iterator found = metadata_.find(metadata); + std::map<MetadataType, StringWithRevision>::const_iterator found = metadata_.find(metadata); if (found == metadata_.end()) { @@ -155,17 +159,18 @@ } else { - value = found->second; + value = found->second.GetValue(); + revision = found->second.GetRevision(); return true; } } - void FindResponse::Item::ListMetadata(std::set<MetadataType> target) const + void FindResponse::Item::ListMetadata(std::set<MetadataType>& target) const { target.clear(); - for (std::map<MetadataType, std::string>::const_iterator it = metadata_.begin(); it != metadata_.end(); ++it) + for (std::map<MetadataType, StringWithRevision>::const_iterator it = metadata_.begin(); it != metadata_.end(); ++it) { target.insert(it->first); }