Mercurial > hg > orthanc-stone
comparison Framework/Loaders/LoaderCache.h @ 1381:f4a06ad1580b
Branch broker is now the new default
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Wed, 22 Apr 2020 14:05:47 +0200 |
parents | 2d8ab34c8c91 e92c516adcbd |
children | cde379b9d1d2 |
comparison
equal
deleted
inserted
replaced
1375:4431ffdcc2a4 | 1381:f4a06ad1580b |
---|---|
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. | 18 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
19 **/ | 19 **/ |
20 | 20 |
21 #pragma once | 21 #pragma once |
22 | 22 |
23 #include "../Volumes/DicomVolumeImageMPRSlicer.h" | |
24 #include "OrthancSeriesVolumeProgressiveLoader.h" | |
25 #include "OrthancMultiframeVolumeLoader.h" | |
26 #include "DicomStructureSetLoader.h" | |
27 | |
23 #include <boost/shared_ptr.hpp> | 28 #include <boost/shared_ptr.hpp> |
24 | 29 |
25 #include <map> | 30 #include <map> |
26 #include <string> | 31 #include <string> |
27 #include <vector> | 32 #include <vector> |
28 | 33 |
29 namespace OrthancStone | 34 namespace OrthancStone |
30 { | 35 { |
31 class OrthancSeriesVolumeProgressiveLoader; | 36 class ILoadersContext; |
32 class DicomVolumeImageMPRSlicer; | 37 } |
33 class DicomStructureSetLoader; | |
34 #ifdef BGO_ENABLE_DICOMSTRUCTURESETLOADER2 | |
35 class DicomStructureSetLoader2; | |
36 class DicomStructureSetSlicer2; | |
37 class DicomStructureSet2; | |
38 #endif | |
39 //BGO_ENABLE_DICOMSTRUCTURESETLOADER2 | |
40 class OrthancMultiframeVolumeLoader; | |
41 | 38 |
42 #if ORTHANC_ENABLE_WASM == 1 | 39 namespace OrthancStone |
43 class WebAssemblyOracle; | 40 { |
44 #else | |
45 class ThreadedOracle; | |
46 class LockingEmitter; | |
47 #endif | |
48 | |
49 class LoaderCache | 41 class LoaderCache |
50 { | 42 { |
51 public: | 43 public: |
52 #if ORTHANC_ENABLE_WASM == 1 | 44 LoaderCache(OrthancStone::ILoadersContext& loadersContext); |
53 LoaderCache(WebAssemblyOracle& oracle); | |
54 #else | |
55 LoaderCache(ThreadedOracle& oracle, LockingEmitter& lockingEmitter); | |
56 #endif | |
57 | 45 |
58 boost::shared_ptr<OrthancSeriesVolumeProgressiveLoader> | 46 boost::shared_ptr<OrthancSeriesVolumeProgressiveLoader> |
59 GetSeriesVolumeProgressiveLoader (std::string seriesUuid); | 47 GetSeriesVolumeProgressiveLoader (std::string seriesUuid); |
60 | 48 |
61 boost::shared_ptr<DicomVolumeImageMPRSlicer> | 49 boost::shared_ptr<OrthancStone::DicomVolumeImageMPRSlicer> |
62 GetMultiframeDicomVolumeImageMPRSlicer(std::string instanceUuid); | 50 GetMultiframeDicomVolumeImageMPRSlicer(std::string instanceUuid); |
63 | 51 |
64 boost::shared_ptr<OrthancMultiframeVolumeLoader> | 52 boost::shared_ptr<OrthancMultiframeVolumeLoader> |
65 GetMultiframeVolumeLoader(std::string instanceUuid); | 53 GetMultiframeVolumeLoader(std::string instanceUuid); |
66 | 54 |
67 boost::shared_ptr<DicomStructureSetLoader> | 55 boost::shared_ptr<DicomStructureSetLoader> |
68 GetDicomStructureSetLoader( | 56 GetDicomStructureSetLoader( |
69 std::string instanceUuid, | 57 std::string instanceUuid, |
70 const std::vector<std::string>& initiallyVisibleStructures); | 58 const std::vector<std::string>& initiallyVisibleStructures); |
71 | 59 |
72 #ifdef BGO_ENABLE_DICOMSTRUCTURESETLOADER2 | |
73 boost::shared_ptr<DicomStructureSetLoader2> | |
74 GetDicomStructureSetLoader2(std::string instanceUuid); | |
75 | |
76 boost::shared_ptr<DicomStructureSetSlicer2> | |
77 GetDicomStructureSetSlicer2(std::string instanceUuid); | |
78 #endif | |
79 //BGO_ENABLE_DICOMSTRUCTURESETLOADER2 | |
80 | |
81 void ClearCache(); | 60 void ClearCache(); |
82 | 61 |
83 private: | 62 private: |
84 | 63 |
85 void DebugDisplayObjRefCounts(); | 64 void DebugDisplayObjRefCounts(); |
86 #if ORTHANC_ENABLE_WASM == 1 | 65 |
87 WebAssemblyOracle& oracle_; | 66 OrthancStone::ILoadersContext& loadersContext_; |
88 #else | |
89 ThreadedOracle& oracle_; | |
90 LockingEmitter& lockingEmitter_; | |
91 #endif | |
92 | 67 |
93 std::map<std::string, boost::shared_ptr<OrthancSeriesVolumeProgressiveLoader> > | 68 std::map<std::string, boost::shared_ptr<OrthancSeriesVolumeProgressiveLoader> > |
94 seriesVolumeProgressiveLoaders_; | 69 seriesVolumeProgressiveLoaders_; |
95 std::map<std::string, boost::shared_ptr<OrthancMultiframeVolumeLoader> > | 70 std::map<std::string, boost::shared_ptr<OrthancMultiframeVolumeLoader> > |
96 multiframeVolumeLoaders_; | 71 multiframeVolumeLoaders_; |
97 std::map<std::string, boost::shared_ptr<DicomVolumeImageMPRSlicer> > | 72 std::map<std::string, boost::shared_ptr<OrthancStone::DicomVolumeImageMPRSlicer> > |
98 dicomVolumeImageMPRSlicers_; | 73 dicomVolumeImageMPRSlicers_; |
99 std::map<std::string, boost::shared_ptr<DicomStructureSetLoader> > | 74 std::map<std::string, boost::shared_ptr<DicomStructureSetLoader> > |
100 dicomStructureSetLoaders_; | 75 dicomStructureSetLoaders_; |
101 #ifdef BGO_ENABLE_DICOMSTRUCTURESETLOADER2 | |
102 std::map<std::string, boost::shared_ptr<DicomStructureSetLoader2> > | |
103 dicomStructureSetLoaders2_; | |
104 std::map<std::string, boost::shared_ptr<DicomStructureSet2> > | |
105 dicomStructureSets2_; | |
106 std::map<std::string, boost::shared_ptr<DicomStructureSetSlicer2> > | |
107 dicomStructureSetSlicers2_; | |
108 #endif | |
109 //BGO_ENABLE_DICOMSTRUCTURESETLOADER2 | |
110 }; | 76 }; |
111 } | 77 } |
112 | 78 |