#include "corebuffersyncer.h"
+#include <algorithm>
+#include <iterator>
+#include <set>
+
#include "core.h"
#include "corenetwork.h"
#include "coresession.h"
void CoreBufferSyncer::purgeBufferIds()
{
_purgeBuffers = false;
- QList<BufferInfo> bufferInfos = Core::requestBuffers(_coreSession->user());
- QSet<BufferId> actualBuffers;
- foreach (BufferInfo bufferInfo, bufferInfos) {
- actualBuffers << bufferInfo.bufferId();
- }
+ auto bufferInfos = Core::requestBuffers(_coreSession->user());
+ std::set<BufferId> actualBuffers;
+ std::transform(bufferInfos.cbegin(), bufferInfos.cend(), std::inserter(actualBuffers, actualBuffers.end()),
+ [](auto&& bufferInfo) { return bufferInfo.bufferId(); });
QSet<BufferId> storedIds = lastSeenBufferIds().toSet() + markerLineBufferIds().toSet();
foreach (BufferId bufferId, storedIds) {
- if (!actualBuffers.contains(bufferId)) {
+ if (actualBuffers.find(bufferId) == actualBuffers.end()) {
BufferSyncer::removeBuffer(bufferId);
}
}