Mercurial > hg > orthanc-stone
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 } |