Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QNdefRecord Class Reference

The QNdefRecord class provides an NFC NDEF record. More...

 #include <QNdefRecord>

Inherited by: QNdefNfcTextRecord and QNdefNfcUriRecord.

This class was introduced in Qt Mobility 1.2.

Public Types

enum TypeNameFormat { Empty, NfcRtd, Mime, Uri, ExternalRtd, Unknown }

Public Functions

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

Macros

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

Detailed Description

The QNdefRecord class provides an NFC NDEF record.

QNdefRecord and derived classes are used to parse the contents of NDEF messages and create new NDEF messages.

Use typeNameFormat(), userTypeNameFormat(), setTypeNameFormat() and setUserTypeNameFormat() to get and set the type name format of the NDEF record.

Use type() and setType() to get and set the type of the NDEF record.

Use id() and setId() to get and set the id of the NDEF record.

Use payload() and setPayload() to get and set the NDEF record payload. isEmpty() can be used to test if the payload is empty.

QNdefRecord is an implicitly shared class. This means you can efficiently convert between QNdefRecord and specialized record classes. The isRecordType() template function can be used to test if a conversion is possible. The following example shows how to test if a QNdefRecord is an NFC RTD Text record and extract the text information from it.

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

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

Creating specialized NDEF record classes

Specialized NDEF record classes can be easily created with the Q_DECLARE_NDEF_RECORD() and Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD() macros. The following example shows the class declaration of the hypothetical example.com:f record type that encapsulates a single int property 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")

The developer only needs to provide implementations for the foo() and setFoo() functions that parse and set the contents of the NDEF record's payload.

Member Type Documentation

enum QNdefRecord::TypeNameFormat

This enum describes the type name format of an NDEF record.

ConstantValueDescription
QNdefRecord::Empty0x00An empty NDEF record, the record does not contain a payload
QNdefRecord::NfcRtd0x01The NDEF record type is defined by an NFC RTD Specification
QNdefRecord::Mime0x02The NDEF record type follows the construct described in RFC 2046
QNdefRecord::Uri0x03The NDEF record type follows the construct described in RFC 3986
QNdefRecord::ExternalRtd0x04The NDEF record type follows the construct for external type names described the NFC RTD Specification
QNdefRecord::Unknown0x05The type of the record is unknown and should be treated similar to content with MIME type 'application/octet-stream' without further context

Member Function Documentation

QNdefRecord::QNdefRecord ()

Constructs a new empty NDEF record.

QNdefRecord::QNdefRecord ( const QNdefRecord & other )

Constructs a new NDEF record that is a copy of other.

QNdefRecord::~QNdefRecord ()

Destroys the NDEF record.

QByteArray QNdefRecord::id () const

Returns the id of the NDEF record.

See also setId().

bool QNdefRecord::isEmpty () const

Returns true if the NDEF record contains an empty payload; otherwise return false.

This is equivalent to calling payload().isEmpty().

bool QNdefRecord::isRecordType () const

Returns true if the NDEF record is of the specified record type; otherwise returns false.

QByteArray QNdefRecord::payload () const

Returns the payload of the NDEF record.

See also setPayload().

void QNdefRecord::setId ( const QByteArray & id )

Sets the id of the NDEF record to id.

See also id().

void QNdefRecord::setPayload ( const QByteArray & payload )

Sets the payload of the NDEF record to payload.

See also payload().

void QNdefRecord::setType ( const QByteArray & type )

Sets the type of the NDEF record to type.

See also type().

void QNdefRecord::setTypeNameFormat ( TypeNameFormat typeNameFormat )

Sets the type name format of the NDEF record to typeNameFormat.

See also typeNameFormat().

QByteArray QNdefRecord::type () const

Returns the type of the NDEF record.

See also setType().

TypeNameFormat QNdefRecord::typeNameFormat () const

Returns the type name format of the NDEF record.

See also setTypeNameFormat().

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

Returns true if this NDEF record does not equal other; otherwise return false.

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

Assigns this NDEF record to other.

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

Returns true if other and this NDEF record are the same.

Macro Documentation

Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD ( className, typeNameFormat, type )

This macro declares a template specialization for the QNdefRecord::isRecordType() function.

This macro should be used in the header file directly after the definition of a specialized NDEF record class.

className is the name of the specialized class, typeNameFormat is the appropriate QNdefRecord::TypeNameFormat for the custom type and type is the type without the NID or NSS prefixes. That is example.com:f not urn:nfc:ext:example.com:f.

See the secton on Creating specialized NDEF record classes for details.

See also Q_DECLARE_NDEF_RECORD().

Q_DECLARE_NDEF_RECORD ( className, typeNameFormat, type, initialPayload )

This macro declares default and copy constructors for specialized NDEF record classes.

className is the name of the specialized class, typeNameFormat is the appropriate QNdefRecord::TypeNameFormat for the custom type and type is the type without the NID or NSS prefixes. That is example.com:f not urn:nfc:ext:example.com:f. initialPayload is the initial payload of an empty record, it must be a QByteArray or a type that can be implicitly converted into a QByteArray.

See the section on Creating specialized NDEF record classes for details.

See also Q_DECLARE_ISRECORDTYPE_FOR_NDEF_RECORD().

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 94
  2. Apercevoir la troisième dimension ou l'utilisation multithreadée d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  3. Pourquoi les programmeurs sont-ils moins payés que les gestionnaires de programmes ? Manquent-ils de pouvoir de négociation ? 45
  4. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  5. Les développeurs détestent-ils les antivirus ? Un programmeur manifeste sa haine envers ces solutions de sécurité 6
  6. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  7. Qt Commercial : Digia organise un webinar gratuit le 27 mars sur la conception d'interfaces utilisateur et d'applications avec le framework 0
Page suivante

Le Qt Developer Network au hasard

Logo

Installation de PySide : binaires et compilation

Le Qt Developer Network est un réseau de développeurs Qt anglophone, où ils peuvent partager leur expérience sur le framework. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt qtmobility-1.2
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web