comparison 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
comparison
equal deleted inserted replaced
1076:008dbc4ceb62 1077:d7a18a3cd6f9
20 20
21 21
22 #pragma once 22 #pragma once
23 23
24 #include "../Messages/IObserver.h" 24 #include "../Messages/IObserver.h"
25 #include "IOracleCommand.h" 25 #include "IOracleRunner.h"
26
27 #include <boost/shared_ptr.hpp>
26 28
27 namespace OrthancStone 29 namespace OrthancStone
28 { 30 {
29 class IOracle : public boost::noncopyable 31 class IOracle : public boost::noncopyable
30 { 32 {
33 { 35 {
34 } 36 }
35 37
36 virtual void Schedule(boost::shared_ptr<IObserver>& receiver, 38 virtual void Schedule(boost::shared_ptr<IObserver>& receiver,
37 IOracleCommand* command) = 0; // Takes ownership 39 IOracleCommand* command) = 0; // Takes ownership
40
41 template <typename TObserver>
42 void ScheduleAdapter(boost::shared_ptr<TObserver>& receiver,
43 IOracleCommand* command)
44 {
45 boost::shared_ptr<IObserver> converted(receiver);
46 Schedule(converted, command);
47 }
38 }; 48 };
39 } 49 }