Mercurial > hg > orthanc-databases
diff Framework/Plugins/OrthancCppDatabasePlugin.h @ 75:52c70007bb87 db-changes
new extension implemented for PostgreSQL: SetResourcesContent
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 05 Jan 2019 11:41:15 +0100 |
parents | a4e440e65c68 |
children | a1c6238b26f8 |
line wrap: on
line diff
--- a/Framework/Plugins/OrthancCppDatabasePlugin.h Fri Jan 04 17:24:30 2019 +0100 +++ b/Framework/Plugins/OrthancCppDatabasePlugin.h Sat Jan 05 11:41:15 2019 +0100 @@ -510,6 +510,17 @@ throw std::runtime_error("Not implemented"); } #endif + + +#if ORTHANC_PLUGINS_HAS_DATABASE_OPTIMIZATIONS_1 == 1 + virtual void SetResourcesContent( + uint32_t countIdentifierTags, + const OrthancPluginResourcesContentTags* identifierTags, + uint32_t countMainDicomTags, + const OrthancPluginResourcesContentTags* mainDicomTags, + uint32_t countMetadata, + const OrthancPluginResourcesContentMetadata* metadata) = 0; +#endif }; @@ -1536,6 +1547,30 @@ } #endif + +#if ORTHANC_PLUGINS_HAS_DATABASE_OPTIMIZATIONS_1 == 1 + static OrthancPluginErrorCode SetResourcesContent( + void* payload, + uint32_t countIdentifierTags, + const OrthancPluginResourcesContentTags* identifierTags, + uint32_t countMainDicomTags, + const OrthancPluginResourcesContentTags* mainDicomTags, + uint32_t countMetadata, + const OrthancPluginResourcesContentMetadata* metadata) + { + IDatabaseBackend* backend = reinterpret_cast<IDatabaseBackend*>(payload); + + try + { + backend->SetResourcesContent(countIdentifierTags, identifierTags, + countMainDicomTags, mainDicomTags, + countMetadata, metadata); + return OrthancPluginErrorCode_Success; + } + ORTHANC_PLUGINS_DATABASE_CATCH + } +#endif + public: /** @@ -1617,11 +1652,13 @@ #endif #if ORTHANC_PLUGINS_HAS_DATABASE_OPTIMIZATIONS_1 == 1 - extensions.lookupResources = LookupResources; // New in Orthanc 1.5.2 (fast lookup) + // Optimizations brought by Orthanc 1.5.2 + extensions.lookupResources = LookupResources; // Fast lookup + extensions.setResourcesContent = SetResourcesContent; // Fast setting tags/metadata if (backend.HasCreateInstance()) { - extensions.createInstance = CreateInstance; // New in Orthanc 1.5.2 (fast create) + extensions.createInstance = CreateInstance; // Fast creation of resources } performanceWarning = false;