Spec-Zone.ru › Qt 5.6

Класс QNdefRecord

Класс QNdefRecord предоставляет запись NDEF NFC. Подробнее...

Заголовок: #include <QNdefRecord>
qmake: QT += nfc
С момента: Qt 5.2
Наследуется от:

QNdefNfcSmartPosterRecord, QNdefNfcTextRecord и QNdefNfcUriRecord

  • Список всех членов, включая наследуемые

Типы публичного доступа

Перечисление TypeNameFormat { Empty, NfcRtd, Mime, Uri, ExternalRtd, Unknown }

Функции публичного доступа

QNdefRecord()
QNdefRecord(const QNdefRecord &other)
~QNdefRecord()
QByteArray id() const
bool isEmpty() const
bool isRecordType() const
QByteArray payload() const
void setId(const QByteArray &id)
void setPayload(const QByteArray &payload)
void setType(const QByteArray &type)
void setTypeNameFormat(TypeNameFormat typeNameFormat)
QByteArray type() const
TypeNameFormat typeNameFormat() const
bool operator!=(const QNdefRecord &other) const
QNdefRecord & operator=(const QNdefRecord &other)
bool operator==(const QNdefRecord &other) const

Макросы

Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(className, typeNameFormat, type)
Q_DECLARE_NDEF_RECORD(className, typeNameFormat, type, initialPayload)

Подробное описание

Класс QNdefRecord предоставляет запись NDEF NFC.

QNdefRecord и производные классы используются для разбора содержимого сообщений NDEF и создания новых сообщений NDEF.

Используйте typeNameFormat() и setTypeNameFormat(), чтобы получить и установить формат имени типа записи NDEF.

Используйте type() и setType(), чтобы получить и установить тип записи NDEF.

Используйте id() и setId(), чтобы получить и установить идентификатор записи NDEF.

Используйте payload() и setPayload(), чтобы получить и установить полезные данные записи NDEF. isEmpty() может использоваться для проверки, пуста ли полезная нагрузка.

QNdefRecord — это неявно-разделяемый класс. Это означает, что вы можете эффективно преобразовывать между QNdefRecord и специализированными классами записей. Шаблонная функция isRecordType() может использоваться для проверки возможности преобразования. Следующий пример демонстрирует, как проверить, является ли запись QNdefRecord записью NFC RTD Text, и извлечь из нее текстовую информацию.

if (record.isRecordType<QNdefNfcTextRecord>()) {
    QNdefNfcTextRecord textRecord(record);

    qDebug() << textRecord.text();
}

Создание специализированных классов записей NDEF

Специализированные классы записей NDEF можно легко создать с помощью макросов Q_DECLARE_NDEF_RECORD() и Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(). Следующий пример показывает объявление класса гипотетического типа записи example.com:f, который инкапсулирует одно свойство int foo.

class ExampleComF : public QNdefRecord
{
public:
    Q_DECLARE_NDEF_RECORD(ExampleComF, QNdefRecord::ExternalRtd, "example.com:f",
                          QByteArray(sizeof(int), char(0)))

    int foo() const;
    void setFoo(int v);
};

Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(ExampleComF, QNdefRecord::ExternalRtd, "example.com:f")

Разработчику необходимо только предоставить реализации функций foo() и setFoo(), которые анализируют и устанавливают содержимое полезной нагрузки записи NDEF.

Документация по типам членов

Перечисление QNdefRecord::TypeNameFormat

Это перечисление описывает формат имени типа записи NDEF.

Константа Значение Описание
QNdefRecord::Empty 0x00 Пустая запись NDEF, запись не содержит полезной нагрузки
QNdefRecord::NfcRtd 0x01 Тип записи NDEF определен спецификацией NFC RTD
QNdefRecord::Mime 0x02 Тип записи NDEF соответствует структуре, описанной в RFC 2046
QNdefRecord::Uri 0x03 Тип записи NDEF соответствует структуре, описанной в RFC 3986
QNdefRecord::ExternalRtd 0x04 Тип записи NDEF соответствует структуре внешних имен типов, описанной в спецификации NFC RTD
QNdefRecord::Unknown 0x05 Тип записи неизвестен и должен обрабатываться аналогично содержимому с типом MIME 'application/octet-stream' без дополнительного контекста

Документация по функциям членов

QNdefRecord::QNdefRecord()

Создает новую пустую запись NDEF.

QNdefRecord::QNdefRecord(const QNdefRecord &other)

Создает новую запись NDEF, которая является копией other.

QNdefRecord::~QNdefRecord()

Удаляет запись NDEF.

QByteArray QNdefRecord::id() const

Возвращает идентификатор записи NDEF.

См. также setId().

bool QNdefRecord::isEmpty() const

Возвращает true, если запись NDEF содержит пустую полезную нагрузку; в противном случае возвращает false.

Эквивалентно вызову payload().isEmpty().

bool QNdefRecord::isRecordType() const

Возвращает true, если запись NDEF является указанного типа; в противном случае возвращает false.

QByteArray QNdefRecord::payload() const

Возвращает полезную нагрузку записи NDEF.

См. также setPayload().

void QNdefRecord::setId(const QByteArray &id)

Устанавливает идентификатор записи NDEF в id.

См. также id().

void QNdefRecord::setPayload(const QByteArray &payload)

Устанавливает полезную нагрузку записи NDEF в payload.

См. также payload().

void QNdefRecord::setType(const QByteArray &type)

Устанавливает тип записи NDEF в type.

См. также type().

void QNdefRecord::setTypeNameFormat(TypeNameFormat typeNameFormat)

Устанавливает формат имени типа записи NDEF в typeNameFormat.

См. также typeNameFormat().

QByteArray QNdefRecord::type() const

Возвращает тип записи NDEF.

См. также setType().

TypeNameFormat QNdefRecord::typeNameFormat() const

Возвращает формат имени типа записи NDEF.

См. также setTypeNameFormat().

bool QNdefRecord::operator!=(const QNdefRecord &other) const

Возвращает true, если эта запись NDEF не равна other; в противном случае возвращает false.

QNdefRecord &QNdefRecord::operator=(const QNdefRecord &other)

Присваивает этой записи NDEF значение other.

bool QNdefRecord::operator==(const QNdefRecord &other) const

Возвращает true, если other и эта запись NDEF идентичны.

Документация по макросам

Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD(className, typeNameFormat, type)

Этот макрос объявляет специализацию шаблона для функции QNdefRecord::isRecordType().

Этот макрос следует использовать в файле заголовков непосредственно после определения специализированного класса записи NDEF.

className — имя специализированного класса, typeNameFormat — соответствующий QNdefRecord::TypeNameFormat для пользовательского типа, а type — тип без префиксов NID или NSS. То есть example.com:f, а не urn:nfc:ext:example.com:f.

Подробности см. в разделе Создание специализированных классов записей NDEF.

См. также Q_DECLARE_NDEF_RECORD().

Q_DECLARE_NDEF_RECORD(className, typeNameFormat, type, initialPayload)

Этот макрос объявляет конструкторы по умолчанию и копирования для специализированных классов записей NDEF.

className — имя специализированного класса, typeNameFormat — соответствующий QNdefRecord::TypeNameFormat для пользовательского типа, а type — тип без префиксов NID или NSS. То есть example.com:f, а не urn:nfc:ext:example.com:f. initialPayload — начатная полезная нагрузка пустой записи, она должна быть QByteArray или типом, который может быть неявным образом преобразован в QByteArray.

Подробности см. в разделе Создание специализированных классов записей NDEF.

См. также Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qndefrecord.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API