QCoapMessage Class

The QCoapMessage class holds information about a CoAP message that can be a request or a reply. More...

Header: #include <QCoapMessage>
CMake: find_package(Qt6 REQUIRED COMPONENTS Coap)
target_link_libraries(mytarget PRIVATE Qt6::Coap)
qmake: QT += coap
Inherited By:


Note: All functions in this class are reentrant.

Public Types

enum class Type { Confirmable, NonConfirmable, Acknowledgment, Reset }

Public Functions

QCoapMessage(const QCoapMessage &other)
void addOption(const QCoapOption &option)
void addOption(QCoapOption::OptionName name, const QByteArray &value = QByteArray())
void clearOptions()
bool hasOption(QCoapOption::OptionName name) const
quint16 messageId() const
QCoapOption option(QCoapOption::OptionName name) const
QCoapOption optionAt(int index) const
int optionCount() const
const QList<QCoapOption> &options() const
QList<QCoapOption> options(QCoapOption::OptionName name) const
QByteArray payload() const
void removeOption(const QCoapOption &option)
void removeOption(QCoapOption::OptionName name)
void setMessageId(quint16 id)
void setOptions(const QList<QCoapOption> &options)
void setPayload(const QByteArray &payload)
void setToken(const QByteArray &token)
void setType(const QCoapMessage::Type &type)
void setVersion(quint8 version)
void swap(QCoapMessage &other)
QByteArray token() const
quint8 tokenLength() const
QCoapMessage::Type type() const
quint8 version() const
QCoapMessage &operator=(const QCoapMessage &other)
QCoapMessage &operator=(QCoapMessage &&other)

Detailed Description

It holds information such as the message type, message id, token and other ancillary data.

See also QCoapOption, QCoapReply, and QCoapRequest.

Member Type Documentation

enum class QCoapMessage::Type

Indicates the type of the message.

QCoapMessage::Type::Confirmable0A Confirmable message. The destination endpoint needs to acknowledge the message.
QCoapMessage::Type::NonConfirmable1A Non-Confirmable message. The destination endpoint does not need to acknowledge the message.
QCoapMessage::Type::Acknowledgment2An Acknowledgment message. A message sent or received in reply to a Confirmable message.
QCoapMessage::Type::Reset3A Reset message. This message type is used in case of errors or to stop the ongoing transmission. (For example, it is used to cancel an observation).

Member Function Documentation


Constructs a new QCoapMessage.

QCoapMessage::QCoapMessage(const QCoapMessage &other)

Constructs a shallow copy of other.

[noexcept] QCoapMessage::~QCoapMessage()

Destroys the QCoapMessage.

void QCoapMessage::addOption(const QCoapOption &option)

Adds the given CoAP option.

void QCoapMessage::addOption(QCoapOption::OptionName name, const QByteArray &value = QByteArray())

This is an overloaded function.

Adds the CoAP option with the given name and value.

void QCoapMessage::clearOptions()

Removes all options.

bool QCoapMessage::hasOption(QCoapOption::OptionName name) const

Returns true if the message contains at last one option with name.

quint16 QCoapMessage::messageId() const

Returns the message id.

See also setMessageId().

QCoapOption QCoapMessage::option(QCoapOption::OptionName name) const

Finds and returns the first option with the given name. If there is no such option, returns an invalid QCoapOption with an empty value.

QCoapOption QCoapMessage::optionAt(int index) const

Returns the option at index position.

int QCoapMessage::optionCount() const

Returns the number of options.

const QList<QCoapOption> &QCoapMessage::options() const

Returns the list of options.

See also setOptions().

QList<QCoapOption> QCoapMessage::options(QCoapOption::OptionName name) const

Finds and returns the list of options with the given name.

QByteArray QCoapMessage::payload() const

Returns the payload.

See also setPayload().

void QCoapMessage::removeOption(const QCoapOption &option)

Removes the given option.

void QCoapMessage::removeOption(QCoapOption::OptionName name)

Removes all options with the given name. The CoAP protocol allows for the same option to repeat.

void QCoapMessage::setMessageId(quint16 id)

Sets the message ID to id.

See also messageId().

void QCoapMessage::setOptions(const QList<QCoapOption> &options)

Sets the message options to options.

See also options().

void QCoapMessage::setPayload(const QByteArray &payload)

Sets the message payload to payload. The payload can be represented in one of the content formats defined in CoAP Content-Formats Registry.

Note: CoAP supports common content formats such as XML, JSON, and so on, but these are text based and consequently heavy both in payload and in processing. One of the recommended content formats to use with CoAP is CBOR, which is designed to be used in such contexts.

See also payload(), QCborStreamWriter, and QCborStreamReader.

void QCoapMessage::setToken(const QByteArray &token)

Sets the message token to token.

See also token().

void QCoapMessage::setType(const QCoapMessage::Type &type)

Sets the message type to type.

See also type().

void QCoapMessage::setVersion(quint8 version)

Sets the CoAP version to version.

See also version().

[noexcept] void QCoapMessage::swap(QCoapMessage &other)

Swaps this message with other. This operation is very fast and never fails.

QByteArray QCoapMessage::token() const

Returns the message token.

See also setToken().

quint8 QCoapMessage::tokenLength() const

Returns the token length.

QCoapMessage::Type QCoapMessage::type() const

Returns the message type.

See also setType().

quint8 QCoapMessage::version() const

Returns the CoAP version.

See also setVersion().

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

Copies the contents of other into this message. Returns a reference to this QCoapMessage.

[noexcept] QCoapMessage &QCoapMessage::operator=(QCoapMessage &&other)

Move-assignment operator.

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.