comparison Framework/Plugins/IndexBackend.cpp @ 69:19764fc60ade db-changes

compatibility with Orthanc SDDK 0.9.5
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 03 Jan 2019 10:07:27 +0100
parents 714c5d2bee76
children e6c13ddd26d9
comparison
equal deleted inserted replaced
68:babc1e0eb7f2 69:19764fc60ade
27 #include "GlobalProperties.h" 27 #include "GlobalProperties.h"
28 28
29 #include <Core/Logging.h> 29 #include <Core/Logging.h>
30 #include <Core/OrthancException.h> 30 #include <Core/OrthancException.h>
31 #include <OrthancServer/ServerEnumerations.h> 31 #include <OrthancServer/ServerEnumerations.h>
32 #include <OrthancServer/Search/ISqlLookupFormatter.h>
32 33
33 34
34 namespace OrthancDatabases 35 namespace OrthancDatabases
35 { 36 {
36 static std::string ConvertWildcardToLike(const std::string& query) 37 static std::string ConvertWildcardToLike(const std::string& query)
1577 Dictionary args; 1578 Dictionary args;
1578 args.SetIntegerValue("id", id); 1579 args.SetIntegerValue("id", id);
1579 1580
1580 ReadListOfStrings(childrenPublicIds, statement, args); 1581 ReadListOfStrings(childrenPublicIds, statement, args);
1581 } 1582 }
1583
1584
1585 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1
1586 class IndexBackend::LookupFormatter : public Orthanc::ISqlLookupFormatter
1587 {
1588 private:
1589 Dialect dialect_;
1590
1591 public:
1592 LookupFormatter(Dialect dialect) :
1593 dialect_(dialect)
1594 {
1595 }
1596
1597 virtual std::string GenerateParameter(const std::string& value)
1598 {
1599 switch (dialect_)
1600 {
1601 case Dialect_MySQL:
1602 break;
1603
1604 case Dialect_PostgreSQL:
1605 break;
1606
1607 case Dialect_SQLite:
1608 break;
1609
1610 default:
1611 throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented);
1612 }
1613 }
1614 };
1615 #endif
1616
1617
1618 #if ORTHANC_PLUGINS_HAS_DATABASE_CONSTRAINT == 1
1619 // New primitive since Orthanc 1.5.2
1620 void IndexBackend::LookupResources(const std::vector<Orthanc::DatabaseConstraint>& lookup,
1621 OrthancPluginResourceType queryLevel,
1622 uint32_t limit,
1623 bool requestSomeInstance)
1624 {
1625 std::string sql;
1626
1627 {
1628 LookupFormatter formatter(manager_.GetDialect());
1629 Orthanc::ISqlLookupFormatter::Apply(sql, formatter, lookup,
1630 Orthanc::Plugins::Convert(queryLevel), limit);
1631 }
1632 }
1633 #endif
1582 } 1634 }