swift
messagebase.h
Go to the documentation of this file.
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 #ifndef SWIFT_CORE_FSD_MESSAGEBASE_H
7 #define SWIFT_CORE_FSD_MESSAGEBASE_H
8 
9 #include <QDebug>
10 #include <QString>
11 #include <QStringBuilder>
12 #include <QStringList>
13 
14 #include "core/swiftcoreexport.h"
15 
18 enum class MessageType
19 {
20  Unknown,
21  AddAtc,
22  AddPilot,
23  AtcDataUpdate,
24  AuthChallenge,
25  AuthResponse,
26  ClientIdentification,
27  ClientQuery,
28  ClientResponse,
29  DeleteATC,
30  DeletePilot,
31  EuroscopeSimData, // Euroscope only
32  FlightPlan,
33  ProController,
34  FsdIdentification,
35  KillRequest,
36  PilotDataUpdate,
37  VisualPilotDataUpdate,
38  VisualPilotDataPeriodic,
39  VisualPilotDataStopped,
40  VisualPilotDataToggle,
41  Ping,
42  Pong,
43  ServerError,
44  ServerHeartbeat,
45  RegistrationInfo, // IVAO only
46  TextMessage,
47  PilotClientCom,
48  RevBClientParts, // IVAO only
49  RevBPilotDescription, // -PD IVAO only not handled in swift
50  Rehost,
51  Mute,
52 };
53 
54 namespace swift::core::fsd
55 {
58  {
59  public:
62 
64  MessageBase(const QString &sender);
65 
67  MessageBase(const QString &sender, const QString &receiver);
68 
70  void setCallsign(const QString &sender) { m_sender = sender; }
71 
73  QString sender() const { return m_sender; }
74 
76  void setReceiver(const QString &receiver) { m_receiver = receiver; }
77 
79  QString receiver() const { return m_receiver; }
80 
82  bool isValid() const { return m_isValid; }
83 
85  void setValid(bool isValid) { m_isValid = isValid; }
86 
87  protected:
88  QString m_sender;
89  QString m_receiver;
90 
91  bool m_isValid = true;
92  };
93 
95  template <class T>
96  QString messageToFSDString(const T &message)
97  {
98  if (!message.isValid()) return {};
99  return message.pdu() % message.toTokens().join(':') % QStringLiteral("\r\n");
100  }
101 } // namespace swift::core::fsd
102 
103 #endif // SWIFT_CORE_FSD_MESSAGEBASE_H
FSD message base class.
Definition: messagebase.h:58
void setCallsign(const QString &sender)
Set callsign.
Definition: messagebase.h:70
QString sender() const
get message sender
Definition: messagebase.h:73
bool isValid() const
Is message valid?
Definition: messagebase.h:82
QString m_receiver
message receiver
Definition: messagebase.h:89
void setReceiver(const QString &receiver)
Set message receiver.
Definition: messagebase.h:76
void setValid(bool isValid)
set message valid
Definition: messagebase.h:85
MessageBase()
Default Constructor.
Definition: messagebase.h:61
QString m_sender
message sender
Definition: messagebase.h:88
QString receiver() const
Get message receiver.
Definition: messagebase.h:79
MessageType
Message type.
Definition: messagebase.h:19
QString messageToFSDString(const T &message)
String which will be send.
Definition: messagebase.h:96
#define SWIFT_CORE_EXPORT
Export a class or function from the library.