swift
clientquery.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/clientquery.h"
5 
6 #include "core/fsd/serializer.h"
7 #include "misc/logmessage.h"
8 
9 namespace swift::core::fsd
10 {
11  ClientQuery::ClientQuery() : MessageBase() {}
12 
13  ClientQuery::ClientQuery(const QString &sender, const QString &clientToBeQueried, ClientQueryType queryType,
14  const QStringList &queryData)
15  : MessageBase(sender, clientToBeQueried), m_queryType(queryType), m_queryData(queryData)
16  {}
17 
18  QStringList ClientQuery::toTokens() const
19  {
20  QStringList tokens;
21  tokens.push_back(m_sender);
22  tokens.push_back(m_receiver);
23  tokens.push_back(toQString(m_queryType));
24  tokens.append(m_queryData);
25  return tokens;
26  }
27 
28  ClientQuery ClientQuery::fromTokens(const QStringList &tokens)
29  {
30  if (tokens.size() < 3)
31  {
32  swift::misc::CLogMessage(static_cast<ClientQuery *>(nullptr)).debug(u"Wrong number of arguments.");
33  return {};
34  }
35 
36  QStringList payload;
37  if (tokens.size() > 3) { payload = tokens.mid(3); }
38  return ClientQuery(tokens[0], tokens[1], fromQString<ClientQueryType>(tokens[2]), payload);
39  }
40 } // namespace swift::core::fsd
This packet is used to query a client’s data.
Definition: clientquery.h:21
static ClientQuery fromTokens(const QStringList &tokens)
Construct from tokens.
Definition: clientquery.cpp:28
QStringList m_queryData
Properties.
Definition: clientquery.h:39
ClientQueryType m_queryType
Properties.
Definition: clientquery.h:38
QStringList toTokens() const
Message converted to tokens.
Definition: clientquery.cpp:18
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 & debug()
Set the severity to debug.
ClientQueryType
Client query types.
Definition: enums.h:72