CustusX  2023.01.05-dev+develop.0da12
An IGT application
cxSyncedValue.h
Go to the documentation of this file.
1 /*=========================================================================
2 This file is part of CustusX, an Image Guided Therapy Application.
3 
4 Copyright (c) SINTEF Department of Medical Technology.
5 All rights reserved.
6 
7 CustusX is released under a BSD 3-Clause license.
8 
9 See Lisence.txt (https://github.com/SINTEFMedtek/CustusX/blob/master/License.txt) for details.
10 =========================================================================*/
11 
12 #ifndef CXSYNCEDVALUE_H
13 #define CXSYNCEDVALUE_H
14 
15 #include "cxResourceExport.h"
16 
17 #include <QVariant>
18 #include <QObject>
19 #include "boost/shared_ptr.hpp"
20 
21 namespace cx
22 {
23 
24 typedef boost::shared_ptr<class SyncedValue> SyncedValuePtr;
25 
30 class cxResource_EXPORT SyncedValue: public QObject
31 {
32 Q_OBJECT
33 public:
34  SyncedValue(QVariant val = QVariant());
35  static SyncedValuePtr create(QVariant val = QVariant());
36  void set(QVariant val);
37  QVariant get() const;
38  template<class T>
39  T value() const { return this->get().value<T>(); }
40 private:
41  QVariant mValue;
42 signals:
43  void changed();
44 };
45 
46 } //namespace cx
47 
48 #endif // CXSYNCEDVALUE_H
T value() const
Definition: cxSyncedValue.h:39
boost::shared_ptr< class SyncedValue > SyncedValuePtr
Definition: cxViewGroup.h:30
Namespace for all CustusX production code.