summaryrefslogtreecommitdiffstats
path: root/src/knx/netip/qknxnetiptimernotify.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/knx/netip/qknxnetiptimernotify.cpp')
-rw-r--r--src/knx/netip/qknxnetiptimernotify.cpp56
1 files changed, 49 insertions, 7 deletions
diff --git a/src/knx/netip/qknxnetiptimernotify.cpp b/src/knx/netip/qknxnetiptimernotify.cpp
index 18ea35b..495189b 100644
--- a/src/knx/netip/qknxnetiptimernotify.cpp
+++ b/src/knx/netip/qknxnetiptimernotify.cpp
@@ -192,6 +192,30 @@ QKnxNetIpTimerNotifyProxy::Builder QKnxNetIpTimerNotifyProxy::builder()
\sa QKnxCryptographicEngine
*/
+class QKnxNetIpTimerNotifyBuilderPrivate : public QSharedData
+{
+public:
+ QKnxNetIpTimerNotifyBuilderPrivate() = default;
+ ~QKnxNetIpTimerNotifyBuilderPrivate() = default;
+
+ quint64 m_timer { Q_UINT48_MAX + 1 };
+ QKnxByteArray m_serial;
+ qint32 m_tag { -1 };
+ QKnxByteArray m_authCode;
+};
+
+/*!
+ Creates a new empty timer notify frame builder object.
+*/
+QKnxNetIpTimerNotifyProxy::Builder::Builder()
+ : d_ptr(new QKnxNetIpTimerNotifyBuilderPrivate)
+{}
+
+/*!
+ Destroys the object and frees any allocated resources.
+*/
+QKnxNetIpTimerNotifyProxy::Builder::~Builder() = default;
+
/*!
Sets the timer value to \a timerValue and returns a reference to the
builder.
@@ -203,7 +227,7 @@ QKnxNetIpTimerNotifyProxy::Builder QKnxNetIpTimerNotifyProxy::builder()
QKnxNetIpTimerNotifyProxy::Builder &
QKnxNetIpTimerNotifyProxy::Builder::setTimerValue(quint48 timerValue)
{
- m_timer = timerValue;
+ d_ptr->m_timer = timerValue;
return *this;
}
@@ -216,7 +240,7 @@ QKnxNetIpTimerNotifyProxy::Builder &
QKnxNetIpTimerNotifyProxy::Builder &
QKnxNetIpTimerNotifyProxy::Builder::setSerialNumber(const QKnxByteArray &serialNumber)
{
- m_serial = serialNumber;
+ d_ptr->m_serial = serialNumber;
return *this;
}
@@ -230,7 +254,7 @@ QKnxNetIpTimerNotifyProxy::Builder &
*/
QKnxNetIpTimerNotifyProxy::Builder &QKnxNetIpTimerNotifyProxy::Builder::setMessageTag(quint16 tag)
{
- m_tag = tag;
+ d_ptr->m_tag = tag;
return *this;
}
@@ -242,7 +266,7 @@ QKnxNetIpTimerNotifyProxy::Builder &QKnxNetIpTimerNotifyProxy::Builder::setMessa
QKnxNetIpTimerNotifyProxy::Builder &
QKnxNetIpTimerNotifyProxy::Builder::setMessageAuthenticationCode(const QKnxByteArray &data)
{
- m_authCode = data;
+ d_ptr->m_authCode = data;
return *this;
}
@@ -256,11 +280,29 @@ QKnxNetIpTimerNotifyProxy::Builder &
*/
QKnxNetIpFrame QKnxNetIpTimerNotifyProxy::Builder::create() const
{
- if (m_timer <= Q_UINT48_MAX && m_serial.size() == 6 && m_tag >= 0 && m_authCode.size() == 16) {
- return { QKnxNetIp::ServiceType::TimerNotify, QKnxUtils::QUint48::bytes(m_timer)
- + m_serial + QKnxUtils::QUint16::bytes(m_tag) + m_authCode };
+ if (d_ptr->m_timer <= Q_UINT48_MAX && d_ptr->m_serial.size() == 6 && d_ptr->m_tag >= 0
+ && d_ptr->m_authCode.size() == 16) {
+ return { QKnxNetIp::ServiceType::TimerNotify, QKnxUtils::QUint48::bytes(d_ptr->m_timer)
+ + d_ptr->m_serial + QKnxUtils::QUint16::bytes(d_ptr->m_tag) + d_ptr->m_authCode };
}
return { QKnxNetIp::ServiceType::TimerNotify };
}
+/*!
+ Constructs a copy of \a other.
+*/
+QKnxNetIpTimerNotifyProxy::Builder::Builder(const Builder &other)
+ : d_ptr(other.d_ptr)
+{}
+
+/*!
+ Assigns the specified \a other to this object.
+*/
+QKnxNetIpTimerNotifyProxy::Builder &
+ QKnxNetIpTimerNotifyProxy::Builder::operator=(const Builder &other)
+{
+ d_ptr = other.d_ptr;
+ return *this;
+}
+
QT_END_NAMESPACE