From b13e7a1a8f48cb61e7862591f5927a04cbf5abe5 Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Wed, 25 May 2016 12:35:52 -0700 Subject: [PATCH] Encapsulate metadata in DomainMetadata --- domain-server/src/DomainMetadata.cpp | 12 ++++++------ domain-server/src/DomainMetadata.h | 15 ++++++++++++--- domain-server/src/DomainServer.cpp | 2 +- domain-server/src/DomainServer.h | 2 ++ 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/domain-server/src/DomainMetadata.cpp b/domain-server/src/DomainMetadata.cpp index f584198b51..224fe1939b 100644 --- a/domain-server/src/DomainMetadata.cpp +++ b/domain-server/src/DomainMetadata.cpp @@ -15,7 +15,7 @@ #include "DomainServerNodeData.h" -QVariantMap getMetadata() { +void DomainMetadata::generate() { static const QString DEFAULT_HOSTNAME = "*"; auto nodeList = DependencyManager::get(); @@ -39,13 +39,13 @@ QVariantMap getMetadata() { } }); - QVariantMap metadata; - static const QString HEARTBEAT_NUM_USERS_KEY = "num_users"; - metadata[HEARTBEAT_NUM_USERS_KEY] = numConnectedUnassigned; + _metadata[HEARTBEAT_NUM_USERS_KEY] = numConnectedUnassigned; static const QString HEARTBEAT_USER_HOSTNAMES_KEY = "user_hostnames"; - metadata[HEARTBEAT_USER_HOSTNAMES_KEY] = userHostnames; + _metadata[HEARTBEAT_USER_HOSTNAMES_KEY] = userHostnames; - return metadata; +#if DEV_BUILD + qDebug() << "Regenerated domain metadata - users:" << _metadata; +#endif } diff --git a/domain-server/src/DomainMetadata.h b/domain-server/src/DomainMetadata.h index 3cd160ce85..5096f1bb3e 100644 --- a/domain-server/src/DomainMetadata.h +++ b/domain-server/src/DomainMetadata.h @@ -12,10 +12,19 @@ #define hifi_DomainMetadata_h #include +#include -QVariantMap getMetadata(); +class DomainMetadata { +public: + QVariantMap toVariantMap() { generate(); return _metadata; } + QJsonObject toJSON() { generate(); return QJsonObject::fromVariantMap(_metadata); } -// TODO: Encapsulate -class DomainMetadata { }; +protected slots: + // TODO: Connect appropriate signals to obviate JIT generation + void generate(); + +protected: + QVariantMap _metadata; +}; #endif // hifi_DomainMetadata_h diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index f05dfd2c6d..9b1fbb1d84 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -1090,7 +1090,7 @@ void DomainServer::sendHeartbeatToMetaverse(const QString& networkAddress) { // Add the metadata to the heartbeat static const QString DOMAIN_HEARTBEAT_KEY = "heartbeat"; - domainObject[DOMAIN_HEARTBEAT_KEY] = QJsonObject::fromVariantMap(getMetadata()); + domainObject[DOMAIN_HEARTBEAT_KEY] = _metadata.toJSON(); QString domainUpdateJSON = QString("{\"domain\":%1}").arg(QString(QJsonDocument(domainObject).toJson(QJsonDocument::Compact))); diff --git a/domain-server/src/DomainServer.h b/domain-server/src/DomainServer.h index 0f93c50468..0a1df41f50 100644 --- a/domain-server/src/DomainServer.h +++ b/domain-server/src/DomainServer.h @@ -168,6 +168,8 @@ private: DomainServerSettingsManager _settingsManager; + DomainMetadata _metadata; + HifiSockAddr _iceServerSocket; std::unique_ptr _iceServerHeartbeatPacket;