Mercurial > hg > orthanc-databases
changeset 577:991b9b285e1a attach-custom-data
fix custom-data handling
author | Alain Mazy <am@orthanc.team> |
---|---|
date | Wed, 02 Oct 2024 09:40:20 +0200 |
parents | b0533b703c2c |
children | 27b7b2c08d6e |
files | Framework/Plugins/DatabaseBackendAdapterV4.cpp Framework/Plugins/IDatabaseBackend.h Framework/Plugins/IndexBackend.cpp Framework/Plugins/IndexBackend.h Framework/Plugins/MessagesToolbox.h PostgreSQL/NEWS |
diffstat | 6 files changed, 80 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/Framework/Plugins/DatabaseBackendAdapterV4.cpp Tue Oct 01 16:02:48 2024 +0200 +++ b/Framework/Plugins/DatabaseBackendAdapterV4.cpp Wed Oct 02 09:40:20 2024 +0200 @@ -225,6 +225,9 @@ attachment->set_compression_type(compressionType); attachment->set_compressed_size(compressedSize); attachment->set_compressed_hash(compressedHash); +#if ORTHANC_PLUGINS_HAS_ATTACHMENTS_CUSTOM_DATA == 1 + attachment->set_custom_data(customData); +#endif } virtual void SignalDeletedResource(const std::string& publicId, @@ -288,6 +291,9 @@ lookupAttachment_->mutable_attachment()->set_compression_type(compressionType); lookupAttachment_->mutable_attachment()->set_compressed_size(compressedSize); lookupAttachment_->mutable_attachment()->set_compressed_hash(compressedHash); +#if ORTHANC_PLUGINS_HAS_ATTACHMENTS_CUSTOM_DATA==1 + lookupAttachment_->mutable_attachment()->set_custom_data(customData); +#endif } else { @@ -684,6 +690,9 @@ case Orthanc::DatabasePluginMessages::OPERATION_ADD_ATTACHMENT: { +#if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 6) + backend.AddAttachment(response, manager, request.add_attachment()); +#else OrthancPluginAttachment attachment; attachment.uuid = request.add_attachment().attachment().uuid().c_str(); attachment.contentType = request.add_attachment().attachment().content_type(); @@ -694,9 +703,9 @@ attachment.compressedHash = request.add_attachment().attachment().compressed_hash().c_str(); backend.AddAttachment(manager, request.add_attachment().id(), attachment, request.add_attachment().revision()); +#endif break; } - case Orthanc::DatabasePluginMessages::OPERATION_CLEAR_CHANGES: { backend.ClearChanges(manager);
--- a/Framework/Plugins/IDatabaseBackend.h Tue Oct 01 16:02:48 2024 +0200 +++ b/Framework/Plugins/IDatabaseBackend.h Wed Oct 02 09:40:20 2024 +0200 @@ -66,13 +66,20 @@ const OrthancPluginAttachment& attachment, int64_t revision) = 0; -#if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 0) +#if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 6) + // New in Orthanc 1.12.6 + virtual void AddAttachment(Orthanc::DatabasePluginMessages::TransactionResponse& response, + DatabaseManager& manager, + const Orthanc::DatabasePluginMessages::AddAttachment_Request& request) = 0; +#endif - virtual void AddAttachment2(DatabaseManager& manager, - int64_t id, - const OrthancPluginAttachment2& attachment, - int64_t revision) = 0; -#endif +// #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 6) + +// virtual void AddAttachment2(DatabaseManager& manager, +// int64_t id, +// const OrthancPluginAttachment2& attachment, +// int64_t revision) = 0; +// #endif virtual void AttachChild(DatabaseManager& manager, int64_t parent, @@ -406,5 +413,6 @@ DatabaseManager& manager, const Orthanc::DatabasePluginMessages::Find_Request& request) = 0; #endif + }; }
--- a/Framework/Plugins/IndexBackend.cpp Tue Oct 01 16:02:48 2024 +0200 +++ b/Framework/Plugins/IndexBackend.cpp Wed Oct 02 09:40:20 2024 +0200 @@ -400,17 +400,38 @@ attachment.compressionType, attachment.compressedSize, attachment.compressedHash, "", revision); } -#if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 0) - void IndexBackend::AddAttachment2(DatabaseManager& manager, - int64_t id, - const OrthancPluginAttachment2& attachment, - int64_t revision) +#if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 6) + void IndexBackend::AddAttachment(Orthanc::DatabasePluginMessages::TransactionResponse& response, + DatabaseManager& manager, + const Orthanc::DatabasePluginMessages::AddAttachment_Request& request) { assert(HasRevisionsSupport() && HasAttachmentCustomDataSupport()); // all plugins supports these features now - ExecuteAddAttachment(manager, id, attachment.uuid, attachment.contentType, attachment.uncompressedSize, attachment.uncompressedHash, - attachment.compressionType, attachment.compressedSize, attachment.compressedHash, attachment.customData, revision); + ExecuteAddAttachment(manager, + request.id(), + request.attachment().uuid().c_str(), + request.attachment().content_type(), + request.attachment().uncompressed_size(), + request.attachment().uncompressed_hash().c_str(), + request.attachment().compression_type(), + request.attachment().compressed_size(), + request.attachment().compressed_hash().c_str(), + request.attachment().custom_data().c_str(), + request.revision()); } #endif + + +// #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 6) +// void IndexBackend::AddAttachment2(DatabaseManager& manager, +// int64_t id, +// const OrthancPluginAttachment2& attachment, +// int64_t revision) +// { +// assert(HasRevisionsSupport() && HasAttachmentCustomDataSupport()); // all plugins supports these features now +// ExecuteAddAttachment(manager, id, attachment.uuid, attachment.contentType, attachment.uncompressedSize, attachment.uncompressedHash, +// attachment.compressionType, attachment.compressedSize, attachment.compressedHash, attachment.customData, revision); +// } +// #endif void IndexBackend::AttachChild(DatabaseManager& manager, int64_t parent,
--- a/Framework/Plugins/IndexBackend.h Tue Oct 01 16:02:48 2024 +0200 +++ b/Framework/Plugins/IndexBackend.h Wed Oct 02 09:40:20 2024 +0200 @@ -91,14 +91,21 @@ const OrthancPluginAttachment& attachment, int64_t revision) ORTHANC_OVERRIDE; -#if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 0) +#if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 6) + // New in Orthanc 1.12.6 + virtual void AddAttachment(Orthanc::DatabasePluginMessages::TransactionResponse& response, + DatabaseManager& manager, + const Orthanc::DatabasePluginMessages::AddAttachment_Request& request) ORTHANC_OVERRIDE; +#endif - virtual void AddAttachment2(DatabaseManager& manager, - int64_t id, - const OrthancPluginAttachment2& attachment, - int64_t revision) ORTHANC_OVERRIDE; +// #if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 6) -#endif +// virtual void AddAttachment2(DatabaseManager& manager, +// int64_t id, +// const OrthancPluginAttachment2& attachment, +// int64_t revision) ORTHANC_OVERRIDE; + +// #endif virtual void AttachChild(DatabaseManager& manager, int64_t parent,
--- a/Framework/Plugins/MessagesToolbox.h Tue Oct 01 16:02:48 2024 +0200 +++ b/Framework/Plugins/MessagesToolbox.h Wed Oct 02 09:40:20 2024 +0200 @@ -59,6 +59,15 @@ #endif +#define ORTHANC_PLUGINS_HAS_ATTACHMENTS_CUSTOM_DATA 0 + +#if defined(ORTHANC_PLUGINS_VERSION_IS_ABOVE) +# if ORTHANC_PLUGINS_VERSION_IS_ABOVE(1, 12, 6) +# undef ORTHANC_PLUGINS_HAS_ATTACHMENTS_CUSTOM_DATA +# define ORTHANC_PLUGINS_HAS_ATTACHMENTS_CUSTOM_DATA 1 +# endif +#endif + #include <Enumerations.h>
--- a/PostgreSQL/NEWS Tue Oct 01 16:02:48 2024 +0200 +++ b/PostgreSQL/NEWS Wed Oct 02 09:40:20 2024 +0200 @@ -1,9 +1,14 @@ Pending changes in the mainline =============================== -DB schema revision: 2 +DB schema revision: 3 + Minimum plugin SDK (for build): 1.12.3 +Optimal plugin SDK: 1.12.6 + Minimum Orthanc runtime: 1.12.3 +Optimal Orthanc runtime: 1.12.6 + * Fix updates from plugin version 3.3 to latest version * Added support for ExtendedChanges: