Mercurial > hg > orthanc
comparison OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp @ 5720:89d559e67b03 find-refactoring
fix compatibility with old database plugins
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 19 Jul 2024 09:30:13 +0200 |
parents | 023787ecaff2 |
children | 3f97590cc0c9 ca06dde85358 |
comparison
equal
deleted
inserted
replaced
5717:c5ca97d21023 | 5720:89d559e67b03 |
---|---|
3686 { | 3686 { |
3687 transaction.ExecuteFind(tuple.get<0>(), tuple.get<1>(), tuple.get<2>()); | 3687 transaction.ExecuteFind(tuple.get<0>(), tuple.get<1>(), tuple.get<2>()); |
3688 } | 3688 } |
3689 }; | 3689 }; |
3690 | 3690 |
3691 class FindStage : public ReadOnlyOperationsT3<std::list<std::string>&, const FindRequest&, | 3691 class FindStage : public ReadOnlyOperationsT3<std::list<std::string>&, const IDatabaseWrapper::Capabilities&, const FindRequest& > |
3692 const IDatabaseWrapper::Capabilities&> | |
3693 { | 3692 { |
3694 public: | 3693 public: |
3695 virtual void ApplyTuple(ReadOnlyTransaction& transaction, | 3694 virtual void ApplyTuple(ReadOnlyTransaction& transaction, |
3696 const Tuple& tuple) ORTHANC_OVERRIDE | 3695 const Tuple& tuple) ORTHANC_OVERRIDE |
3697 { | 3696 { |
3698 transaction.ExecuteFind(tuple.get<0>(), tuple.get<1>(), tuple.get<2>()); | 3697 transaction.ExecuteFind(tuple.get<0>(), tuple.get<1>(), tuple.get<2>()); |
3699 } | 3698 } |
3700 }; | 3699 }; |
3701 | 3700 |
3702 class ExpandStage : public ReadOnlyOperationsT3<FindResponse&, const FindRequest&, const std::string&> | 3701 class ExpandStage : public ReadOnlyOperationsT4<FindResponse&, const IDatabaseWrapper::Capabilities&, const FindRequest&, const std::string&> |
3703 { | 3702 { |
3704 public: | 3703 public: |
3705 virtual void ApplyTuple(ReadOnlyTransaction& transaction, | 3704 virtual void ApplyTuple(ReadOnlyTransaction& transaction, |
3706 const Tuple& tuple) ORTHANC_OVERRIDE | 3705 const Tuple& tuple) ORTHANC_OVERRIDE |
3707 { | 3706 { |
3708 transaction.ExecuteExpand(tuple.get<0>(), tuple.get<1>(), tuple.get<2>()); | 3707 transaction.ExecuteExpand(tuple.get<0>(), tuple.get<1>(), tuple.get<2>(), tuple.get<3>()); |
3709 } | 3708 } |
3710 }; | 3709 }; |
3711 | 3710 |
3712 IDatabaseWrapper::Capabilities capabilities = db_.GetDatabaseCapabilities(); | 3711 IDatabaseWrapper::Capabilities capabilities = db_.GetDatabaseCapabilities(); |
3713 | 3712 |
3728 * the compatibility mode equivalent to Orthanc <= 1.12.3. | 3727 * the compatibility mode equivalent to Orthanc <= 1.12.3. |
3729 **/ | 3728 **/ |
3730 std::list<std::string> identifiers; | 3729 std::list<std::string> identifiers; |
3731 | 3730 |
3732 FindStage find; | 3731 FindStage find; |
3733 find.Apply(*this, identifiers, request, capabilities); | 3732 find.Apply(*this, identifiers, capabilities, request); |
3734 | 3733 |
3735 ExpandStage expand; | 3734 ExpandStage expand; |
3736 | 3735 |
3737 for (std::list<std::string>::const_iterator it = identifiers.begin(); it != identifiers.end(); ++it) | 3736 for (std::list<std::string>::const_iterator it = identifiers.begin(); it != identifiers.end(); ++it) |
3738 { | 3737 { |
3739 /** | 3738 /** |
3740 * Not that the resource might have been deleted (as we are in | 3739 * Not that the resource might have been deleted (as we are in |
3741 * another transaction). The database engine must ignore such | 3740 * another transaction). The database engine must ignore such |
3742 * error cases. | 3741 * error cases. |
3743 **/ | 3742 **/ |
3744 expand.Apply(*this, response, request, *it); | 3743 expand.Apply(*this, response, capabilities, request, *it); |
3745 } | 3744 } |
3746 } | 3745 } |
3747 } | 3746 } |
3748 } | 3747 } |