Mercurial > hg > orthanc
comparison OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp @ 5721:3f97590cc0c9 find-refactoring-clean
integration find-refactoring->find-refactoring-clean
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 19 Jul 2024 10:06:39 +0200 |
parents | f488fc5c972a 89d559e67b03 |
children | 3fd4d5833c55 |
comparison
equal
deleted
inserted
replaced
5719:f488fc5c972a | 5721:3f97590cc0c9 |
---|---|
3407 { | 3407 { |
3408 transaction.ExecuteFind(tuple.get<0>(), tuple.get<1>(), tuple.get<2>()); | 3408 transaction.ExecuteFind(tuple.get<0>(), tuple.get<1>(), tuple.get<2>()); |
3409 } | 3409 } |
3410 }; | 3410 }; |
3411 | 3411 |
3412 class FindStage : public ReadOnlyOperationsT3<std::list<std::string>&, const FindRequest&, | 3412 class FindStage : public ReadOnlyOperationsT3<std::list<std::string>&, const IDatabaseWrapper::Capabilities&, const FindRequest& > |
3413 const IDatabaseWrapper::Capabilities&> | |
3414 { | 3413 { |
3415 public: | 3414 public: |
3416 virtual void ApplyTuple(ReadOnlyTransaction& transaction, | 3415 virtual void ApplyTuple(ReadOnlyTransaction& transaction, |
3417 const Tuple& tuple) ORTHANC_OVERRIDE | 3416 const Tuple& tuple) ORTHANC_OVERRIDE |
3418 { | 3417 { |
3419 transaction.ExecuteFind(tuple.get<0>(), tuple.get<1>(), tuple.get<2>()); | 3418 transaction.ExecuteFind(tuple.get<0>(), tuple.get<1>(), tuple.get<2>()); |
3420 } | 3419 } |
3421 }; | 3420 }; |
3422 | 3421 |
3423 class ExpandStage : public ReadOnlyOperationsT3<FindResponse&, const FindRequest&, const std::string&> | 3422 class ExpandStage : public ReadOnlyOperationsT4<FindResponse&, const IDatabaseWrapper::Capabilities&, const FindRequest&, const std::string&> |
3424 { | 3423 { |
3425 public: | 3424 public: |
3426 virtual void ApplyTuple(ReadOnlyTransaction& transaction, | 3425 virtual void ApplyTuple(ReadOnlyTransaction& transaction, |
3427 const Tuple& tuple) ORTHANC_OVERRIDE | 3426 const Tuple& tuple) ORTHANC_OVERRIDE |
3428 { | 3427 { |
3429 transaction.ExecuteExpand(tuple.get<0>(), tuple.get<1>(), tuple.get<2>()); | 3428 transaction.ExecuteExpand(tuple.get<0>(), tuple.get<1>(), tuple.get<2>(), tuple.get<3>()); |
3430 } | 3429 } |
3431 }; | 3430 }; |
3432 | 3431 |
3433 IDatabaseWrapper::Capabilities capabilities = db_.GetDatabaseCapabilities(); | 3432 IDatabaseWrapper::Capabilities capabilities = db_.GetDatabaseCapabilities(); |
3434 | 3433 |
3449 * the compatibility mode equivalent to Orthanc <= 1.12.3. | 3448 * the compatibility mode equivalent to Orthanc <= 1.12.3. |
3450 **/ | 3449 **/ |
3451 std::list<std::string> identifiers; | 3450 std::list<std::string> identifiers; |
3452 | 3451 |
3453 FindStage find; | 3452 FindStage find; |
3454 find.Apply(*this, identifiers, request, capabilities); | 3453 find.Apply(*this, identifiers, capabilities, request); |
3455 | 3454 |
3456 ExpandStage expand; | 3455 ExpandStage expand; |
3457 | 3456 |
3458 for (std::list<std::string>::const_iterator it = identifiers.begin(); it != identifiers.end(); ++it) | 3457 for (std::list<std::string>::const_iterator it = identifiers.begin(); it != identifiers.end(); ++it) |
3459 { | 3458 { |
3460 /** | 3459 /** |
3461 * Not that the resource might have been deleted (as we are in | 3460 * Not that the resource might have been deleted (as we are in |
3462 * another transaction). The database engine must ignore such | 3461 * another transaction). The database engine must ignore such |
3463 * error cases. | 3462 * error cases. |
3464 **/ | 3463 **/ |
3465 expand.Apply(*this, response, request, *it); | 3464 expand.Apply(*this, response, capabilities, request, *it); |
3466 } | 3465 } |
3467 } | 3466 } |
3468 } | 3467 } |
3469 } | 3468 } |