add CoAP documentation
This commit is contained in:
parent
1caab0efdc
commit
3023634a11
10
doc/coap.qdoc
Normal file
10
doc/coap.qdoc
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/*!
|
||||||
|
\page coap-overview.html
|
||||||
|
\title CoAP
|
||||||
|
|
||||||
|
In order to interact with a CoAP (Constrained Application Protocol) server guh provides following classes:
|
||||||
|
|
||||||
|
\annotatedlist coap
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
@ -17,8 +17,9 @@
|
|||||||
\li \l{Types of libguh}
|
\li \l{Types of libguh}
|
||||||
\li \l{Device Plugins}{The Device Plugin API}
|
\li \l{Device Plugins}{The Device Plugin API}
|
||||||
\li \l{Hardware Resources}{Hardware resources available for plugins}
|
\li \l{Hardware Resources}{Hardware resources available for plugins}
|
||||||
\li \l{GuhSettings}{Settings of guh}
|
\li \l{GuhSettings}{Settings API of guh}
|
||||||
\li \l{Type Utils}{Global types of guh (Type Utils)}
|
\li \l{Type Utils}{Global types of guh (Type Utils)}
|
||||||
|
\li \l{CoAP}{The CoAP API}
|
||||||
\endlist
|
\endlist
|
||||||
\li \l{Plugins}{The guh plugins}
|
\li \l{Plugins}{The guh plugins}
|
||||||
\list
|
\list
|
||||||
|
|||||||
@ -18,10 +18,55 @@
|
|||||||
* *
|
* *
|
||||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\class Coap
|
||||||
|
\brief The client connection class to a CoAP server.
|
||||||
|
|
||||||
|
\ingroup coap
|
||||||
|
\inmodule libguh
|
||||||
|
|
||||||
|
The Coap class provides a signal solt based communication with a \l{https://tools.ietf.org/html/rfc7252}{CoAP (Constrained Application Protocol)}
|
||||||
|
server. The API of this class was inspired by the \l{http://doc.qt.io/qt-5/qnetworkaccessmanager.html}{QNetworkAccessManager} and was
|
||||||
|
written according to the \l{https://tools.ietf.org/html/rfc7252}{RFC7252}.
|
||||||
|
This class supports also blockwise transfere according to the \l{https://tools.ietf.org/html/draft-ietf-core-block-18}{IETF V18} specifications.
|
||||||
|
|
||||||
|
\sa CoapReply, CoapRequest
|
||||||
|
|
||||||
|
\section2 Example
|
||||||
|
\code
|
||||||
|
MyClass::MyClass(QObject *parent) :
|
||||||
|
QObject(parent)
|
||||||
|
{
|
||||||
|
Coap *coap = new Coap(this);
|
||||||
|
connect(coap, SIGNAL(replyFinished(CoapReply*)), this, SLOT(onReplyFinished(CoapReply*)));
|
||||||
|
|
||||||
|
CoapRequest request(QUrl("coap://coap.me/hello"));
|
||||||
|
coap->get(request);
|
||||||
|
}
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\code
|
||||||
|
void MyClass::onReplyFinished(CoapReply *reply)
|
||||||
|
{
|
||||||
|
if (reply->error() != CoapReply::NoError) {
|
||||||
|
qWarning() << "Reply finished with error" << reply->errorString();
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug() << "Reply finished" << reply;
|
||||||
|
reply->deleteLater();
|
||||||
|
}
|
||||||
|
\endcode
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \fn void Coap::replyFinished(CoapReply *reply);
|
||||||
|
This signal is emitted when a \a reply is finished.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "coap.h"
|
#include "coap.h"
|
||||||
#include "coappdu.h"
|
#include "coappdu.h"
|
||||||
#include "coapoption.h"
|
#include "coapoption.h"
|
||||||
|
|
||||||
|
/*! Constructs a coap access manager with the given \a parent and \a port. */
|
||||||
Coap::Coap(QObject *parent, const quint16 &port) :
|
Coap::Coap(QObject *parent, const quint16 &port) :
|
||||||
QObject(parent),
|
QObject(parent),
|
||||||
m_reply(0)
|
m_reply(0)
|
||||||
@ -34,6 +79,8 @@ Coap::Coap(QObject *parent, const quint16 &port) :
|
|||||||
connect(m_socket, SIGNAL(readyRead()), this, SLOT(onReadyRead()));
|
connect(m_socket, SIGNAL(readyRead()), this, SLOT(onReadyRead()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Performs a ping request to the CoAP server specified in the given \a request.
|
||||||
|
* Returns a \l{CoapReply} to match the response with the request. */
|
||||||
CoapReply *Coap::ping(const CoapRequest &request)
|
CoapReply *Coap::ping(const CoapRequest &request)
|
||||||
{
|
{
|
||||||
CoapReply *reply = new CoapReply(request, this);
|
CoapReply *reply = new CoapReply(request, this);
|
||||||
@ -59,6 +106,8 @@ CoapReply *Coap::ping(const CoapRequest &request)
|
|||||||
return reply;
|
return reply;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Performs a GET request to the CoAP server specified in the given \a request.
|
||||||
|
* Returns a \l{CoapReply} to match the response with the request. */
|
||||||
CoapReply *Coap::get(const CoapRequest &request)
|
CoapReply *Coap::get(const CoapRequest &request)
|
||||||
{
|
{
|
||||||
CoapReply *reply = new CoapReply(request, this);
|
CoapReply *reply = new CoapReply(request, this);
|
||||||
@ -84,6 +133,8 @@ CoapReply *Coap::get(const CoapRequest &request)
|
|||||||
return reply;
|
return reply;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Performs a PUT request to the CoAP server specified in the given \a request and \a data.
|
||||||
|
* Returns a \l{CoapReply} to match the response with the request. */
|
||||||
CoapReply *Coap::put(const CoapRequest &request, const QByteArray &data)
|
CoapReply *Coap::put(const CoapRequest &request, const QByteArray &data)
|
||||||
{
|
{
|
||||||
CoapReply *reply = new CoapReply(request, this);
|
CoapReply *reply = new CoapReply(request, this);
|
||||||
@ -110,6 +161,8 @@ CoapReply *Coap::put(const CoapRequest &request, const QByteArray &data)
|
|||||||
return reply;
|
return reply;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Performs a POST request to the CoAP server specified in the given \a request and \a data.
|
||||||
|
* Returns a \l{CoapReply} to match the response with the request. */
|
||||||
CoapReply *Coap::post(const CoapRequest &request, const QByteArray &data)
|
CoapReply *Coap::post(const CoapRequest &request, const QByteArray &data)
|
||||||
{
|
{
|
||||||
CoapReply *reply = new CoapReply(request, this);
|
CoapReply *reply = new CoapReply(request, this);
|
||||||
@ -136,6 +189,8 @@ CoapReply *Coap::post(const CoapRequest &request, const QByteArray &data)
|
|||||||
return reply;
|
return reply;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Performs a DELETE request to the CoAP server specified in the given \a request.
|
||||||
|
* Returns a \l{CoapReply} to match the response with the request. */
|
||||||
CoapReply *Coap::deleteResource(const CoapRequest &request)
|
CoapReply *Coap::deleteResource(const CoapRequest &request)
|
||||||
{
|
{
|
||||||
CoapReply *reply = new CoapReply(request, this);
|
CoapReply *reply = new CoapReply(request, this);
|
||||||
|
|||||||
@ -18,35 +18,92 @@
|
|||||||
* *
|
* *
|
||||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\class CoapOption
|
||||||
|
\brief Represents the option of a Coap PDU.
|
||||||
|
|
||||||
|
\ingroup coap
|
||||||
|
\inmodule libguh
|
||||||
|
|
||||||
|
The CoapOption class provides an easy way to create / parse CoAP options of a CoAP PDU (Protocol Data Unit). An options
|
||||||
|
can be compared with a HTTP header.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \enum CoapOption::Option
|
||||||
|
Represents the known CoAP options according to \l{https://tools.ietf.org/html/rfc7252#section-3.1}{RFC7252}.
|
||||||
|
|
||||||
|
\value IfMatch
|
||||||
|
|
||||||
|
\value UriHost
|
||||||
|
|
||||||
|
\value ETag
|
||||||
|
|
||||||
|
\value IfNoneMatch
|
||||||
|
|
||||||
|
\value UriPort
|
||||||
|
|
||||||
|
\value LocationPath
|
||||||
|
|
||||||
|
\value UriPath
|
||||||
|
|
||||||
|
\value ContentFormat
|
||||||
|
|
||||||
|
\value MaxAge
|
||||||
|
|
||||||
|
\value UriQuery
|
||||||
|
|
||||||
|
\value Accept
|
||||||
|
|
||||||
|
\value LocationQuery
|
||||||
|
|
||||||
|
\value Block2
|
||||||
|
|
||||||
|
\value Block1
|
||||||
|
|
||||||
|
\value ProxyUri
|
||||||
|
|
||||||
|
\value ProxyScheme
|
||||||
|
|
||||||
|
\value Size1
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
#include "coapoption.h"
|
#include "coapoption.h"
|
||||||
|
|
||||||
#include <QMetaEnum>
|
#include <QMetaEnum>
|
||||||
|
|
||||||
|
/*! Constructs a \l{CoapOption} . */
|
||||||
CoapOption::CoapOption()
|
CoapOption::CoapOption()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Constructs a \l{CoapOption} with the given \a option and option \a data. */
|
||||||
CoapOption::CoapOption(const CoapOption::Option &option, const QByteArray &data) :
|
CoapOption::CoapOption(const CoapOption::Option &option, const QByteArray &data) :
|
||||||
m_option(option),
|
m_option(option),
|
||||||
m_data(data)
|
m_data(data)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Sets the option value of this CoapOption to the given \a option . */
|
||||||
void CoapOption::setOption(const CoapOption::Option &option)
|
void CoapOption::setOption(const CoapOption::Option &option)
|
||||||
{
|
{
|
||||||
m_option = option;
|
m_option = option;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Returns the option value of this CoapOption. */
|
||||||
CoapOption::Option CoapOption::option() const
|
CoapOption::Option CoapOption::option() const
|
||||||
{
|
{
|
||||||
return m_option;
|
return m_option;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Sets the data of this CoapOption to the given \a data. */
|
||||||
void CoapOption::setData(const QByteArray &data)
|
void CoapOption::setData(const QByteArray &data)
|
||||||
{
|
{
|
||||||
m_data = data;
|
m_data = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Returns the data of this CoapOption. */
|
||||||
QByteArray CoapOption::data() const
|
QByteArray CoapOption::data() const
|
||||||
{
|
{
|
||||||
return m_data;
|
return m_data;
|
||||||
|
|||||||
@ -18,6 +18,114 @@
|
|||||||
* *
|
* *
|
||||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\class CoapPdu
|
||||||
|
\brief Represents a CoAP protocol data unit (PDU).
|
||||||
|
|
||||||
|
\ingroup coap
|
||||||
|
\inmodule libguh
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \enum CoapPdu::MessageType
|
||||||
|
|
||||||
|
\value Confirmable
|
||||||
|
\value NonConfirmable
|
||||||
|
\value Acknowledgement
|
||||||
|
\value Reset
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \enum CoapPdu::StatusCode
|
||||||
|
|
||||||
|
The CoAP status codes.
|
||||||
|
|
||||||
|
Methods: \l{https://tools.ietf.org/html/rfc7252#section-5.8}
|
||||||
|
|
||||||
|
Status codes: \l{https://tools.ietf.org/html/rfc7252#section-12.1.2}
|
||||||
|
|
||||||
|
\value Empty
|
||||||
|
0.00 Empty (i.e. response to ping request)
|
||||||
|
\value Get
|
||||||
|
The GET method
|
||||||
|
\value Post
|
||||||
|
The POST method
|
||||||
|
\value Put
|
||||||
|
The PUT method
|
||||||
|
\value Delete
|
||||||
|
The DELETE method
|
||||||
|
\value Created
|
||||||
|
2.01 Created
|
||||||
|
\value Deleted
|
||||||
|
2.02 Deleted
|
||||||
|
\value Valid
|
||||||
|
2.03 Valid
|
||||||
|
\value Changed
|
||||||
|
2.04 Changed
|
||||||
|
\value Content
|
||||||
|
2.05 Content
|
||||||
|
\value Continue
|
||||||
|
2.31 Continue (from \l{https://tools.ietf.org/html/draft-ietf-core-block-18}{Blockwise V18})
|
||||||
|
\value BadRequest
|
||||||
|
4.00 Bad Request
|
||||||
|
\value Unauthorized
|
||||||
|
4.01 Unauthorized
|
||||||
|
\value BadOption
|
||||||
|
4.02 Bad Option
|
||||||
|
\value Forbidden
|
||||||
|
4.03 Forbidden
|
||||||
|
\value NotFound
|
||||||
|
4.04 Not Found
|
||||||
|
\value MethodNotAllowed
|
||||||
|
4.05 Method Not Allowed
|
||||||
|
\value NotAcceptable
|
||||||
|
4.06 Not Acceptable
|
||||||
|
\value RequestEntityIncomplete
|
||||||
|
4.08 Request Entity Incomplete (from \l{https://tools.ietf.org/html/draft-ietf-core-block-18}{Blockwise V18})
|
||||||
|
\value PreconditionFailed
|
||||||
|
4.12 Precondition Failed
|
||||||
|
\value RequestEntityTooLarge
|
||||||
|
4.13 Request Entity Too Large (from \l{https://tools.ietf.org/html/draft-ietf-core-block-18}{Blockwise V18})
|
||||||
|
\value UnsupportedContentFormat
|
||||||
|
4.15 UnsupportedContentFormat
|
||||||
|
\value InternalServerError
|
||||||
|
5.00 Internal Server Error
|
||||||
|
\value NotImplemented
|
||||||
|
5.01 Not Implemented
|
||||||
|
\value BadGateway
|
||||||
|
5.02 Bad Gateway
|
||||||
|
\value ServiceUnavailabl
|
||||||
|
5.03 Service Unavailabl
|
||||||
|
\value GatewayTimeout
|
||||||
|
5.04 Gateway Timeout
|
||||||
|
\value ProxyingNotSupported
|
||||||
|
5.05 Proxying Not Supported
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \enum CoapPdu::ContentType
|
||||||
|
|
||||||
|
The CoAP content types.
|
||||||
|
|
||||||
|
\value TextPlain
|
||||||
|
\value ApplicationLink
|
||||||
|
\value ApplicationXml
|
||||||
|
\value ApplicationOctet
|
||||||
|
\value ApplicationExi
|
||||||
|
\value ApplicationJson
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \enum CoapPdu::Error
|
||||||
|
|
||||||
|
\value NoError
|
||||||
|
\value InvalidTokenError
|
||||||
|
\value InvalidPduSizeError
|
||||||
|
\value InvalidOptionDeltaError
|
||||||
|
\value InvalidOptionLengthError
|
||||||
|
\value UnknownOptionError
|
||||||
|
};
|
||||||
|
|
||||||
|
*/
|
||||||
#include "coappdu.h"
|
#include "coappdu.h"
|
||||||
#include "coapoption.h"
|
#include "coapoption.h"
|
||||||
|
|
||||||
|
|||||||
@ -18,36 +18,125 @@
|
|||||||
* *
|
* *
|
||||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\class CoapReply
|
||||||
|
\brief Represents a reply of a CoAP request.
|
||||||
|
|
||||||
|
\ingroup coap
|
||||||
|
\inmodule libguh
|
||||||
|
|
||||||
|
The CoapReply class contains the data and headers for a request sent with \l{Coap} client.
|
||||||
|
|
||||||
|
\note Please don't forget to delete the reply once it is finished.
|
||||||
|
|
||||||
|
\section2 Example
|
||||||
|
|
||||||
|
\code
|
||||||
|
Coap *coap = new Coap(this);
|
||||||
|
connect(coap, SIGNAL(replyFinished(CoapReply*)), this, SLOT(onReplyFinished(CoapReply*)));
|
||||||
|
|
||||||
|
CoapRequest request(QUrl("coap://example.com/"));
|
||||||
|
|
||||||
|
CoapReply *reply = coap->ping(request);
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\code
|
||||||
|
void MyClass::onReplyFinished(CoapReply *reply)
|
||||||
|
{
|
||||||
|
if (reply->error() != CoapReply::NoError) {
|
||||||
|
qWarning() << "Reply finished with error" << reply->errorString();
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug() << "Reply finished" << reply;
|
||||||
|
reply->deleteLater();
|
||||||
|
}
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
|
||||||
|
\sa Coap, CoapRequest
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \fn void CoapReply::timeout();
|
||||||
|
This signal is emitted when the reply took to long.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \fn void CoapReply::finished();
|
||||||
|
This signal is emitted when the reply is finished.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \fn void CoapReply::error(const Error &code);
|
||||||
|
This signal is emitted when an error occured.
|
||||||
|
|
||||||
|
\sa error(), errorString()
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \enum CoapReply::Error
|
||||||
|
|
||||||
|
\value NoError
|
||||||
|
No error occured. Everything ok.
|
||||||
|
\value HostNotFoundError
|
||||||
|
The remote host name was not found (invalid hostname).
|
||||||
|
\value TimeoutError
|
||||||
|
The server did not respond after 4 retransmissions.
|
||||||
|
\value InvalidUrlSchemeError
|
||||||
|
The given URL does not have a valid scheme.
|
||||||
|
\value InvalidPduError
|
||||||
|
The package data unit (PDU) could not be parsed successfully.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "coapreply.h"
|
#include "coapreply.h"
|
||||||
#include "coappdu.h"
|
#include "coappdu.h"
|
||||||
|
|
||||||
#include <QMetaEnum>
|
#include <QMetaEnum>
|
||||||
|
|
||||||
|
/*! Returns the request for this CoapReply. */
|
||||||
CoapRequest CoapReply::request() const
|
CoapRequest CoapReply::request() const
|
||||||
{
|
{
|
||||||
return m_request;
|
return m_request;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Returns the payload of this CoapReply. The payload will be available once the CoapReply is finished.
|
||||||
|
|
||||||
|
\sa isFinished
|
||||||
|
*/
|
||||||
QByteArray CoapReply::payload() const
|
QByteArray CoapReply::payload() const
|
||||||
{
|
{
|
||||||
return m_payload;
|
return m_payload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Returns true if the reply is finished.
|
||||||
|
|
||||||
|
\sa finished()
|
||||||
|
*/
|
||||||
bool CoapReply::isFinished() const
|
bool CoapReply::isFinished() const
|
||||||
{
|
{
|
||||||
return m_isFinished;
|
return m_isFinished;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Returns true if the reply is running.
|
||||||
|
|
||||||
|
\sa finished()
|
||||||
|
*/
|
||||||
bool CoapReply::isRunning() const
|
bool CoapReply::isRunning() const
|
||||||
{
|
{
|
||||||
return m_timer->isActive();
|
return m_timer->isActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Returns error code of the reply.
|
||||||
|
|
||||||
|
\sa errorString()
|
||||||
|
*/
|
||||||
CoapReply::Error CoapReply::error() const
|
CoapReply::Error CoapReply::error() const
|
||||||
{
|
{
|
||||||
return m_error;
|
return m_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Returns error string of the reply.
|
||||||
|
|
||||||
|
\sa error()
|
||||||
|
*/
|
||||||
QString CoapReply::errorString() const
|
QString CoapReply::errorString() const
|
||||||
{
|
{
|
||||||
QString errorString;
|
QString errorString;
|
||||||
|
|||||||
@ -18,8 +18,18 @@
|
|||||||
* *
|
* *
|
||||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\class CoapRequest
|
||||||
|
\brief Represents a request to a CoAP server.
|
||||||
|
|
||||||
|
\ingroup coap
|
||||||
|
\inmodule libguh
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
#include "coaprequest.h"
|
#include "coaprequest.h"
|
||||||
|
|
||||||
|
/*! Constructs a CoAP request for the given \a url. */
|
||||||
CoapRequest::CoapRequest(const QUrl &url) :
|
CoapRequest::CoapRequest(const QUrl &url) :
|
||||||
m_url(url),
|
m_url(url),
|
||||||
m_contentType(CoapPdu::TextPlain),
|
m_contentType(CoapPdu::TextPlain),
|
||||||
@ -28,31 +38,39 @@ CoapRequest::CoapRequest(const QUrl &url) :
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Sets the URL of this CoAP request to the given \a url. */
|
||||||
void CoapRequest::setUrl(const QUrl &url)
|
void CoapRequest::setUrl(const QUrl &url)
|
||||||
{
|
{
|
||||||
m_url = url;
|
m_url = url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Returns the URL of this CoAP request. */
|
||||||
QUrl CoapRequest::url() const
|
QUrl CoapRequest::url() const
|
||||||
{
|
{
|
||||||
return m_url;
|
return m_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Sets the \l{CoapPdu::ContentType}{ContentType} of this CoAP request to the given \a contentType.
|
||||||
|
* This method will only be used with the PUT and POST method and should describe the content format
|
||||||
|
* of the payload. */
|
||||||
void CoapRequest::setContentType(const CoapPdu::ContentType contentType)
|
void CoapRequest::setContentType(const CoapPdu::ContentType contentType)
|
||||||
{
|
{
|
||||||
m_contentType = contentType;
|
m_contentType = contentType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Returns the content format of the payload. */
|
||||||
CoapPdu::ContentType CoapRequest::contentType() const
|
CoapPdu::ContentType CoapRequest::contentType() const
|
||||||
{
|
{
|
||||||
return m_contentType;
|
return m_contentType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Sets the \l{CoapPdu::MessageType}{MessageType} of this CoAP request to the given \a messageType. */
|
||||||
void CoapRequest::setMessageType(const CoapPdu::MessageType &messageType)
|
void CoapRequest::setMessageType(const CoapPdu::MessageType &messageType)
|
||||||
{
|
{
|
||||||
m_messageType = messageType;
|
m_messageType = messageType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Returns the message type of this CoapRequest. */
|
||||||
CoapPdu::MessageType CoapRequest::messageType() const
|
CoapPdu::MessageType CoapRequest::messageType() const
|
||||||
{
|
{
|
||||||
return m_messageType;
|
return m_messageType;
|
||||||
|
|||||||
@ -18,6 +18,19 @@
|
|||||||
* *
|
* *
|
||||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\class CoreLink
|
||||||
|
\brief Represents a link of a CoRE link format.
|
||||||
|
|
||||||
|
\ingroup coap
|
||||||
|
\inmodule libguh
|
||||||
|
|
||||||
|
This class represents a Constrained RESTful Environments (CoRE) Link format according to the
|
||||||
|
\l{http://tools.ietf.org/html/rfc6690}{RFC6690} specification.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "corelink.h"
|
#include "corelink.h"
|
||||||
|
|
||||||
#include <QMetaEnum>
|
#include <QMetaEnum>
|
||||||
|
|||||||
@ -18,10 +18,34 @@
|
|||||||
* *
|
* *
|
||||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\class CoreLinkParser
|
||||||
|
\brief Provides an easy way to parse a CoRE link list.
|
||||||
|
|
||||||
|
\ingroup coap
|
||||||
|
\inmodule libguh
|
||||||
|
|
||||||
|
\section2 Example
|
||||||
|
|
||||||
|
\code
|
||||||
|
if (reply->contentType == CoapPdu::ApplicationLink) {
|
||||||
|
CoreLinkParser parser(reply->payload());
|
||||||
|
|
||||||
|
foreach (const CoreLink &link, parser.links()) {
|
||||||
|
qDebug() << link;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
\sa CoreLink
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
#include "corelinkparser.h"
|
#include "corelinkparser.h"
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
|
/*! Constructs a CoRE link parser. The given \a data should contain a CoRE link list. */
|
||||||
CoreLinkParser::CoreLinkParser(const QByteArray &data, QObject *parent) :
|
CoreLinkParser::CoreLinkParser(const QByteArray &data, QObject *parent) :
|
||||||
QObject(parent),
|
QObject(parent),
|
||||||
m_data(data)
|
m_data(data)
|
||||||
@ -55,6 +79,7 @@ CoreLinkParser::CoreLinkParser(const QByteArray &data, QObject *parent) :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*! Returns the parsed list of \l{CoreLink}{CoreLinks}.*/
|
||||||
QList<CoreLink> CoreLinkParser::links() const
|
QList<CoreLink> CoreLinkParser::links() const
|
||||||
{
|
{
|
||||||
return m_links;
|
return m_links;
|
||||||
|
|||||||
Reference in New Issue
Block a user