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 }