view OrthancServer/Resources/ImplementationNotes/JobsEngineClasses.txt @ 6937:093efd260e36 default tip

fix unit test against old versions DCMTK
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 05 Jun 2026 18:51:51 +0200
parents a92513c29da2
children cfe3cd4a4974
line wrap: on
line source

class IJob :
    virtual void Start() = 0;
    virtual JobStepResult Step(const std::string& jobId) = 0;
    virtual bool NeedsProgressUpdateBetweenSteps() const // only for jobs whose progress is updated by outside events (like C-Move and C-Get)
    virtual float GetProgress() const = 0;
    ...

class SetOfCommandsJob : IJob
    class ICommand
        virtual bool Execute(const std::string& jobId) = 0;
        virtual void Serialize(Json::Value& target) const = 0;
    class ICommandUnserializer
        virtual ICommand* Unserialize(const Json::Value& source) const = 0;
    
    virtual void Start() ORTHANC_OVERRIDE;
    virtual float GetProgress() ORTHANC_OVERRIDE { returns position_/commands_.size()}
    void SetPermissive(bool permissive);  // if a command fails, the complete job does not fails
    virtual JobStepResult Step(const std::string& jobId) = commands_[position_]->Execute()

class SetOfInstancesJob : SetOfCommandsJob
    virtual bool HandleInstance(const std::string& instance) = 0;
    virtual bool HandleTrailingStep() = 0;


class StoreJob : SetOfInstancesJob   (contains a ThreadedInstancesLoader)

Class ModalityStoreJob : StoreJob