diff OrthancServer/Sources/OrthancWebDav.h @ 4242:5cfa6ba75dfc

deleting resources from Orthanc WebDAV
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 09 Oct 2020 17:51:06 +0200
parents 799c0c527ced
children 64f57c9d5f79
line wrap: on
line diff
--- a/OrthancServer/Sources/OrthancWebDav.h	Fri Oct 09 12:07:23 2020 +0200
+++ b/OrthancServer/Sources/OrthancWebDav.h	Fri Oct 09 17:51:06 2020 +0200
@@ -47,19 +47,20 @@
   private:
     typedef std::map<ResourceType, std::string>  Templates;
 
-    class DicomIdentifiersVisitor;  
+    class DicomDeleteVisitor;
     class DicomFileVisitor;
-    class OrthancJsonVisitor;
+    class DicomIdentifiersVisitor;  
     class InstancesOfSeries;
     class InternalNode;
     class ListOfResources;
     class ListOfStudiesByDate;
     class ListOfStudiesByMonth;
     class ListOfStudiesByYear;
+    class OrthancJsonVisitor;
     class ResourcesIndex;
     class RootNode;
     class SingleDicomResource;
-    
+
     class INode : public boost::noncopyable
     {
     public:
@@ -74,6 +75,8 @@
                                   std::string& content,
                                   boost::posix_time::ptime& time, 
                                   const UriComponents& path) = 0;
+
+      virtual bool DeleteItem(const UriComponents& path) = 0;
     };
 
 
@@ -84,8 +87,11 @@
     static void UploadWorker(OrthancWebDav* that);
 
     void Upload(const std::string& path);
+
+    INode& GetRootNode(const std::string& rootPath);
   
     ServerContext&          context_;
+    bool                    allowDicomDelete_;
     std::unique_ptr<INode>  patients_;
     std::unique_ptr<INode>  studies_;
     std::unique_ptr<INode>  dates_;
@@ -97,7 +103,8 @@
     bool                    running_;
   
   public:
-    OrthancWebDav(ServerContext& context);
+    OrthancWebDav(ServerContext& context,
+                  bool allowDicomDelete);
 
     virtual ~OrthancWebDav()
     {