mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 03:44:02 +02:00
Only check user metadata before sending
This commit is contained in:
parent
09e0a2ced7
commit
9926c80917
4 changed files with 27 additions and 3 deletions
|
@ -79,11 +79,11 @@ void DomainMetadata::setDescriptors(QVariantMap& settings) {
|
|||
_metadata[DESCRIPTORS] = descriptors;
|
||||
|
||||
#if DEV_BUILD || PR_BUILD
|
||||
qDebug() << "Regenerated domain metadata - descriptors:" << descriptors;
|
||||
qDebug() << "Domain metadata descriptors set:" << descriptors;
|
||||
#endif
|
||||
}
|
||||
|
||||
void DomainMetadata::usersChanged() {
|
||||
void DomainMetadata::updateUsers() {
|
||||
static const QString DEFAULT_HOSTNAME = "*";
|
||||
|
||||
auto nodeList = DependencyManager::get<LimitedNodeList>();
|
||||
|
@ -119,6 +119,14 @@ void DomainMetadata::usersChanged() {
|
|||
_metadata[USERS] = users;
|
||||
|
||||
#if DEV_BUILD || PR_BUILD
|
||||
qDebug() << "Regenerated domain metadata - users:" << users;
|
||||
qDebug() << "Domain metadata users updated:" << users;
|
||||
#endif
|
||||
}
|
||||
|
||||
void DomainMetadata::usersChanged() {
|
||||
++_tic;
|
||||
|
||||
#if DEV_BUILD || PR_BUILD
|
||||
qDebug() << "Domain metadata users change detected";
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
#ifndef hifi_DomainMetadata_h
|
||||
#define hifi_DomainMetadata_h
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include <QVariantMap>
|
||||
#include <QJsonObject>
|
||||
|
||||
|
@ -39,17 +41,25 @@ Q_OBJECT
|
|||
public:
|
||||
DomainMetadata();
|
||||
|
||||
// Returns the last set metadata
|
||||
// If connected users have changed, metadata may need to be updated
|
||||
// this should be checked by storing tic = getTic() between calls
|
||||
// and testing it for equality before the next get (tic == getTic())
|
||||
QJsonObject get() { return QJsonObject::fromVariantMap(_metadata); }
|
||||
QJsonObject getUsers() { return QJsonObject::fromVariantMap(_metadata[USERS].toMap()); }
|
||||
QJsonObject getDescriptors() { return QJsonObject::fromVariantMap(_metadata[DESCRIPTORS].toMap()); }
|
||||
|
||||
uint32_t getTic() { return _tic; }
|
||||
|
||||
void setDescriptors(QVariantMap& settings);
|
||||
void updateUsers();
|
||||
|
||||
public slots:
|
||||
void usersChanged();
|
||||
|
||||
protected:
|
||||
QVariantMap _metadata;
|
||||
uint32_t _tic{ 0 };
|
||||
};
|
||||
|
||||
#endif // hifi_DomainMetadata_h
|
||||
|
|
|
@ -1101,6 +1101,11 @@ void DomainServer::sendHeartbeatToMetaverse(const QString& networkAddress) {
|
|||
|
||||
// Add the metadata to the heartbeat
|
||||
static const QString DOMAIN_HEARTBEAT_KEY = "heartbeat";
|
||||
auto tic = _metadata.getTic();
|
||||
if (_metadataTic != tic) {
|
||||
_metadataTic = tic;
|
||||
_metadata.updateUsers();
|
||||
}
|
||||
domainObject[DOMAIN_HEARTBEAT_KEY] = _metadata.getUsers();
|
||||
|
||||
QString domainUpdateJSON = QString("{\"domain\":%1}").arg(QString(QJsonDocument(domainObject).toJson(QJsonDocument::Compact)));
|
||||
|
|
|
@ -171,6 +171,7 @@ private:
|
|||
DomainServerSettingsManager _settingsManager;
|
||||
|
||||
DomainMetadata _metadata;
|
||||
uint32_t _metadataTic{ 0 };
|
||||
|
||||
HifiSockAddr _iceServerSocket;
|
||||
std::unique_ptr<NLPacket> _iceServerHeartbeatPacket;
|
||||
|
|
Loading…
Reference in a new issue