Files
pilotclient/src/blackmisc/network/clientlist.cpp
Mat Sutcliffe a592bb2bbe Include style
2021-09-18 15:07:49 +01:00

44 lines
1.4 KiB
C++

/* Copyright (C) 2013
* swift project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution. No part of swift project, including this file, may be copied, modified, propagated,
* or distributed except according to the terms contained in the LICENSE file.
*/
#include "blackmisc/network/clientlist.h"
using namespace BlackMisc::Aviation;
namespace BlackMisc::Network
{
CClientList::CClientList() { }
CClientList::CClientList(const CSequence &other) : CSequence<CClient>(other)
{ }
bool CClientList::hasCapability(const Aviation::CCallsign &callsign, CClient::Capability capability) const
{
return this->getCapabilities(callsign).testFlag(capability);
}
CClient::Capabilities CClientList::getCapabilities(const Aviation::CCallsign &callsign) const
{
if (this->isEmpty()) { return static_cast<CClient::Capabilities>(CClient::None); }
return this->findFirstByCallsign(callsign).getCapabilities();
}
CClientList CClientList::filterPilotsByCallsign(const CCallsignSet &callsigns) const
{
CClientList filtered;
for (const CClient &client : *this)
{
if (client.isAtc() || callsigns.contains(client.getCallsign()))
{
filtered.push_back(client);
}
}
return filtered;
}
} // namespace