swift
textmessage.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/textmessage.h"
5 
6 #include "misc/logmessage.h"
7 
8 namespace swift::core::fsd
9 {
10  TextMessage::TextMessage(const QString &sender, const QString &receiver, const QString &message)
11  : MessageBase(sender, receiver), m_message(message)
12  {
13  if (receiver.startsWith('@'))
14  {
15  m_type = RadioMessage;
16  const QStringList frequencyStrings = receiver.split('&');
17  if (!frequencyStrings.isEmpty())
18  {
19  for (QString frequencyString : frequencyStrings)
20  {
21  frequencyString.remove(0, 1);
22  int frequency = frequencyString.toInt() + 100000;
23  m_frequencies.push_back(frequency);
24  }
25  }
26  }
27  }
28 
30  {
31  QStringList tokens;
32  tokens.push_back(m_sender);
33  tokens.push_back(m_receiver);
34  tokens.push_back(m_message);
35  return tokens;
36  }
37 
39  {
40  if (tokens.size() < 3)
41  {
42  swift::misc::CLogMessage(static_cast<TextMessage *>(nullptr)).warning(u"Wrong number of arguments.");
43  return {};
44  };
45 
46  QStringList messageTokens = tokens.mid(2);
47  return { tokens[0], tokens[1], messageTokens.join(":") };
48  }
49 } // namespace swift::core::fsd
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
QString receiver() const
Get message receiver.
Definition: messagebase.h:79
Text, radio or private message.
Definition: textmessage.h:19
static TextMessage fromTokens(const QStringList &tokens)
Construct from tokens.
Definition: textmessage.cpp:38
QString m_message
message text
Definition: textmessage.h:40
QStringList toTokens() const
Message converted to tokens.
Definition: textmessage.cpp:29
QVector< int > m_frequencies
frequencies in case of radio message.
Definition: textmessage.h:42
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.
bool isEmpty() const const
QList< T > mid(qsizetype pos, qsizetype length) const const
void push_back(QList< T >::parameter_type value)
void remove(qsizetype i, qsizetype n)
qsizetype size() const const
QStringList split(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const const
bool startsWith(QChar c, Qt::CaseSensitivity cs) const const
QString join(QChar separator) const const