Mercurial > hg > orthanc-databases
comparison 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 |
comparison
equal
deleted
inserted
replaced
74:a4e440e65c68 | 75:52c70007bb87 |
---|---|
508 const char* hashInstance) | 508 const char* hashInstance) |
509 { | 509 { |
510 throw std::runtime_error("Not implemented"); | 510 throw std::runtime_error("Not implemented"); |
511 } | 511 } |
512 #endif | 512 #endif |
513 | |
514 | |
515 #if ORTHANC_PLUGINS_HAS_DATABASE_OPTIMIZATIONS_1 == 1 | |
516 virtual void SetResourcesContent( | |
517 uint32_t countIdentifierTags, | |
518 const OrthancPluginResourcesContentTags* identifierTags, | |
519 uint32_t countMainDicomTags, | |
520 const OrthancPluginResourcesContentTags* mainDicomTags, | |
521 uint32_t countMetadata, | |
522 const OrthancPluginResourcesContentMetadata* metadata) = 0; | |
523 #endif | |
513 }; | 524 }; |
514 | 525 |
515 | 526 |
516 | 527 |
517 /** | 528 /** |
1533 return OrthancPluginErrorCode_Success; | 1544 return OrthancPluginErrorCode_Success; |
1534 } | 1545 } |
1535 ORTHANC_PLUGINS_DATABASE_CATCH | 1546 ORTHANC_PLUGINS_DATABASE_CATCH |
1536 } | 1547 } |
1537 #endif | 1548 #endif |
1549 | |
1550 | |
1551 #if ORTHANC_PLUGINS_HAS_DATABASE_OPTIMIZATIONS_1 == 1 | |
1552 static OrthancPluginErrorCode SetResourcesContent( | |
1553 void* payload, | |
1554 uint32_t countIdentifierTags, | |
1555 const OrthancPluginResourcesContentTags* identifierTags, | |
1556 uint32_t countMainDicomTags, | |
1557 const OrthancPluginResourcesContentTags* mainDicomTags, | |
1558 uint32_t countMetadata, | |
1559 const OrthancPluginResourcesContentMetadata* metadata) | |
1560 { | |
1561 IDatabaseBackend* backend = reinterpret_cast<IDatabaseBackend*>(payload); | |
1562 | |
1563 try | |
1564 { | |
1565 backend->SetResourcesContent(countIdentifierTags, identifierTags, | |
1566 countMainDicomTags, mainDicomTags, | |
1567 countMetadata, metadata); | |
1568 return OrthancPluginErrorCode_Success; | |
1569 } | |
1570 ORTHANC_PLUGINS_DATABASE_CATCH | |
1571 } | |
1572 #endif | |
1538 | 1573 |
1539 | 1574 |
1540 public: | 1575 public: |
1541 /** | 1576 /** |
1542 * Register a custom database back-end written in C++. | 1577 * Register a custom database back-end written in C++. |
1615 extensions.lookupIdentifierRange = LookupIdentifierRange; // New in Orthanc 1.4.0 | 1650 extensions.lookupIdentifierRange = LookupIdentifierRange; // New in Orthanc 1.4.0 |
1616 # endif | 1651 # endif |
1617 #endif | 1652 #endif |
1618 | 1653 |
1619 #if ORTHANC_PLUGINS_HAS_DATABASE_OPTIMIZATIONS_1 == 1 | 1654 #if ORTHANC_PLUGINS_HAS_DATABASE_OPTIMIZATIONS_1 == 1 |
1620 extensions.lookupResources = LookupResources; // New in Orthanc 1.5.2 (fast lookup) | 1655 // Optimizations brought by Orthanc 1.5.2 |
1656 extensions.lookupResources = LookupResources; // Fast lookup | |
1657 extensions.setResourcesContent = SetResourcesContent; // Fast setting tags/metadata | |
1621 | 1658 |
1622 if (backend.HasCreateInstance()) | 1659 if (backend.HasCreateInstance()) |
1623 { | 1660 { |
1624 extensions.createInstance = CreateInstance; // New in Orthanc 1.5.2 (fast create) | 1661 extensions.createInstance = CreateInstance; // Fast creation of resources |
1625 } | 1662 } |
1626 | 1663 |
1627 performanceWarning = false; | 1664 performanceWarning = false; |
1628 #endif | 1665 #endif |
1629 | 1666 |