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_ios_p.h
Go to the documentation of this file.
1// Copyright (C) 2020 Governikus GmbH & Co. KG
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QNEARFIELDTARGET_IOS_P_H
5#define QNEARFIELDTARGET_IOS_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include "qnearfieldtarget_p.h"
19#include "qnearfieldtarget.h"
20
21#include "qndefmessage.h"
22
23#include <QQueue>
24#include <QTimer>
25
26#include <memory>
27#include <deque>
28
30
32{
34
35 public:
37
40};
41
43{
44 void operator()(void *tag);
45};
46
57
59
61{
63
64public:
66 QNearFieldTargetPrivateImpl(void *sessionDelegate, void *tag, QObject *parent = nullptr);
68 void invalidate();
69
70 QByteArray uid() const override;
71 QNearFieldTarget::Type type() const override;
72 QNearFieldTarget::AccessMethods accessMethods() const override;
73
74 int maxCommandLength() const override;
76
77 // NdefAccess
78 bool hasNdefMessage() override;
80 QNearFieldTarget::RequestId writeNdefMessages(const QList<QNdefMessage> &messages) override;
81
82
83 bool isAvailable() const;
84
87
88private:
89 std::unique_ptr<void, NfcDeleter> nfcTag;
90
91 // Owned by the near field manager.
92 void *sessionDelegate = nil;
93 // Owned by the session delegate.
94 QNfcNdefNotifier *notifier = nullptr;
95 bool hasNDEFMessage = false;
96
97 bool connected = false;
99 QNearFieldTarget::RequestId requestInProgress;
100 QQueue<std::pair<QNearFieldTarget::RequestId, QByteArray>> queue;
101 std::deque<NdefOperation> ndefOperations;
102
103 bool connect();
104
105 bool isNdefTag() const;
106
107private Q_SLOTS:
108 void onTargetCheck();
109 void onTargetError(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id);
110 void onExecuteRequest();
111 void onResponseReceived(QNearFieldTarget::RequestId requestId, bool success, QByteArray recvBuffer);
112 // NDEF:
113 void messageRead(const QNdefMessage &ndefMessage, QNearFieldTarget::RequestId request);
114 void messageWritten(QNearFieldTarget::RequestId request);
115};
116
118
119#endif // QNEARFIELDTARGET_IOS_P_H
\inmodule QtCore
Definition qbytearray.h:57
The QNdefMessage class provides an NFC NDEF message.
void targetLost(QNearFieldTargetPrivateImpl *target)
QNearFieldTarget::RequestId writeNdefMessages(const QList< QNdefMessage > &messages) override
int maxCommandLength() const override
QNearFieldTarget::RequestId readNdefMessages() override
~QNearFieldTargetPrivateImpl() override
QNearFieldTargetPrivateImpl(QJniObject intent, const QByteArray uid, QObject *parent=nullptr)
QNearFieldTarget::Type type() const override
QNearFieldTarget::RequestId sendCommand(const QByteArray &command) override
QNearFieldTarget::AccessMethods accessMethods() const override
bool hasNdefMessage() override
QByteArray uid() const override
\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
QObject * parent() const
Returns a pointer to the parent object.
Definition qobject.h:346
\inmodule QtCore
Definition qtimer.h:20
void provideResponse(QNearFieldTarget::RequestId requestId, bool success, QByteArray recvBuffer)
void responseReceived(QNearFieldTarget::RequestId requestId, bool success, QByteArray recvBuffer)
Combined button and popup list for selecting options.
AudioChannelLayoutTag tag
DBusConnection const char DBusError * error
QNearFieldTarget::RequestId requestId
GLenum type
GLenum target
#define Q_OBJECT
#define Q_SLOTS
#define Q_SIGNALS
QNetworkRequest request(url)
QNearFieldTarget::RequestId requestId
void operator()(void *tag)
Definition moc.h:23