comparison Framework/Volumes/IVolumeLoader.h @ 404:ba4ace20454e

use of MessageBroker in DicomStructureSetSlicer
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sun, 11 Nov 2018 13:02:38 +0100
parents e2fe9352f240
children b70e9be013e4
comparison
equal deleted inserted replaced
403:99e31898910e 404:ba4ace20454e
19 **/ 19 **/
20 20
21 21
22 #pragma once 22 #pragma once
23 23
24 #include <boost/noncopyable.hpp> 24 #include "../Messages/IObservable.h"
25 25
26 namespace OrthancStone 26 namespace OrthancStone
27 { 27 {
28 class IVolumeLoader : public boost::noncopyable 28 class IVolumeLoader : public IObservable
29 { 29 {
30 public: 30 public:
31 class IObserver : public boost::noncopyable 31 typedef OriginMessage<MessageType_VolumeLoader_GeometryReady, IVolumeLoader> GeometryReadyMessage;
32 { 32 typedef OriginMessage<MessageType_VolumeLoader_GeometryError, IVolumeLoader> GeometryErrorMessage;
33 public: 33 typedef OriginMessage<MessageType_VolumeLoader_ContentChanged, IVolumeLoader> ContentChangedMessage;
34 virtual ~IObserver() 34
35 { 35 IVolumeLoader(MessageBroker& broker) :
36 } 36 IObservable(broker)
37
38 virtual void NotifyGeometryReady(const IVolumeLoader& loader) = 0;
39
40 virtual void NotifyGeometryError(const IVolumeLoader& loader) = 0;
41
42 // Triggered if the content of several slices in the loader has
43 // changed
44 virtual void NotifyContentChange(const IVolumeLoader& loader) = 0;
45 };
46
47 virtual ~IVolumeLoader()
48 { 37 {
49 } 38 }
50
51 virtual void Register(IObserver& observer) = 0;
52 }; 39 };
53 } 40 }