Mercurial > hg > orthanc
changeset 5886:9b73ec6a07be find-refactoring
refactoring StatelessDatabaseOperations::ListAvailableAttachments()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 29 Nov 2024 16:29:46 +0100 |
parents | 207371ec031e |
children | 1625fa53a6a3 |
files | OrthancServer/Sources/Database/FindResponse.cpp OrthancServer/Sources/Database/FindResponse.h OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp |
diffstat | 3 files changed, 22 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/OrthancServer/Sources/Database/FindResponse.cpp Fri Nov 29 10:54:20 2024 +0100 +++ b/OrthancServer/Sources/Database/FindResponse.cpp Fri Nov 29 16:29:46 2024 +0100 @@ -528,6 +528,18 @@ } + void FindResponse::Resource::ListAttachments(std::set<FileContentType>& target) const + { + target.clear(); + + for (std::map<FileContentType, FileInfo>::const_iterator + it = attachments_.begin(); it != attachments_.end(); ++it) + { + target.insert(it->first); + } + } + + void FindResponse::Resource::SetOneInstanceMetadataAndAttachments(const std::string& instancePublicId, const std::map<MetadataType, std::string>& metadata, const std::map<FileContentType, FileInfo>& attachments)
--- a/OrthancServer/Sources/Database/FindResponse.h Fri Nov 29 10:54:20 2024 +0100 +++ b/OrthancServer/Sources/Database/FindResponse.h Fri Nov 29 16:29:46 2024 +0100 @@ -362,6 +362,8 @@ return attachments_; } + void ListAttachments(std::set<FileContentType>& target) const; + void SetOneInstanceMetadataAndAttachments(const std::string& instancePublicId, const std::map<MetadataType, std::string>& metadata, const std::map<FileContentType, FileInfo>& attachments);
--- a/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp Fri Nov 29 10:54:20 2024 +0100 +++ b/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp Fri Nov 29 16:29:46 2024 +0100 @@ -949,6 +949,8 @@ void StatelessDatabaseOperations::GetChildInstances(std::list<std::string>& result, const std::string& publicId) { + // TODO-FIND + class Operations : public ReadOnlyOperationsT2<std::list<std::string>&, const std::string&> { public: @@ -1042,28 +1044,12 @@ const std::string& publicId, ResourceType expectedType) { - class Operations : public ReadOnlyOperationsT3<std::set<FileContentType>&, const std::string&, ResourceType> - { - public: - virtual void ApplyTuple(ReadOnlyTransaction& transaction, - const Tuple& tuple) ORTHANC_OVERRIDE - { - ResourceType type; - int64_t id; - if (!transaction.LookupResource(id, type, tuple.get<1>()) || - tuple.get<2>() != type) - { - throw OrthancException(ErrorCode_UnknownResource); - } - else - { - transaction.ListAvailableAttachments(tuple.get<0>(), id); - } - } - }; - - Operations operations; - operations.Apply(*this, target, publicId, expectedType); + FindRequest request(expectedType); + request.SetOrthancId(expectedType, publicId); + request.SetRetrieveAttachments(true); + + FindResponse response; + ExecuteSingleResource(response, request).ListAttachments(target); }