Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qnearfieldtarget_p.cpp
Go to the documentation of this file.
1// Copyright (C) 2017 Governikus GmbH & Co. K
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
5
6#include <QtCore/QCoreApplication>
7#include <QtCore/QElapsedTimer>
8#include <QtCore/QPointer>
9
11
12
15, q_ptr(nullptr)
16{
17}
18
20{
21 return QByteArray();
22}
23
25{
26 return QNearFieldTarget::Type::ProprietaryTag;
27}
28
29QNearFieldTarget::AccessMethods QNearFieldTargetPrivate::accessMethods() const
30{
32}
33
35{
36 return false;
37}
38
39// NdefAccess
41{
42 return false;
43}
44
46{
49 return id;
50}
51
54{
55 Q_UNUSED(messages);
56
59 return id;
60}
61
62// TagTypeSpecificAccess
64{
65 return 0;
66}
67
69{
70 Q_UNUSED(command);
71
74 return id;
75}
76
78 int msecs)
79{
81 timer.start();
82
83 const QPointer<QNearFieldTargetPrivate> weakThis = this;
84
85 do {
86 if (!weakThis)
87 return false;
88
90 return true;
91 else
93 } while (timer.elapsed() <= msecs);
94
96
97 return false;
98}
99
101{
102 return m_decodedResponses.value(id);
103}
104
106 const QVariant &response,
107 bool emitRequestCompleted)
108{
109 for (auto i = m_decodedResponses.begin(), end = m_decodedResponses.end(); i != end; /* erasing */) {
110 // no more external references
111 if (i.key().refCount() == 1)
113 else
114 ++i;
115 }
116
117 m_decodedResponses.insert(id, response);
118
119 if (emitRequestCompleted)
121}
122
125{
126 setResponseForRequest(id, QVariant(), false);
127 QMetaObject::invokeMethod(this, [this, error, id]() {
128 Q_EMIT this->error(error, id);
130}
131
133
134#include "moc_qnearfieldtarget_p.cpp"
\inmodule QtCore
Definition qbytearray.h:57
static void processEvents(QEventLoop::ProcessEventsFlags flags=QEventLoop::AllEvents)
Processes some pending events for the calling thread according to the specified flags.
\inmodule QtCore
@ WaitForMoreEvents
Definition qeventloop.h:29
Definition qlist.h:74
iterator insert(const Key &key, const T &value)
Definition qmap.h:687
T value(const Key &key, const T &defaultValue=T()) const
Definition qmap.h:356
iterator erase(const_iterator it)
Definition qmap.h:618
bool contains(const Key &key) const
Definition qmap.h:340
iterator begin()
Definition qmap.h:597
iterator end()
Definition qmap.h:601
virtual QNearFieldTarget::AccessMethods accessMethods() const
virtual QNearFieldTarget::RequestId readNdefMessages()
virtual int maxCommandLength() const
void error(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id)
QMap< QNearFieldTarget::RequestId, QVariant > m_decodedResponses
virtual QByteArray uid() const
QVariant requestResponse(const QNearFieldTarget::RequestId &id) const
virtual void setResponseForRequest(const QNearFieldTarget::RequestId &id, const QVariant &response, bool emitRequestCompleted=true)
virtual QNearFieldTarget::RequestId sendCommand(const QByteArray &command)
bool waitForRequestCompleted(const QNearFieldTarget::RequestId &id, int msecs=5000)
QNearFieldTargetPrivate(QObject *parent=nullptr)
void requestCompleted(const QNearFieldTarget::RequestId &id)
void reportError(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id)
virtual QNearFieldTarget::RequestId writeNdefMessages(const QList< QNdefMessage > &messages)
virtual QNearFieldTarget::Type type() const
\inmodule QtNfc \inheaderfile QNearFieldTarget
Type
This enum describes the type of tag the target is detected as.
Error
This enum describes the error codes that a near field target reports.
\inmodule QtCore
Definition qobject.h:90
\inmodule QtCore
Definition qpointer.h:18
void start(int msec)
Starts or restarts the timer with a timeout interval of msec milliseconds.
Definition qtimer.cpp:208
\inmodule QtCore
Definition qvariant.h:64
Combined button and popup list for selecting options.
@ QueuedConnection
DBusConnection const char DBusError * error
GLuint GLuint end
GLenum GLuint id
[7]
#define Q_EMIT
#define Q_UNUSED(x)
QObject::connect nullptr
QTimer * timer
[3]
static bool invokeMethod(QObject *obj, const char *member, Qt::ConnectionType, QGenericReturnArgument ret, QGenericArgument val0=QGenericArgument(nullptr), QGenericArgument val1=QGenericArgument(), QGenericArgument val2=QGenericArgument(), QGenericArgument val3=QGenericArgument(), QGenericArgument val4=QGenericArgument(), QGenericArgument val5=QGenericArgument(), QGenericArgument val6=QGenericArgument(), QGenericArgument val7=QGenericArgument(), QGenericArgument val8=QGenericArgument(), QGenericArgument val9=QGenericArgument())
\threadsafe This is an overloaded member function, provided for convenience. It differs from the abov...
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent