Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
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
18
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
51
53QNearFieldTargetPrivate::writeNdefMessages(const QList<QNdefMessage> &messages)
54{
55 Q_UNUSED(messages);
56
59 return id;
60}
61
62// TagTypeSpecificAccess
64{
65 return 0;
66}
67
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
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
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
iterator insert(const Key &key, const T &value)
Definition qmap.h:688
T value(const Key &key, const T &defaultValue=T()) const
Definition qmap.h:357
iterator erase(const_iterator it)
Definition qmap.h:619
bool contains(const Key &key) const
Definition qmap.h:341
iterator begin()
Definition qmap.h:598
iterator end()
Definition qmap.h:602
virtual QNearFieldTarget::AccessMethods accessMethods() const
virtual QNearFieldTarget::RequestId readNdefMessages()
virtual int maxCommandLength() const
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:103
void start(int msec)
Starts or restarts the timer with a timeout interval of msec milliseconds.
Definition qtimer.cpp:241
\inmodule QtCore
Definition qvariant.h:65
Combined button and popup list for selecting options.
@ QueuedConnection
DBusConnection const char DBusError * error
typedef QByteArray(EGLAPIENTRYP PFNQGSGETDISPLAYSPROC)()
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...