swift
serverlist.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 SWIFT_DEFINE_SEQUENCE_MIXINS(swift::misc::network, CServer, CServerList)
7 
8 namespace swift::misc::network
9 {
11 
12  bool CServerList::containsName(const QString &name) const
13  {
14  return std::any_of(cbegin(), cend(), [&](const CServer &s) { return s.matchesName(name); });
15  }
16 
18  {
19  if (name.isEmpty()) { return false; }
20  const CServerList copy(*this);
21  bool removed = false;
22  for (const CServer &server : copy)
23  {
24  if (!server.matchesName(name)) { continue; }
25  this->remove(server);
26  removed = true;
27  }
28  return removed;
29  }
30 
32  {
33  for (CServer &s : *this) { s.setUser(CUser()); }
34  }
35 
37  {
38  return std::any_of(cbegin(), cend(), [&](const CServer &s) { return s.matchesAddressPort(server); });
39  }
40 
42  {
43  if (!server.hasAddressAndPort() || server.getName().isEmpty()) { return; }
44  if (!this->containsAddressPort(server)) { this->push_back(server); }
45  }
46 
48  {
49  for (const CServer &s : servers) { this->addIfAddressNotExists(s); }
50  }
51 
53  {
54  CServerList fsdServers;
55  for (const CServer &s : *this)
56  {
57  if (s.isFsdServer()) { fsdServers.push_back(s); }
58  }
59  return fsdServers;
60  }
61 
63  {
64  for (CServer &s : *this) { s.setFsdSetup(setup); }
65  }
66 } // namespace swift::misc::network
void push_back(const CServer &value)
Appends an element at the end of the sequence.
Definition: sequence.h:305
const_iterator cbegin() const
Returns const iterator at the beginning of the sequence.
Definition: sequence.h:169
int remove(const CServer &object)
Remove all elements equal to the given object, if it is contained.
Definition: sequence.h:435
const_iterator cend() const
Returns const iterator one past the end of the sequence.
Definition: sequence.h:178
Value object for a FSD setup.
Definition: fsdsetup.h:24
Value object encapsulating information of a server.
Definition: server.h:28
bool hasAddressAndPort() const
Address and port?
Definition: server.cpp:103
bool matchesName(const QString &name) const
Matches server name?
Definition: server.cpp:72
bool matchesAddressPort(const CServer &server) const
Same address and port?
Definition: server.cpp:77
const QString & getName() const
Get name.
Definition: server.h:92
void setUser(const CUser &user)
Set user.
Definition: server.h:89
bool isFsdServer() const
A FSD server?
Definition: server.cpp:105
void setFsdSetup(const CFsdSetup &setup)
Set FSD setup.
Definition: server.h:143
Value object encapsulating a list of servers.
Definition: serverlist.h:23
CServerList()=default
Default constructor.
void setFsdSetup(const CFsdSetup &setup)
Set FSD setup for all entries.
Definition: serverlist.cpp:62
bool containsName(const QString &name) const
Contains name.
Definition: serverlist.cpp:12
bool containsAddressPort(const CServer &server)
Contains server with same address/port.
Definition: serverlist.cpp:36
bool removeByName(const QString &name)
Remove by name.
Definition: serverlist.cpp:17
void removeUsers()
Remove passwords.
Definition: serverlist.cpp:31
CServerList findFsdServers() const
Find all FSD servers.
Definition: serverlist.cpp:52
void addIfAddressNotExists(const CServer &server)
Add if address not already exists.
Definition: serverlist.cpp:41
Value object encapsulating information of a user.
Definition: user.h:28
bool isEmpty() const const
#define SWIFT_DEFINE_SEQUENCE_MIXINS(Namespace, T, List)
Explicit template definition of mixins for a CSequence subclass.
Definition: sequence.h:63