Mercurial > hg > orthanc
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OrthancServer/Plugins/Samples/DelayedDeletion/LargeDeleteJob.h Mon Jun 20 16:53:21 2022 +0200 @@ -0,0 +1,46 @@ +#pragma once + +#include "../Common/OrthancPluginCppWrapper.h" +#include "../../../../OrthancFramework/Sources/Enumerations.h" +#include "../../../../OrthancFramework/Sources/Compatibility.h" + + +class LargeDeleteJob : public OrthancPlugins::OrthancJob +{ +private: + std::vector<std::string> resources_; + std::vector<Orthanc::ResourceType> levels_; + std::vector<std::string> instances_; + std::vector<std::string> series_; + size_t posResources_; + size_t posInstances_; + size_t posSeries_; + size_t posDelete_; + + void UpdateDeleteProgress(); + + void ScheduleChildrenResources(std::vector<std::string>& target, + const std::string& uri); + + void ScheduleResource(Orthanc::ResourceType level, + const std::string& id); + + void DeleteResource(Orthanc::ResourceType level, + const std::string& id); + +public: + LargeDeleteJob(const std::vector<std::string>& resources, + const std::vector<Orthanc::ResourceType>& levels); + + virtual OrthancPluginJobStepStatus Step() ORTHANC_OVERRIDE; + + virtual void Stop(OrthancPluginJobStopReason reason) ORTHANC_OVERRIDE + { + } + + virtual void Reset() ORTHANC_OVERRIDE; + + static void RestHandler(OrthancPluginRestOutput* output, + const char* url, + const OrthancPluginHttpRequest* request); +};