39 , _target( arnNullptr)
40 , _targetMutex( arnNullptr)
41 , _targetNextPending( arnNullptr)
42 , _targetPendingChain( arnNullptr)
50 if (_targetMutex) _targetMutex->lock();
52 if (_targetPendingChain) {
53 *_targetPendingChain = _targetNextPending;
54 if (_targetNextPending)
55 _targetNextPending->_targetPendingChain = _targetPendingChain;
58 if (_targetMutex) _targetMutex->unlock();
66 if (bt > 0)
return bt;
72 Q_ASSERT_X((bt >= QEvent::User) && (bt +
Idx::N <= QEvent::MaxUser),
"ArnEvent::baseType()",
73 "Selected base for ArnEvent number is out of boundary for Qt User event");
76 for (
int i = 0; i <
Idx::N; ++i) {
77 int wantType = bt + i;
78 int gotType = QEvent::registerEventType( wantType);
80 Q_ASSERT_X(gotType == wantType,
"ArnEvent::baseType()",
81 "Assigning event number for ArnEvent is already taken," 82 " use ArnEvent::baseType() to set other base event number for ArnEvents.");
93 return (evType >= bt) && (evType < bt +
Idx::N);
97 #define TO_IDX_RETVAL(evType) \ 98 int retVal = (evType) - baseType(); \ 99 retVal = ((retVal >= 0) && (retVal < Idx::N)) ? retVal : Idx::QtEvent; 118 return Idx::txt().getTxtString(
toIdx( type)) +
119 "(" + QString::number( type) +
")";
131 _target = other->_target;
132 _targetMutex = other->_targetMutex;
146 if (_targetMutex) _targetMutex->lock();
148 _targetPendingChain = targetPendingChain;
150 if (_targetPendingChain) {
151 _targetNextPending = *_targetPendingChain;
152 *_targetPendingChain =
this;
153 if (_targetNextPending)
154 _targetNextPending->_targetPendingChain = &_targetNextPending;
157 if (_targetMutex) _targetMutex->unlock();
163 _targetMutex = targetMutex;
169 QMutex* targetMutex = _targetMutex;
170 if (targetMutex) targetMutex->lock();
172 if (_targetPendingChain) {
175 ArnEvent* evNext = ev->_targetNextPending;
176 ev->_target = arnNullptr;
177 ev->_targetMutex = arnNullptr;
178 *ev->_targetPendingChain = arnNullptr;
179 ev->_targetNextPending = arnNullptr;
184 if (targetMutex) targetMutex->unlock();
192 , _valueData( valueData)
193 , _handleData( &handleData)
196 _valueData =
new QByteArray( *
valueData);
197 if (_handleData && !_handleData->isNull())
198 _handleData =
new ArnLinkHandle( *_handleData);
200 _handleData = arnNullptr;
217 return Type( evType);
229 , _op(
Op::fromInt( op))
245 return Type( evType);
259 , _isLastLink( isLastLink)
268 return Type( evType);
292 return Type( evType);
305 , _monEvType( monEvType)
308 , _sessionHandler( sessionHandler)
317 return Type( evType);
330 , _startLink( startLink)
332 , _isGlobal( isGlobal)
341 return Type( evType);
363 return Type( evType);
390 return Type( evType);
virtual ~ArnEvRefChange()
static int baseType(int setVal=-1)
static QEvent::Type type()
const QByteArray * valueData() const
static QEvent::Type type()
static QEvent::Type type()
virtual ArnEvent * makeHeapClone()
virtual ArnEvent * makeHeapClone()
static QEvent::Type type()
ArnEvMonitor(int monEvType, const QByteArray &data, bool isLocal, void *sessionHandler)
ArnEvZeroRef(ArnLink *arnLink)
virtual ArnEvent * makeHeapClone()
ArnEvValueChange(int sendId, const QByteArray *valueData, const ArnLinkHandle &handleData)
virtual ~ArnEvValueChange()
static bool isArnEvent(int evType)
static QEvent::Type type()
void setTargetPendingChain(ArnEvent **targetPendingChain=arnNullptr)
ArnEvRefChange(int refStep)
static QEvent::Type type()
void inhibitPendingChain()
virtual ArnEvent * makeHeapClone()
virtual ArnEvent * makeHeapClone()
static QEvent::Type type()
ArnEvLinkCreate(const QString &path, ArnLink *arnLink, bool isLastLink)
#define TO_IDX_RETVAL(evType)
static QEvent::Type type()
virtual ArnEvent * makeHeapClone()
ArnEvRetired(ArnLink *startLink, bool isBelow, bool isGlobal)
virtual ArnEvent * makeHeapClone()
ArnEvent * copyOpt(const ArnEvent *other)
void setTargetMutex(QMutex *targetMutex)
void setTarget(void *target)
ArnEvAtomicOp(int op, const QVariant &arg1, const QVariant &arg2)
ArnEvent(QEvent::Type type)
ArnEvModeChange(const QString &path, uint linkId, Arn::ObjectMode mode)
virtual ArnEvent * makeHeapClone()