comparison Framework/Loaders/LoaderCache.h @ 1337:b1396be5aa27 broker

Moved the fixed loaders back from the dead
author Benjamin Golinvaux <bgo@osimis.io>
date Fri, 03 Apr 2020 16:13:06 +0200
parents Framework/Deprecated/Loaders/LoaderCache.h@9bea7e15b519
children 556b4bc19118
comparison
equal deleted inserted replaced
1334:04055b6b9e2c 1337:b1396be5aa27
1 /**
2 * Stone of Orthanc
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
4 * Department, University Hospital of Liege, Belgium
5 * Copyright (C) 2017-2020 Osimis S.A., Belgium
6 *
7 * This program is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU Affero General Public License
9 * as published by the Free Software Foundation, either version 3 of
10 * the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 **/
20
21 #pragma once
22
23 #include "../Messages/LockingEmitter.h"
24 #include "../../Volumes/DicomVolumeImageMPRSlicer.h"
25 #include "OrthancSeriesVolumeProgressiveLoader.h"
26 #include "OrthancMultiframeVolumeLoader.h"
27 #include "DicomStructureSetLoader.h"
28
29 #include <boost/shared_ptr.hpp>
30
31 #include <map>
32 #include <string>
33 #include <vector>
34
35 namespace OrthancStone
36 {
37 class ILoadersContext;
38 }
39
40 namespace OrthancStone
41 {
42 class LoaderCache
43 {
44 public:
45 LoaderCache(OrthancStone::ILoadersContext& loadersContext);
46
47 boost::shared_ptr<OrthancSeriesVolumeProgressiveLoader>
48 GetSeriesVolumeProgressiveLoader (std::string seriesUuid);
49
50 boost::shared_ptr<OrthancStone::DicomVolumeImageMPRSlicer>
51 GetMultiframeDicomVolumeImageMPRSlicer(std::string instanceUuid);
52
53 boost::shared_ptr<OrthancMultiframeVolumeLoader>
54 GetMultiframeVolumeLoader(std::string instanceUuid);
55
56 boost::shared_ptr<DicomStructureSetLoader>
57 GetDicomStructureSetLoader(
58 std::string instanceUuid,
59 const std::vector<std::string>& initiallyVisibleStructures);
60
61 #ifdef BGO_ENABLE_DICOMSTRUCTURESETLOADER2
62 boost::shared_ptr<DicomStructureSetLoader2>
63 GetDicomStructureSetLoader2(std::string instanceUuid);
64
65 boost::shared_ptr<DicomStructureSetSlicer2>
66 GetDicomStructureSetSlicer2(std::string instanceUuid);
67 #endif
68 //BGO_ENABLE_DICOMSTRUCTURESETLOADER2
69
70 void ClearCache();
71
72 private:
73
74 void DebugDisplayObjRefCounts();
75
76 OrthancStone::ILoadersContext& loadersContext_;
77
78 std::map<std::string, boost::shared_ptr<OrthancSeriesVolumeProgressiveLoader> >
79 seriesVolumeProgressiveLoaders_;
80 std::map<std::string, boost::shared_ptr<OrthancMultiframeVolumeLoader> >
81 multiframeVolumeLoaders_;
82 std::map<std::string, boost::shared_ptr<OrthancStone::DicomVolumeImageMPRSlicer> >
83 dicomVolumeImageMPRSlicers_;
84 std::map<std::string, boost::shared_ptr<DicomStructureSetLoader> >
85 dicomStructureSetLoaders_;
86 #ifdef BGO_ENABLE_DICOMSTRUCTURESETLOADER2
87 std::map<std::string, boost::shared_ptr<DicomStructureSetLoader2> >
88 dicomStructureSetLoaders2_;
89 std::map<std::string, boost::shared_ptr<DicomStructureSet2> >
90 dicomStructureSets2_;
91 std::map<std::string, boost::shared_ptr<DicomStructureSetSlicer2> >
92 dicomStructureSetSlicers2_;
93 #endif
94 //BGO_ENABLE_DICOMSTRUCTURESETLOADER2
95 };
96 }
97