diff Framework/Oracle/IOracle.h @ 1077:d7a18a3cd6f9 broker

IOracleRunner
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 17 Oct 2019 16:51:41 +0200
parents 81b29bc7c3d4
children 53d9c3b96b9e
line wrap: on
line diff
--- a/Framework/Oracle/IOracle.h	Thu Oct 17 14:42:41 2019 +0200
+++ b/Framework/Oracle/IOracle.h	Thu Oct 17 16:51:41 2019 +0200
@@ -22,7 +22,9 @@
 #pragma once
 
 #include "../Messages/IObserver.h"
-#include "IOracleCommand.h"
+#include "IOracleRunner.h"
+
+#include <boost/shared_ptr.hpp>
 
 namespace OrthancStone
 {
@@ -35,5 +37,13 @@
 
     virtual void Schedule(boost::shared_ptr<IObserver>& receiver,
                           IOracleCommand* command) = 0;  // Takes ownership
+
+    template <typename TObserver>
+    void ScheduleAdapter(boost::shared_ptr<TObserver>& receiver,
+                         IOracleCommand* command)
+    {
+      boost::shared_ptr<IObserver> converted(receiver);
+      Schedule(converted, command);
+    }
   };
 }