swift
addatc.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2019 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
4 #include "core/fsd/addatc.h"
5 
6 #include "core/fsd/serializer.h"
7 #include "misc/logmessage.h"
8 
9 namespace swift::core::fsd
10 {
11  AddAtc::AddAtc() : MessageBase() {}
12 
13  AddAtc::AddAtc(const QString &callsign, const QString &realName, const QString &cid, const QString &password,
14  AtcRating rating, int protocolRevision)
15  : MessageBase(callsign, "SERVER"), m_cid(cid), m_password(password), m_rating(rating),
16  m_protocolRevision(protocolRevision), m_realName(realName)
17  {}
18 
19  QStringList AddAtc::toTokens() const
20  {
21  QStringList tokens;
22  tokens.push_back(m_sender);
23  tokens.push_back(m_receiver);
24  tokens.push_back(m_realName);
25  tokens.push_back(m_cid);
26  tokens.push_back(m_password);
27  tokens.push_back(toQString(m_rating));
28  tokens.push_back(QString::number(m_protocolRevision));
29  return tokens;
30  }
31 
32  AddAtc AddAtc::fromTokens(const QStringList &tokens)
33  {
34  if (tokens.size() < 7)
35  {
36  swift::misc::CLogMessage(static_cast<AddAtc *>(nullptr)).warning(u"Wrong number of arguments.");
37  return {};
38  }
39 
40  const AtcRating rating = fromQString<AtcRating>(tokens[5]);
41  const int protocolRevision = tokens[6].toInt();
42  return AddAtc(tokens[0], tokens[2], tokens[3], tokens[4], rating, protocolRevision);
43  }
44 } // namespace swift::core::fsd
Add ATC message.
Definition: addatc.h:19
AtcRating rating() const
Get ATC rating.
Definition: addatc.h:41
static AddAtc fromTokens(const QStringList &tokens)
Construct from tokens.
Definition: addatc.cpp:32
int protocolRevision() const
Get protocol version.
Definition: addatc.h:44
QStringList toTokens() const
Message converted to tokens.
Definition: addatc.cpp:19
FSD message base class.
Definition: messagebase.h:58
QString m_receiver
message receiver
Definition: messagebase.h:89
QString m_sender
message sender
Definition: messagebase.h:88
Class for emitting a log message.
Definition: logmessage.h:27
Derived & warning(const char16_t(&format)[N])
Set the severity to warning, providing a format string.
AtcRating
ATC ratings.
Definition: enums.h:15