1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
/* SPDX-FileCopyrightText: 2020 Casper Meijn <casper@meijn.net>
* SPDX-License-Identifier: GPL-3.0-or-later
*
*/
#include "wsdiscoveryserviceaggregator.h"
#include "wsdiscoveryserviceaggregator_p.h"
WSDiscoveryServiceAggregator::WSDiscoveryServiceAggregator(QObject *parent)
: QObject(parent)
, d_ptr(new WSDiscoveryServiceAggregatorPrivate())
{
}
WSDiscoveryServiceAggregator::~WSDiscoveryServiceAggregator()
{
delete d_ptr;
}
void WSDiscoveryServiceAggregator::updateService(const WSDiscoveryTargetService &receivedService)
{
Q_D(WSDiscoveryServiceAggregator);
auto endpointReference = receivedService.endpointReference();
auto aggregatedService = d->targetServiceMap.value(endpointReference);
if (aggregatedService.isNull()) {
aggregatedService = QSharedPointer<WSDiscoveryTargetService>::create(endpointReference);
d->targetServiceMap.insert(endpointReference, aggregatedService);
}
aggregatedService->setTypeList(receivedService.typeList());
aggregatedService->setScopeList(receivedService.scopeList());
aggregatedService->setXAddrList(receivedService.xAddrList());
aggregatedService->setLastSeen(receivedService.lastSeen());
;
emit serviceUpdated(aggregatedService);
}
|