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