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);