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 }