AusweisApp
 
Lade ...
Suche ...
Keine Treffer
DatagramHandlerImpl.h
gehe zur Dokumentation dieser Datei
1
4
5#pragma once
6
7#include "DatagramHandler.h"
8#include "HttpServer.h"
9#include "MulticastLock.h"
10#include "PortFile.h"
11
12#include <QHostAddress>
13#include <QList>
14#include <QNetworkAddressEntry>
15#include <QNetworkInterface>
16#include <QScopedPointer>
17#include <QUdpSocket>
18
19
20namespace governikus
21{
22
24 : public DatagramHandler
25{
26 Q_OBJECT
27 friend class ::test_DatagramHandlerImpl;
28 friend struct QtSharedPointer::CustomDeleter<DatagramHandlerImpl, QtSharedPointer::NormalDeleter>;
29
30 private:
31 QScopedPointer<QUdpSocket, QScopedPointerDeleteLater> mSocket;
32 QScopedPointer<MulticastLock> mMulticastLock;
33 QList<QNetworkAddressEntry> mAllEntries;
34 QList<QHostAddress> mFailedAddresses;
35 quint16 mUsedPort;
36 PortFile mPortFile;
37 bool mEnableListening;
38
39 void resetSocket();
40 [[nodiscard]] bool isValidBroadcastInterface(const QNetworkInterface& pInterface) const;
41 [[nodiscard]] bool isValidAddressEntry(const QNetworkAddressEntry& pEntry) const;
42 [[nodiscard]] QHostAddress getBroadcastAddress(const QNetworkAddressEntry& pEntry) const;
43 [[nodiscard]] bool sendToAddress(const QByteArray& pData, const QHostAddress& pAddress, quint16 pPort = 0, bool pLogError = true);
44 void sendToAddressEntries(const QByteArray& pData, const QList<QNetworkAddressEntry>& pEntries, quint16 pPort);
45
46#if defined(Q_OS_IOS)
47
48 void checkNetworkPermission();
49#endif
50
51 public:
52 DatagramHandlerImpl(bool pEnableListening = true, quint16 pPort = HttpServer::cPort);
53 ~DatagramHandlerImpl() override;
54
55 [[nodiscard]] bool isBound() const override;
56 [[nodiscard]] QList<QNetworkAddressEntry> getAllBroadcastEntries() const override;
57 void send(const QByteArray& pData, const QList<QNetworkAddressEntry>& pEntries) override;
58
59 private Q_SLOTS:
60 void onReadyRead();
61};
62
63
64} // namespace governikus
void send(const QByteArray &pData, const QList< QNetworkAddressEntry > &pEntries) override
Definition DatagramHandlerImpl.cpp:157
QList< QNetworkAddressEntry > getAllBroadcastEntries() const override
Definition DatagramHandlerImpl.cpp:131
bool isBound() const override
Definition DatagramHandlerImpl.cpp:125
DatagramHandlerImpl(bool pEnableListening=true, quint16 pPort=HttpServer::cPort)
Definition DatagramHandlerImpl.cpp:42
DatagramHandler(bool pEnableListening=true)
Definition PortFile.h:16
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17