ArnLib  4.0.x
Active Registry Network
ArnCoreItem.hpp
Go to the documentation of this file.
1 // Copyright (C) 2010-2022 Michael Wiklund.
2 // All rights reserved.
3 // Contact: arnlib@wiklunden.se
4 //
5 // This file is part of the ArnLib - Active Registry Network.
6 // Parts of ArnLib depend on Qt and/or other libraries that have their own
7 // licenses. Usage of these other libraries is subject to their respective
8 // license agreements.
9 //
10 // GNU Lesser General Public License Usage
11 // This file may be used under the terms of the GNU Lesser General Public
12 // License version 2.1 as published by the Free Software Foundation and
13 // appearing in the file LICENSE_LGPL.txt included in the packaging of this
14 // file. In addition, as a special exception, you may use the rights described
15 // in the Nokia Qt LGPL Exception version 1.1, included in the file
16 // LGPL_EXCEPTION.txt in this package.
17 //
18 // GNU General Public License Usage
19 // Alternatively, this file may be used under the terms of the GNU General Public
20 // License version 3.0 as published by the Free Software Foundation and appearing
21 // in the file LICENSE_GPL.txt included in the packaging of this file.
22 //
23 // Other Usage
24 // Alternatively, this file may be used in accordance with the terms and conditions
25 // contained in a signed written agreement between you and Michael Wiklund.
26 //
27 // This program is distributed in the hope that it will be useful, but WITHOUT ANY
28 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
29 // PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
30 //
31 
32 #ifndef ARNCOREITEM_HPP
33 #define ARNCOREITEM_HPP
34 
35 #include "ArnLib_global.hpp"
36 #include "Arn.hpp"
37 #include "MQFlags.hpp"
38 
39 class ArnBasicItemPrivate;
40 class ArnEvent;
41 class QThread;
42 
43 
45 
57 {
58  Q_DECLARE_PRIVATE(ArnBasicItem)
59  friend class ArnBasicItemEventHandler;
60 
61 public:
62  struct Heritage {
64  enum E {
65  BasicItem = 0x01,
66  ItemB = 0x02,
67  AdaptItem = 0x04,
68 
69  None = 0x00
70  };
72  };
73 
75 
77  ArnCoreItem();
78 
79  virtual ~ArnCoreItem();
80 
82 
89  QThread* thread() const;
90 
92  void sendArnEventItem( ArnEvent* ev, bool isAlienThread, bool isLocked = false);
93 
94 protected:
95  virtual void arnEvent( QEvent* ev, bool isAlienThread) = 0;
96 
98  void addHeritage( ArnCoreItem::Heritage heritage);
99 
100  ArnCoreItem( ArnBasicItemPrivate& dd);
101  ArnBasicItemPrivate* const d_ptr;
103 
104 private:
105  void init();
106 };
107 
109 
110 #endif // ARNCOREITEM_HPP
Core base class for the inherited ArnItem classes.
Definition: ArnCoreItem.hpp:56
#define MQ_DECLARE_FLAGS(FEStruct)
Flags.
Definition: MQFlagsBase.hpp:49
#define MQ_DECLARE_OPERATORS_FOR_FLAGS(FEStruct)
Definition: MQFlagsBase.hpp:65
E
The heritage track of this item.
Definition: ArnCoreItem.hpp:64
#define ARNLIBSHARED_EXPORT
Base class handle for an Arn Data Object.