Mercurial > hg > orthanc-databases
diff Framework/Plugins/OrthancCppDatabasePlugin.h @ 85:1012fe77241c db-changes
new extension implemented for PostgreSQL and SQLite: GetLastChangeIndex
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 10 Jan 2019 18:04:12 +0100 |
parents | 2ee166f77501 |
children | eb08ec14fb04 |
line wrap: on
line diff
--- a/Framework/Plugins/OrthancCppDatabasePlugin.h Thu Jan 10 13:33:33 2019 +0100 +++ b/Framework/Plugins/OrthancCppDatabasePlugin.h Thu Jan 10 18:04:12 2019 +0100 @@ -492,7 +492,10 @@ virtual void ClearMainDicomTags(int64_t internalId) = 0; - virtual bool HasCreateInstance() const = 0; + virtual bool HasCreateInstance() const + { + return false; + } #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 virtual void LookupResources(const std::vector<Orthanc::DatabaseConstraint>& lookup, @@ -524,11 +527,11 @@ #endif -#if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 virtual void GetChildrenMetadata(std::list<std::string>& target, int64_t resourceId, int32_t metadata) = 0; -#endif + + virtual int64_t GetLastChangeIndex() = 0; }; @@ -1585,8 +1588,6 @@ #endif - -#if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 // New primitive since Orthanc 1.5.2 static OrthancPluginErrorCode GetChildrenMetadata(OrthancPluginDatabaseContext* context, void* payload, @@ -1613,8 +1614,23 @@ } ORTHANC_PLUGINS_DATABASE_CATCH } -#endif + + + // New primitive since Orthanc 1.5.2 + static OrthancPluginErrorCode GetLastChangeIndex(int64_t* result, + void* payload) + { + IDatabaseBackend* backend = reinterpret_cast<IDatabaseBackend*>(payload); + backend->GetOutput().SetAllowedAnswers(DatabaseBackendOutput::AllowedAnswers_None); + try + { + *result = backend->GetLastChangeIndex(); + return OrthancPluginErrorCode_Success; + } + ORTHANC_PLUGINS_DATABASE_CATCH + } + public: /** @@ -1700,6 +1716,7 @@ extensions.lookupResources = LookupResources; // Fast lookup extensions.setResourcesContent = SetResourcesContent; // Fast setting tags/metadata extensions.getChildrenMetadata = GetChildrenMetadata; + extensions.getLastChangeIndex = GetLastChangeIndex; if (backend.HasCreateInstance()) {