swift
Loading...
Searching...
No Matches
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
5
6#include "misc/logmessage.h"
7
8namespace 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
QString m_receiver
message receiver
Definition messagebase.h:86
MessageBase()=default
Default Constructor.
QString m_sender
message sender
Definition messagebase.h:85
static TextMessage fromTokens(const QStringList &tokens)
Construct from tokens.
TextMessage(const QString &sender, const QString &receiver, const QString &message)
Constructor.
QString m_message
message text
Definition textmessage.h:40
QStringList toTokens() const
Message converted to tokens.
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.
QList< T > mid(qsizetype pos, qsizetype length) const const
void push_back(QList< T >::parameter_type value)
qsizetype size() const const
bool startsWith(QChar c, Qt::CaseSensitivity cs) const const
QString join(QChar separator) const const