JS8Call-Improved master
Loading...
Searching...
No Matches
AprsInboundRelay.h
Go to the documentation of this file.
1
5#ifndef APRSINBOUNDRELAY_H
6#define APRSINBOUNDRELAY_H
7
8#include <QDateTime>
9#include <QHash>
10#include <QObject>
11#include <QString>
12
13#include <functional>
14
15class Configuration;
16
20class AprsInboundRelay : public QObject {
21 Q_OBJECT
22
23 public:
28 bool heard = false;
29 QDateTime lastHeardUtc;
30 };
31
32 using CallActivityLookup =
33 std::function<CallActivityInfo(QString const &call)>;
34 using NoticeFn =
35 std::function<void(QDateTime const &utc, QString const &text)>;
36 using EnqueueFn = std::function<void(QString const &message)>;
43 using AckFn =
44 std::function<void(QString const &fromCall, QString const &toCall,
45 QString const &messageId)>;
46
56 AprsInboundRelay(Configuration const *config, CallActivityLookup callLookup,
57 NoticeFn noticeFn, EnqueueFn enqueueFn, AckFn ackFn,
58 QObject *parent = nullptr);
59
60 public slots:
68 void onMessageReceived(QString from, QString to, QString message,
69 QString messageId);
70
71 private:
72 Configuration const *m_config;
73 CallActivityLookup m_callLookup;
74 NoticeFn m_notice;
75 EnqueueFn m_enqueue;
76 AckFn m_ack;
77 QHash<QString, QDateTime> m_ackDedupCache;
78};
79
80#endif
std::function< void(QString const &fromCall, QString const &toCall, QString const &messageId)> AckFn
Callback for APRS message ACKs.
Definition AprsInboundRelay.h:43
void onMessageReceived(QString from, QString to, QString message, QString messageId)
Process an APRS-IS message for relay.
Definition AprsInboundRelay.cpp:100
AprsInboundRelay(Configuration const *config, CallActivityLookup callLookup, NoticeFn noticeFn, EnqueueFn enqueueFn, AckFn ackFn, QObject *parent=nullptr)
Construct a new AprsInboundRelay handler.
Definition AprsInboundRelay.cpp:86
Definition Configuration.h:57
Lightweight lookup info for the heard list.
Definition AprsInboundRelay.h:27