13 #ifndef hifi_DomainServerNodeData_h
14 #define hifi_DomainServerNodeData_h
16 #include <QtCore/QElapsedTimer>
17 #include <QtCore/QHash>
18 #include <QtCore/QUuid>
19 #include <QtCore/QJsonObject>
26 class DomainServerNodeData :
public NodeData {
28 DomainServerNodeData();
30 const QJsonObject& getStatsJSONObject()
const {
return _statsJSONObject; }
32 void updateJSONStats(QByteArray statsByteArray);
34 void setAssignmentUUID(
const QUuid& assignmentUUID) { _assignmentUUID = assignmentUUID; }
35 const QUuid& getAssignmentUUID()
const {
return _assignmentUUID; }
37 void setUsername(
const QString& username) { _username = username; }
38 const QString& getUsername()
const {
return _username; }
40 QElapsedTimer& getPaymentIntervalTimer() {
return _paymentIntervalTimer; }
42 void setSendingSockAddr(
const SockAddr& sendingSockAddr) { _sendingSockAddr = sendingSockAddr; }
43 const SockAddr& getSendingSockAddr() {
return _sendingSockAddr; }
45 void setIsAuthenticated(
bool isAuthenticated) { _isAuthenticated = isAuthenticated; }
46 bool isAuthenticated()
const {
return _isAuthenticated; }
48 QHash<QUuid, QUuid>& getSessionSecretHash() {
return _sessionSecretHash; }
50 const NodeSet& getNodeInterestSet()
const {
return _nodeInterestSet; }
51 void setNodeInterestSet(
const NodeSet& nodeInterestSet) { _nodeInterestSet = nodeInterestSet; }
53 void setNodeVersion(
const QString& nodeVersion) { _nodeVersion = nodeVersion; }
54 const QString& getNodeVersion() {
return _nodeVersion; }
56 void setHardwareAddress(
const QString& hardwareAddress) { _hardwareAddress = hardwareAddress; }
57 const QString& getHardwareAddress() {
return _hardwareAddress; }
59 void setMachineFingerprint(
const QUuid& machineFingerprint) { _machineFingerprint = machineFingerprint; }
60 const QUuid& getMachineFingerprint() {
return _machineFingerprint; }
62 void setLastDomainCheckinTimestamp(quint64 lastDomainCheckinTimestamp) { _lastDomainCheckinTimestamp = lastDomainCheckinTimestamp; }
63 quint64 getLastDomainCheckinTimestamp() {
return _lastDomainCheckinTimestamp; }
65 void addOverrideForKey(
const QString& key,
const QString& value,
const QString& overrideValue);
66 void removeOverrideForKey(
const QString& key,
const QString& value);
68 const QString& getPlaceName() {
return _placeName; }
69 void setPlaceName(
const QString& placeName) { _placeName = placeName; }
71 bool wasAssigned()
const {
return _wasAssigned; }
72 void setWasAssigned(
bool wasAssigned) { _wasAssigned = wasAssigned; }
74 bool hasCheckedIn()
const {
return _hasCheckedIn; }
75 void setHasCheckedIn(
bool hasCheckedIn) { _hasCheckedIn = hasCheckedIn; }
78 QJsonObject overrideValuesIfNeeded(
const QJsonObject& newStats);
79 QJsonArray overrideValuesIfNeeded(
const QJsonArray& newStats);
81 QHash<QUuid, QUuid> _sessionSecretHash;
82 QUuid _assignmentUUID;
84 QElapsedTimer _paymentIntervalTimer;
86 using StringPairHash = QHash<QPair<QString, QString>, QString>;
87 QJsonObject _statsJSONObject;
88 static StringPairHash _overrideHash;
90 SockAddr _sendingSockAddr;
91 bool _isAuthenticated =
true;
92 NodeSet _nodeInterestSet;
94 QString _hardwareAddress;
95 QUuid _machineFingerprint;
96 quint64 _lastDomainCheckinTimestamp;
99 bool _wasAssigned {
false };
101 bool _hasCheckedIn {
false };