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