Mercurial > hg > orthanc-stone
comparison Framework/Loaders/LoaderCache.cpp @ 930:bf03cb879eb4
Fixed LoaderCache
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Wed, 24 Jul 2019 18:45:33 +0200 |
parents | 408bcc6c1505 |
children | f75f6cb69c1b |
comparison
equal
deleted
inserted
replaced
929:408bcc6c1505 | 930:bf03cb879eb4 |
---|---|
22 | 22 |
23 #include "OrthancSeriesVolumeProgressiveLoader.h" | 23 #include "OrthancSeriesVolumeProgressiveLoader.h" |
24 #include "OrthancMultiframeVolumeLoader.h" | 24 #include "OrthancMultiframeVolumeLoader.h" |
25 #include "DicomStructureSetLoader.h" | 25 #include "DicomStructureSetLoader.h" |
26 | 26 |
27 #if ORTHANC_ENABLE_WASM == 1 | |
28 # include <unistd.h> | |
29 # include "../Oracle/WebAssemblyOracle.h" | |
30 #else | |
31 # include "../Oracle/ThreadedOracle.h" | |
32 #endif | |
33 | |
27 #include "../Messages/LockingEmitter.h" | 34 #include "../Messages/LockingEmitter.h" |
28 #include "../Volumes/DicomVolumeImage.h" | 35 #include "../Volumes/DicomVolumeImage.h" |
29 #include "../Volumes/DicomVolumeImageMPRSlicer.h" | 36 #include "../Volumes/DicomVolumeImageMPRSlicer.h" |
30 | 37 |
31 #include <Core/OrthancException.h> | 38 #include <Core/OrthancException.h> |
32 #include <Core/Toolbox.h> | 39 #include <Core/Toolbox.h> |
33 | 40 |
34 namespace OrthancStone | 41 namespace OrthancStone |
35 { | 42 { |
36 #if ORTHANC_ENABLE_WASM == 1 | 43 #if ORTHANC_ENABLE_WASM == 1 |
37 LoaderCache::LoaderCache(IOracle& oracle) | 44 LoaderCache::LoaderCache(WebAssemblyOracle& oracle) |
38 : oracle_(oracle) | 45 : oracle_(oracle) |
39 { | 46 { |
40 | 47 |
41 } | 48 } |
42 #else | 49 #else |
43 LoaderCache::LoaderCache(IOracle& oracle, LockingEmitter& lockingEmitter) | 50 LoaderCache::LoaderCache(ThreadedOracle& oracle, LockingEmitter& lockingEmitter) |
44 : oracle_(oracle) | 51 : oracle_(oracle) |
45 , lockingEmitter_(lockingEmitter) | 52 , lockingEmitter_(lockingEmitter) |
46 { | 53 { |
47 } | 54 } |
48 #endif | 55 #endif |
57 Orthanc::Toolbox::ToLowerCase(seriesUuid); | 64 Orthanc::Toolbox::ToLowerCase(seriesUuid); |
58 | 65 |
59 // find in cache | 66 // find in cache |
60 if (seriesVolumeProgressiveLoaders_.find(seriesUuid) == seriesVolumeProgressiveLoaders_.end()) | 67 if (seriesVolumeProgressiveLoaders_.find(seriesUuid) == seriesVolumeProgressiveLoaders_.end()) |
61 { | 68 { |
69 #if ORTHANC_ENABLE_WASM == 1 | |
70 LOG(WARNING) << "Performing request for series " << seriesUuid << " sbrk(0) = " << sbrk(0); | |
71 #else | |
72 LOG(WARNING) << "Performing request for series " << seriesUuid; | |
73 #endif | |
62 boost::shared_ptr<DicomVolumeImage> volumeImage(new DicomVolumeImage); | 74 boost::shared_ptr<DicomVolumeImage> volumeImage(new DicomVolumeImage); |
63 boost::shared_ptr<OrthancSeriesVolumeProgressiveLoader> loader; | 75 boost::shared_ptr<OrthancSeriesVolumeProgressiveLoader> loader; |
64 | 76 |
65 { | 77 { |
66 #if ORTHANC_ENABLE_WASM == 1 | 78 #if ORTHANC_ENABLE_WASM == 1 |
67 loader.reset(new OrthancSeriesVolumeProgressiveLoader(volumeImage, GetParent()->GetOracleRef(), GetParent()->GetOracleRef())); | 79 loader.reset(new OrthancSeriesVolumeProgressiveLoader(volumeImage, oracle_, oracle_)); |
68 #else | 80 #else |
69 LockingEmitter::WriterLock lock(lockingEmitter_); | 81 LockingEmitter::WriterLock lock(lockingEmitter_); |
70 loader.reset(new OrthancSeriesVolumeProgressiveLoader(volumeImage, oracle_, lock.GetOracleObservable())); | 82 loader.reset(new OrthancSeriesVolumeProgressiveLoader(volumeImage, oracle_, lock.GetOracleObservable())); |
71 #endif | 83 #endif |
72 loader->LoadSeries(seriesUuid); | 84 loader->LoadSeries(seriesUuid); |
113 boost::shared_ptr<DicomVolumeImage> volumeImage(new DicomVolumeImage); | 125 boost::shared_ptr<DicomVolumeImage> volumeImage(new DicomVolumeImage); |
114 boost::shared_ptr<OrthancMultiframeVolumeLoader> loader; | 126 boost::shared_ptr<OrthancMultiframeVolumeLoader> loader; |
115 | 127 |
116 { | 128 { |
117 #if ORTHANC_ENABLE_WASM == 1 | 129 #if ORTHANC_ENABLE_WASM == 1 |
118 loader.reset(new OrthancMultiframeVolumeLoader(volumeImage, GetParent()->GetOracleRef(), GetParent()->GetOracleRef())); | 130 loader.reset(new OrthancMultiframeVolumeLoader(volumeImage, oracle_, oracle_)); |
119 #else | 131 #else |
120 LockingEmitter::WriterLock lock(lockingEmitter_); | 132 LockingEmitter::WriterLock lock(lockingEmitter_); |
121 loader.reset(new OrthancMultiframeVolumeLoader(volumeImage, oracle_, lock.GetOracleObservable())); | 133 loader.reset(new OrthancMultiframeVolumeLoader(volumeImage, oracle_, lock.GetOracleObservable())); |
122 #endif | 134 #endif |
123 loader->LoadInstance(instanceUuid); | 135 loader->LoadInstance(instanceUuid); |
165 { | 177 { |
166 boost::shared_ptr<DicomStructureSetLoader> loader; | 178 boost::shared_ptr<DicomStructureSetLoader> loader; |
167 | 179 |
168 { | 180 { |
169 #if ORTHANC_ENABLE_WASM == 1 | 181 #if ORTHANC_ENABLE_WASM == 1 |
170 loader.reset(new DicomStructureSetLoader(volumeImage, GetParent()->GetOracleRef(), GetParent()->GetOracleRef())); | 182 loader.reset(new DicomStructureSetLoader(oracle_, oracle_)); |
171 #else | 183 #else |
172 LockingEmitter::WriterLock lock(lockingEmitter_); | 184 LockingEmitter::WriterLock lock(lockingEmitter_); |
173 loader.reset(new DicomStructureSetLoader(oracle_, lock.GetOracleObservable())); | 185 loader.reset(new DicomStructureSetLoader(oracle_, lock.GetOracleObservable())); |
174 #endif | 186 #endif |
175 loader->LoadInstance(instanceUuid); | 187 loader->LoadInstance(instanceUuid); |