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(const QString &callsign, const QString &realName, const QString &cid, const QString &password,
12  AtcRating rating, int protocolRevision)
13  : MessageBase(callsign, "SERVER"), m_cid(cid), m_password(password), m_rating(rating),
14  m_protocolRevision(protocolRevision), m_realName(realName)
15  {}
16 
18  {
19  QStringList tokens;
20  tokens.push_back(m_sender);
21  tokens.push_back(m_receiver);
22  tokens.push_back(m_realName);
23  tokens.push_back(m_cid);
24  tokens.push_back(m_password);
25  tokens.push_back(toQString(m_rating));
26  tokens.push_back(QString::number(m_protocolRevision));
27  return tokens;
28  }
29 
31  {
32  if (tokens.size() < 7)
33  {
34  swift::misc::CLogMessage(static_cast<AddAtc *>(nullptr)).warning(u"Wrong number of arguments.");
35  return {};
36  }
37 
38  const AtcRating rating = fromQString<AtcRating>(tokens[5]);
39  const int protocolRevision = tokens[6].toInt();
40  return { tokens[0], tokens[2], tokens[3], tokens[4], rating, protocolRevision };
41  }
42 } // 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:30
int protocolRevision() const
Get protocol version.
Definition: addatc.h:44
QStringList toTokens() const
Message converted to tokens.
Definition: addatc.cpp:17
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
void push_back(QList< T >::parameter_type value)
qsizetype size() const const
QString number(double n, char format, int precision)