Encapsulate metadata in DomainMetadata

This commit is contained in:
Zach Pomerantz 2016-05-25 12:35:52 -07:00
parent 18696144f1
commit b13e7a1a8f
4 changed files with 21 additions and 10 deletions

View file

@ -15,7 +15,7 @@
#include "DomainServerNodeData.h"
QVariantMap getMetadata() {
void DomainMetadata::generate() {
static const QString DEFAULT_HOSTNAME = "*";
auto nodeList = DependencyManager::get<LimitedNodeList>();
@ -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
}

View file

@ -12,10 +12,19 @@
#define hifi_DomainMetadata_h
#include <QVariantMap>
#include <QJsonObject>
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

View file

@ -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)));

View file

@ -168,6 +168,8 @@ private:
DomainServerSettingsManager _settingsManager;
DomainMetadata _metadata;
HifiSockAddr _iceServerSocket;
std::unique_ptr<NLPacket> _iceServerHeartbeatPacket;