Mercurial > hg > orthanc-databases
comparison 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 |
comparison
equal
deleted
inserted
replaced
82:122f22550521 | 85:1012fe77241c |
---|---|
490 virtual void UpgradeDatabase(uint32_t targetVersion, | 490 virtual void UpgradeDatabase(uint32_t targetVersion, |
491 OrthancPluginStorageArea* storageArea) = 0; | 491 OrthancPluginStorageArea* storageArea) = 0; |
492 | 492 |
493 virtual void ClearMainDicomTags(int64_t internalId) = 0; | 493 virtual void ClearMainDicomTags(int64_t internalId) = 0; |
494 | 494 |
495 virtual bool HasCreateInstance() const = 0; | 495 virtual bool HasCreateInstance() const |
496 { | |
497 return false; | |
498 } | |
496 | 499 |
497 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | 500 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 |
498 virtual void LookupResources(const std::vector<Orthanc::DatabaseConstraint>& lookup, | 501 virtual void LookupResources(const std::vector<Orthanc::DatabaseConstraint>& lookup, |
499 OrthancPluginResourceType queryLevel, | 502 OrthancPluginResourceType queryLevel, |
500 uint32_t limit, | 503 uint32_t limit, |
522 uint32_t countMetadata, | 525 uint32_t countMetadata, |
523 const OrthancPluginResourcesContentMetadata* metadata) = 0; | 526 const OrthancPluginResourcesContentMetadata* metadata) = 0; |
524 #endif | 527 #endif |
525 | 528 |
526 | 529 |
527 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
528 virtual void GetChildrenMetadata(std::list<std::string>& target, | 530 virtual void GetChildrenMetadata(std::list<std::string>& target, |
529 int64_t resourceId, | 531 int64_t resourceId, |
530 int32_t metadata) = 0; | 532 int32_t metadata) = 0; |
531 #endif | 533 |
534 virtual int64_t GetLastChangeIndex() = 0; | |
532 }; | 535 }; |
533 | 536 |
534 | 537 |
535 | 538 |
536 /** | 539 /** |
1583 ORTHANC_PLUGINS_DATABASE_CATCH | 1586 ORTHANC_PLUGINS_DATABASE_CATCH |
1584 } | 1587 } |
1585 #endif | 1588 #endif |
1586 | 1589 |
1587 | 1590 |
1588 | |
1589 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | |
1590 // New primitive since Orthanc 1.5.2 | 1591 // New primitive since Orthanc 1.5.2 |
1591 static OrthancPluginErrorCode GetChildrenMetadata(OrthancPluginDatabaseContext* context, | 1592 static OrthancPluginErrorCode GetChildrenMetadata(OrthancPluginDatabaseContext* context, |
1592 void* payload, | 1593 void* payload, |
1593 int64_t resourceId, | 1594 int64_t resourceId, |
1594 int32_t metadata) | 1595 int32_t metadata) |
1611 | 1612 |
1612 return OrthancPluginErrorCode_Success; | 1613 return OrthancPluginErrorCode_Success; |
1613 } | 1614 } |
1614 ORTHANC_PLUGINS_DATABASE_CATCH | 1615 ORTHANC_PLUGINS_DATABASE_CATCH |
1615 } | 1616 } |
1616 #endif | 1617 |
1617 | 1618 |
1619 // New primitive since Orthanc 1.5.2 | |
1620 static OrthancPluginErrorCode GetLastChangeIndex(int64_t* result, | |
1621 void* payload) | |
1622 { | |
1623 IDatabaseBackend* backend = reinterpret_cast<IDatabaseBackend*>(payload); | |
1624 backend->GetOutput().SetAllowedAnswers(DatabaseBackendOutput::AllowedAnswers_None); | |
1625 | |
1626 try | |
1627 { | |
1628 *result = backend->GetLastChangeIndex(); | |
1629 return OrthancPluginErrorCode_Success; | |
1630 } | |
1631 ORTHANC_PLUGINS_DATABASE_CATCH | |
1632 } | |
1633 | |
1618 | 1634 |
1619 public: | 1635 public: |
1620 /** | 1636 /** |
1621 * Register a custom database back-end written in C++. | 1637 * Register a custom database back-end written in C++. |
1622 * | 1638 * |
1698 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 | 1714 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1 |
1699 // Optimizations brought by Orthanc 1.5.2 | 1715 // Optimizations brought by Orthanc 1.5.2 |
1700 extensions.lookupResources = LookupResources; // Fast lookup | 1716 extensions.lookupResources = LookupResources; // Fast lookup |
1701 extensions.setResourcesContent = SetResourcesContent; // Fast setting tags/metadata | 1717 extensions.setResourcesContent = SetResourcesContent; // Fast setting tags/metadata |
1702 extensions.getChildrenMetadata = GetChildrenMetadata; | 1718 extensions.getChildrenMetadata = GetChildrenMetadata; |
1719 extensions.getLastChangeIndex = GetLastChangeIndex; | |
1703 | 1720 |
1704 if (backend.HasCreateInstance()) | 1721 if (backend.HasCreateInstance()) |
1705 { | 1722 { |
1706 extensions.createInstance = CreateInstance; // Fast creation of resources | 1723 extensions.createInstance = CreateInstance; // Fast creation of resources |
1707 } | 1724 } |