Mercurial > hg > orthanc-stone
comparison Framework/Layers/LayerSourceBase.h @ 247:3d523c9a8f0d am
trying to use boost::signals2 even more.
author | am@osimis.io |
---|---|
date | Mon, 02 Jul 2018 12:32:02 +0200 |
parents | 5470b15f7cf2 |
children |
comparison
equal
deleted
inserted
replaced
246:5470b15f7cf2 | 247:3d523c9a8f0d |
---|---|
22 #pragma once | 22 #pragma once |
23 | 23 |
24 #include "ILayerSource.h" | 24 #include "ILayerSource.h" |
25 #include "../Toolbox/ObserversRegistry.h" | 25 #include "../Toolbox/ObserversRegistry.h" |
26 #include <boost/signals2.hpp> | 26 #include <boost/signals2.hpp> |
27 #include <boost/shared_ptr.hpp> | |
27 | 28 |
28 namespace OrthancStone | 29 namespace OrthancStone |
29 { | 30 { |
30 class LayerSourceBase : public ILayerSource | 31 class LayerSourceBase : public ILayerSource |
31 { | 32 { |
32 private: | 33 private: |
33 typedef ObserversRegistry<ILayerSource, IObserver> Observers; | 34 //typedef ObserversRegistry<ILayerSource, IObserver> Observers; |
34 | 35 |
35 Observers observers_; | 36 //Observers observers_; |
36 | 37 |
37 protected: | 38 protected: |
38 void NotifyGeometryReady(); | 39 void NotifyGeometryReady(); |
39 | 40 |
40 void NotifyGeometryError(); | 41 void NotifyGeometryError(); |
41 | 42 |
42 void NotifyContentChange(); | 43 void NotifyContentChange(); |
43 | 44 |
44 void NotifySliceChange(const Slice& slice); | 45 void NotifySliceChange(const Slice& slice); |
45 | 46 |
46 void NotifyLayerReady(ILayerRenderer* layer, | 47 void NotifyLayerReady(boost::shared_ptr<ILayerRenderer> renderer, |
47 const CoordinateSystem3D& slice, | 48 const CoordinateSystem3D& slice, |
48 bool isError); | 49 bool isError); |
49 | 50 |
50 public: | 51 public: |
51 virtual void Register(IObserver& observer); | 52 virtual void Register(boost::shared_ptr<IObserver> observer); |
52 boost::signals2::signal<void (const ILayerSource& source)> SignalGeometryReady; | 53 |
54 protected: | |
55 typedef boost::signals2::signal<void (const ILayerSource& source)> SignalGeometryReadyType; | |
56 typedef boost::signals2::signal<void (const ILayerSource& source)> SignalGeometryErrorType; | |
57 typedef boost::signals2::signal<void (const ILayerSource& source)> SignalContentChangeType; | |
58 typedef boost::signals2::signal<void (const ILayerSource& source, | |
59 const Slice& slice)> SignalSliceChangeType; | |
60 typedef boost::signals2::signal<void (boost::shared_ptr<ILayerRenderer> renderer, | |
61 const ILayerSource& source, | |
62 const CoordinateSystem3D& slice, | |
63 bool isError)> SignalLayerReadyType; | |
64 | |
65 SignalGeometryReadyType SignalGeometryReady; | |
66 SignalGeometryErrorType SignalGeometryError; | |
67 SignalContentChangeType SignalContentChange; | |
68 SignalSliceChangeType SignalSliceChange; | |
69 SignalLayerReadyType SignalLayerReady; | |
70 | |
71 | |
72 //boost::signals2::signal<void (const ILayerSource& source)> SignalGeometryError; | |
73 | |
53 }; | 74 }; |
54 } | 75 } |