Mercurial > hg > orthanc
diff Core/JobsEngine/JobsRegistry.h @ 4022:a2e4edc7b9aa more-changes
wip: adding job changes
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Tue, 09 Jun 2020 08:46:52 +0200 |
parents | 94f4a18a79cc |
children | 1d2b31fc782f |
line wrap: on
line diff
--- a/Core/JobsEngine/JobsRegistry.h Mon Jun 08 16:10:09 2020 +0200 +++ b/Core/JobsEngine/JobsRegistry.h Tue Jun 09 08:46:52 2020 +0200 @@ -86,6 +86,7 @@ JobHandler*& b) const; }; + typedef std::set<IObserver*> Observers; typedef std::map<std::string, JobHandler*> JobsIndex; typedef std::list<JobHandler*> CompletedJobs; typedef std::set<JobHandler*> RetryJobs; @@ -103,7 +104,8 @@ boost::condition_variable someJobComplete_; size_t maxCompletedJobs_; - IObserver* observer_; + boost::shared_mutex observersMutex_; + Observers observers_; #ifndef NDEBUG @@ -141,8 +143,7 @@ public: JobsRegistry(size_t maxCompletedJobs) : - maxCompletedJobs_(maxCompletedJobs), - observer_(NULL) + maxCompletedJobs_(maxCompletedJobs) { } @@ -195,9 +196,9 @@ bool GetState(JobState& state, const std::string& id); - void SetObserver(IObserver& observer); + void AddObserver(IObserver& observer); - void ResetObserver(); + void ResetObserver(IObserver& observer); void GetStatistics(unsigned int& pending, unsigned int& running,