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 
13 
14  bool CServerList::containsName(const QString &name) const
15  {
16  for (const CServer &s : *this)
17  {
18  if (s.matchesName(name)) { return true; }
19  }
20  return false;
21  }
22 
23  bool CServerList::removeByName(const QString &name)
24  {
25  if (name.isEmpty()) { return false; }
26  const CServerList copy(*this);
27  bool removed = false;
28  for (const CServer &server : copy)
29  {
30  if (!server.matchesName(name)) { continue; }
31  this->remove(server);
32  removed = true;
33  }
34  return removed;
35  }
36 
38  {
39  for (CServer &s : *this) { s.setUser(CUser()); }
40  }
41 
43  {
44  for (const CServer &s : *this)
45  {
46  if (s.matchesAddressPort(server)) { return true; }
47  }
48  return false;
49  }
50 
52  {
53  if (!server.hasAddressAndPort() || server.getName().isEmpty()) { return; }
54  if (!this->containsAddressPort(server)) { this->push_back(server); }
55  }
56 
58  {
59  for (const CServer &s : servers) { this->addIfAddressNotExists(s); }
60  }
61 
63  {
64  CServerList fsdServers;
65  for (const CServer &s : *this)
66  {
67  if (s.isFsdServer()) { fsdServers.push_back(s); }
68  }
69  return fsdServers;
70  }
71 
73  {
74  for (CServer &s : *this) { s.setFsdSetup(setup); }
75  }
76 } // namespace swift::misc::network
void push_back(const CServer &value)
Appends an element at the end of the sequence.
Definition: sequence.h:305
int remove(const CServer &object)
Remove all elements equal to the given object, if it is contained.
Definition: sequence.h:435
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 constructor.
Definition: serverlist.cpp:10
void setFsdSetup(const CFsdSetup &setup)
Set FSD setup for all entries.
Definition: serverlist.cpp:72
bool containsName(const QString &name) const
Contains name.
Definition: serverlist.cpp:14
bool containsAddressPort(const CServer &server)
Contains server with same address/port.
Definition: serverlist.cpp:42
bool removeByName(const QString &name)
Remove by name.
Definition: serverlist.cpp:23
void removeUsers()
Remove passwords.
Definition: serverlist.cpp:37
CServerList findFsdServers() const
Find all FSD servers.
Definition: serverlist.cpp:62
void addIfAddressNotExists(const CServer &server)
Add if address not already exists.
Definition: serverlist.cpp:51
Value object encapsulating information of a user.
Definition: user.h:28
#define SWIFT_DEFINE_SEQUENCE_MIXINS(Namespace, T, List)
Explicit template definition of mixins for a CSequence subclass.
Definition: sequence.h:63