diff Core/JobsEngine/SetOfInstancesJob.h @ 2860:8b00e4cb4a6b

SetOfCommandsJob
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 05 Oct 2018 16:07:34 +0200
parents ff0ed5ea9e4e
children 4e43e67f8ecf
line wrap: on
line diff
--- a/Core/JobsEngine/SetOfInstancesJob.h	Fri Oct 05 10:44:59 2018 +0200
+++ b/Core/JobsEngine/SetOfInstancesJob.h	Fri Oct 05 16:07:34 2018 +0200
@@ -34,86 +34,48 @@
 #pragma once
 
 #include "IJob.h"
+#include "SetOfCommandsJob.h"
 
 #include <set>
 
 namespace Orthanc
 {
-  class SetOfInstancesJob : public IJob
+  class SetOfInstancesJob : public SetOfCommandsJob
   {
   private:
-    bool                      hasTrailingStep_;
-    bool                      started_;
-    std::vector<std::string>  instances_;
-    bool                      permissive_;
-    size_t                    position_;
-    std::set<std::string>     failedInstances_;
-    std::string               description_;
+    class InstanceCommand;
+    class TrailingStepCommand;
+    class InstanceUnserializer;
+    
+    bool                   hasTrailingStep_;
+    std::set<std::string>  failedInstances_;
 
   protected:
     virtual bool HandleInstance(const std::string& instance) = 0;
 
     virtual bool HandleTrailingStep() = 0;
 
+    // Hiding this method, use AddInstance() instead
+    using SetOfCommandsJob::AddCommand;
+
   public:
-    SetOfInstancesJob(bool hasTrailingStep);
+    SetOfInstancesJob();
+
+    SetOfInstancesJob(const Json::Value& source);  // Unserialization
+
+    void AddInstance(const std::string& instance);
 
-    SetOfInstancesJob(const Json::Value& s);  // Unserialization
+    void AddTrailingStep(); 
+
+    size_t GetInstancesCount() const;
+    
+    const std::string& GetInstance(size_t index) const;
 
     bool HasTrailingStep() const
     {
       return hasTrailingStep_;
     }
-    
-    size_t GetPosition() const
-    {
-      return position_;
-    }
 
-    void SetDescription(const std::string& description)
-    {
-      description_ = description;
-    }
-
-    const std::string& GetDescription() const
-    {
-      return description_;
-    }
-
-    void Reserve(size_t size);
-
-    size_t GetInstancesCount() const
-    {
-      return instances_.size();
-    }
-    
-    size_t GetStepsCount() const;
-
-    void AddInstance(const std::string& instance);
-
-    bool IsPermissive() const
-    {
-      return permissive_;
-    }
-
-    void SetPermissive(bool permissive);
-
-    virtual void Reset();
-    
-    virtual void Start()
-    {
-      started_ = true;
-    }
-    
-    virtual float GetProgress();
-
-    bool IsStarted() const
-    {
-      return started_;
-    }
-
-    const std::string& GetInstance(size_t index) const;
-      
     const std::set<std::string>& GetFailedInstances() const
     {
       return failedInstances_;
@@ -123,11 +85,13 @@
     {
       return failedInstances_.find(instance) != failedInstances_.end();
     }
-    
-    virtual JobStepResult Step();
-    
-    virtual void GetPublicContent(Json::Value& value);
-    
-    virtual bool Serialize(Json::Value& value);
+
+    virtual void Start();
+
+    virtual void Reset();
+
+    virtual void GetPublicContent(Json::Value& target);
+
+    virtual bool Serialize(Json::Value& target);
   };
 }