comparison Framework/Toolbox/OrthancSlicesLoader.h @ 378:814fa32e2fcc

refactoring
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 06 Nov 2018 14:21:02 +0100
parents 3a4ca166fafa
children dd4c7e82b4be
comparison
equal deleted inserted replaced
377:8eb4fe74000f 378:814fa32e2fcc
19 **/ 19 **/
20 20
21 21
22 #pragma once 22 #pragma once
23 23
24 #include "../Messages/IObservable.h"
25 #include "../StoneEnumerations.h"
24 #include "IWebService.h" 26 #include "IWebService.h"
27 #include "OrthancApiClient.h"
25 #include "SlicesSorter.h" 28 #include "SlicesSorter.h"
26 #include "../StoneEnumerations.h" 29
27 #include "../Messages/IObservable.h" 30 #include <Core/Images/Image.h>
28 #include <boost/shared_ptr.hpp>
29 #include "OrthancApiClient.h"
30 #include "Core/Images/Image.h"
31 31
32 32
33 namespace OrthancStone 33 namespace OrthancStone
34 { 34 {
35 class OrthancSlicesLoader : public IObservable, public IObserver 35 class OrthancSlicesLoader : public IObservable, public IObserver
37 public: 37 public:
38 38
39 typedef OriginMessage<MessageType_SliceLoader_GeometryReady, OrthancSlicesLoader> SliceGeometryReadyMessage; 39 typedef OriginMessage<MessageType_SliceLoader_GeometryReady, OrthancSlicesLoader> SliceGeometryReadyMessage;
40 typedef OriginMessage<MessageType_SliceLoader_GeometryError, OrthancSlicesLoader> SliceGeometryErrorMessage; 40 typedef OriginMessage<MessageType_SliceLoader_GeometryError, OrthancSlicesLoader> SliceGeometryErrorMessage;
41 41
42 struct SliceImageReadyMessage : public BaseMessage<MessageType_SliceLoader_ImageReady> 42 class SliceImageReadyMessage : public BaseMessage<MessageType_SliceLoader_ImageReady>
43 { 43 {
44 unsigned int sliceIndex_; 44 private:
45 const Slice& slice_; 45 unsigned int sliceIndex_;
46 boost::shared_ptr<Orthanc::ImageAccessor> image_; 46 const Slice& slice_;
47 SliceImageQuality effectiveQuality_; 47 const Orthanc::ImageAccessor& image_;
48 48 SliceImageQuality effectiveQuality_;
49
50 public:
49 SliceImageReadyMessage(unsigned int sliceIndex, 51 SliceImageReadyMessage(unsigned int sliceIndex,
50 const Slice& slice, 52 const Slice& slice,
51 boost::shared_ptr<Orthanc::ImageAccessor> image, 53 const Orthanc::ImageAccessor& image,
52 SliceImageQuality effectiveQuality) 54 SliceImageQuality effectiveQuality) :
53 : BaseMessage(), 55 sliceIndex_(sliceIndex),
54 sliceIndex_(sliceIndex), 56 slice_(slice),
55 slice_(slice), 57 image_(image),
56 image_(image), 58 effectiveQuality_(effectiveQuality)
57 effectiveQuality_(effectiveQuality) 59 {
58 { 60 }
59 } 61
60 }; 62 unsigned int GetSliceIndex() const
61 63 {
62 struct SliceImageErrorMessage : public BaseMessage<MessageType_SliceLoader_ImageError> 64 return sliceIndex_;
63 { 65 }
64 const Slice& slice_; 66
65 unsigned int sliceIndex_; 67 const Slice& GetSlice() const
66 SliceImageQuality effectiveQuality_; 68 {
67 69 return slice_;
70 }
71
72 const Orthanc::ImageAccessor& GetImage() const
73 {
74 return image_;
75 }
76
77 SliceImageQuality GetEffectiveQuality() const
78 {
79 return effectiveQuality_;
80 }
81 };
82
83
84 class SliceImageErrorMessage : public BaseMessage<MessageType_SliceLoader_ImageError>
85 {
86 private:
87 const Slice& slice_;
88 unsigned int sliceIndex_;
89 SliceImageQuality effectiveQuality_;
90
91 public:
68 SliceImageErrorMessage(unsigned int sliceIndex, 92 SliceImageErrorMessage(unsigned int sliceIndex,
69 const Slice& slice, 93 const Slice& slice,
70 SliceImageQuality effectiveQuality) 94 SliceImageQuality effectiveQuality) :
71 : BaseMessage(), 95 slice_(slice),
72 slice_(slice), 96 sliceIndex_(sliceIndex),
73 sliceIndex_(sliceIndex), 97 effectiveQuality_(effectiveQuality)
74 effectiveQuality_(effectiveQuality) 98 {
75 { 99 }
76 } 100 unsigned int GetSliceIndex() const
101 {
102 return sliceIndex_;
103 }
104
105 const Slice& GetSlice() const
106 {
107 return slice_;
108 }
109
110 SliceImageQuality GetEffectiveQuality() const
111 {
112 return effectiveQuality_;
113 }
77 }; 114 };
78 115
79 private: 116 private:
80 enum State 117 enum State
81 { 118 {
100 OrthancApiClient& orthanc_; 137 OrthancApiClient& orthanc_;
101 State state_; 138 State state_;
102 SlicesSorter slices_; 139 SlicesSorter slices_;
103 140
104 void NotifySliceImageSuccess(const Operation& operation, 141 void NotifySliceImageSuccess(const Operation& operation,
105 boost::shared_ptr<Orthanc::ImageAccessor> image); 142 const Orthanc::ImageAccessor& image);
106 143
107 void NotifySliceImageError(const Operation& operation); 144 void NotifySliceImageError(const Operation& operation);
108 145
109 void OnGeometryError(const OrthancApiClient::HttpErrorMessage& message); 146 void OnGeometryError(const OrthancApiClient::HttpErrorMessage& message);
110 void OnSliceImageError(const OrthancApiClient::HttpErrorMessage& message); 147 void OnSliceImageError(const OrthancApiClient::HttpErrorMessage& message);
111 148