comparison OrthancServer/Plugins/Samples/DelayedDeletion/LargeDeleteJob.h @ 5024:c2ebc47f4f18 delayed-deletion

wip: adding DelayedDeletion plugin
author Alain Mazy <am@osimis.io>
date Mon, 20 Jun 2022 16:53:21 +0200
parents
children 99751c5a7cfe
comparison
equal deleted inserted replaced
5021:559b35d18ef7 5024:c2ebc47f4f18
1 #pragma once
2
3 #include "../Common/OrthancPluginCppWrapper.h"
4 #include "../../../../OrthancFramework/Sources/Enumerations.h"
5 #include "../../../../OrthancFramework/Sources/Compatibility.h"
6
7
8 class LargeDeleteJob : public OrthancPlugins::OrthancJob
9 {
10 private:
11 std::vector<std::string> resources_;
12 std::vector<Orthanc::ResourceType> levels_;
13 std::vector<std::string> instances_;
14 std::vector<std::string> series_;
15 size_t posResources_;
16 size_t posInstances_;
17 size_t posSeries_;
18 size_t posDelete_;
19
20 void UpdateDeleteProgress();
21
22 void ScheduleChildrenResources(std::vector<std::string>& target,
23 const std::string& uri);
24
25 void ScheduleResource(Orthanc::ResourceType level,
26 const std::string& id);
27
28 void DeleteResource(Orthanc::ResourceType level,
29 const std::string& id);
30
31 public:
32 LargeDeleteJob(const std::vector<std::string>& resources,
33 const std::vector<Orthanc::ResourceType>& levels);
34
35 virtual OrthancPluginJobStepStatus Step() ORTHANC_OVERRIDE;
36
37 virtual void Stop(OrthancPluginJobStopReason reason) ORTHANC_OVERRIDE
38 {
39 }
40
41 virtual void Reset() ORTHANC_OVERRIDE;
42
43 static void RestHandler(OrthancPluginRestOutput* output,
44 const char* url,
45 const OrthancPluginHttpRequest* request);
46 };