comparison OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.cpp @ 5804:25df40a274fd find-refactoring

/changes: allowing filtering on multiple changes
author Alain Mazy <am@orthanc.team>
date Mon, 23 Sep 2024 15:40:27 +0200
parents f1ccb67fce31
children
comparison
equal deleted inserted replaced
5803:e219e272650d 5804:25df40a274fd
629 virtual void GetChangesExtended(std::list<ServerIndexChange>& target /*out*/, 629 virtual void GetChangesExtended(std::list<ServerIndexChange>& target /*out*/,
630 bool& done /*out*/, 630 bool& done /*out*/,
631 int64_t since, 631 int64_t since,
632 int64_t to, 632 int64_t to,
633 uint32_t limit, 633 uint32_t limit,
634 ChangeType changeType) ORTHANC_OVERRIDE 634 const std::set<ChangeType>& changeTypes) ORTHANC_OVERRIDE
635 { 635 {
636 assert(database_.GetDatabaseCapabilities().HasExtendedChanges()); 636 assert(database_.GetDatabaseCapabilities().HasExtendedChanges());
637 637
638 DatabasePluginMessages::TransactionRequest request; 638 DatabasePluginMessages::TransactionRequest request;
639 DatabasePluginMessages::TransactionResponse response; 639 DatabasePluginMessages::TransactionResponse response;
640 640
641 request.mutable_get_changes_extended()->set_since(since); 641 request.mutable_get_changes_extended()->set_since(since);
642 request.mutable_get_changes_extended()->set_limit(limit); 642 request.mutable_get_changes_extended()->set_limit(limit);
643 request.mutable_get_changes_extended()->set_to(to); 643 request.mutable_get_changes_extended()->set_to(to);
644 request.mutable_get_changes_extended()->set_change_type(changeType); 644 for (std::set<ChangeType>::const_iterator it = changeTypes.begin(); it != changeTypes.end(); ++it)
645 {
646 request.mutable_get_changes_extended()->add_change_type(*it);
647 }
648
645 ExecuteTransaction(response, DatabasePluginMessages::OPERATION_GET_CHANGES_EXTENDED, request); 649 ExecuteTransaction(response, DatabasePluginMessages::OPERATION_GET_CHANGES_EXTENDED, request);
646 650
647 done = response.get_changes_extended().done(); 651 done = response.get_changes_extended().done();
648 652
649 target.clear(); 653 target.clear();