NDEVR
API Documentation
NtpReply.h
1#pragma once
2
3#include <cmath> /* For std::pow. */
4
5#include <QtCore/QDateTime>
6#include <NDEVR/Time.h>
7#include <NDEVR/TimeSpan.h>
8
9namespace NDEVR
10{
17 class NtpReply {
18 public:
23
31 m_packet(packet),
32 m_destinationTime(destinationTime)
33 {}
34
39 return static_cast<NtpLeapIndicator>(m_packet.basic.flags.leapIndicator);
40 }
41
45 quint8 versionNumber() const {
46 return m_packet.basic.flags.versionNumber;
47 }
48
52 NtpMode mode() const {
53 return static_cast<NtpMode>(m_packet.basic.flags.mode);
54 }
55
59 quint8 stratum() const {
60 return m_packet.basic.stratum;
61 }
62
66 qreal pollInterval() const {
67 return std::pow(static_cast<qreal>(2), static_cast<qreal>(m_packet.basic.poll));
68 }
69
73 qreal precision() const {
74 return std::pow(static_cast<qreal>(2), static_cast<qreal>(m_packet.basic.precision));
75 }
76
81 return m_packet.basic.referenceTimestamp.toTime();
82 }
83
87 Time originTime() const {
88 return m_packet.basic.originateTimestamp.toTime();
89 }
90
94 Time receiveTime() const {
95 return m_packet.basic.receiveTimestamp.toTime();
96 }
97
102 return m_packet.basic.transmitTimestamp.toTime();
103 }
104
109 return m_destinationTime;
110 }
111
115 const NtpFullPacket& rawData() const {
116 return m_packet;
117 }
118
119 private:
120 NtpFullPacket m_packet;
121 Time m_destinationTime;
122 };
123}
NtpLeapIndicator leapIndicator() const
Definition NtpReply.h:38
NtpReply(NtpFullPacket packet, Time destinationTime)
Constructs an NTP reply given an NTP packet and current time.
Definition NtpReply.h:30
NtpReply()
Default constructor, constructs a null NTP reply.
Definition NtpReply.h:22
NtpMode mode() const
Definition NtpReply.h:52
qreal precision() const
Definition NtpReply.h:73
Time originTime() const
Definition NtpReply.h:87
qreal pollInterval() const
Definition NtpReply.h:66
quint8 versionNumber() const
Definition NtpReply.h:45
Time destinationTime() const
Definition NtpReply.h:108
Time receiveTime() const
Definition NtpReply.h:94
quint8 stratum() const
Definition NtpReply.h:59
Time transmitTime() const
Definition NtpReply.h:101
const NtpFullPacket & rawData() const
Definition NtpReply.h:115
Time referenceTime() const
Definition NtpReply.h:80
Represents a timestamp with utilities for manipulation and conversion.
Definition Time.h:62
The primary namespace for the NDEVR SDK.
NtpMode
NTP association modes defining the relationship between communicating peers.
Definition NtpEnums.h:20
NtpLeapIndicator
NTP leap second indicators.
Definition NtpEnums.h:10
Full NTP packet combining mandatory fields and optional authentication.
Definition NtpPacket.h:80