comparison Deprecated/Applications/Generic/NativeStoneApplicationContext.h @ 1399:ff8d2e46ac63

moved Applications into Deprecated
author Alain Mazy <alain@mazy.be>
date Wed, 29 Apr 2020 20:44:31 +0200
parents Applications/Generic/NativeStoneApplicationContext.h@7ec8fea061b9
children
comparison
equal deleted inserted replaced
1398:c5403d52078c 1399:ff8d2e46ac63
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
22 #pragma once
23
24 #include "../../Framework/Deprecated/Viewport/WidgetViewport.h"
25 #include "../../Framework/Deprecated/Volumes/ISlicedVolume.h"
26 #include "../../Framework/Deprecated/Volumes/IVolumeLoader.h"
27
28 #include <list>
29 #include <boost/thread.hpp>
30 #include "../StoneApplicationContext.h"
31
32 namespace OrthancStone
33 {
34 class NativeStoneApplicationContext : public StoneApplicationContext
35 {
36 private:
37 static void UpdateThread(NativeStoneApplicationContext* that);
38
39 boost::recursive_mutex globalMutex_;
40 Deprecated::WidgetViewport centralViewport_;
41 boost::thread updateThread_;
42 bool stopped_;
43 unsigned int updateDelayInMs_;
44
45 public:
46 class GlobalMutexLocker: public boost::noncopyable
47 {
48 private:
49 NativeStoneApplicationContext& that_;
50 boost::recursive_mutex::scoped_lock lock_;
51
52 public:
53 GlobalMutexLocker(NativeStoneApplicationContext& that) :
54 that_(that),
55 lock_(that.globalMutex_)
56 {
57 }
58
59 void SetCentralWidget(boost::shared_ptr<Deprecated::IWidget> widget);
60
61 Deprecated::IViewport& GetCentralViewport()
62 {
63 return that_.centralViewport_;
64 }
65
66 void SetUpdateDelay(unsigned int delayInMs)
67 {
68 that_.updateDelayInMs_ = delayInMs;
69 }
70 };
71
72 NativeStoneApplicationContext();
73
74 void Start();
75
76 void Stop();
77 };
78 }