5024
|
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 };
|