File indexing completed on 2024-04-28 04:56:59

0001 /**
0002  * SPDX-FileCopyrightText: 2013 Albert Vaca <albertvaka@gmail.com>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 #ifndef LANDEVICELINK_H
0008 #define LANDEVICELINK_H
0009 
0010 #include <QObject>
0011 #include <QPointer>
0012 #include <QSslSocket>
0013 #include <QString>
0014 
0015 #include "backends/devicelink.h"
0016 #include "compositeuploadjob.h"
0017 #include "deviceinfo.h"
0018 #include "uploadjob.h"
0019 #include <kdeconnectcore_export.h>
0020 
0021 class LanLinkProvider;
0022 
0023 class KDECONNECTCORE_EXPORT LanDeviceLink : public DeviceLink
0024 {
0025     Q_OBJECT
0026 
0027 public:
0028     LanDeviceLink(const DeviceInfo &deviceInfo, LanLinkProvider *parent, QSslSocket *socket);
0029     void reset(QSslSocket *socket);
0030 
0031     bool sendPacket(NetworkPacket &np) override;
0032 
0033     DeviceInfo deviceInfo() const override
0034     {
0035         return m_deviceInfo;
0036     }
0037 
0038     QHostAddress hostAddress() const;
0039 
0040 private Q_SLOTS:
0041     void dataReceived();
0042 
0043 private:
0044     QSslSocket *m_socket;
0045     QPointer<CompositeUploadJob> m_compositeUploadJob;
0046     DeviceInfo m_deviceInfo;
0047 };
0048 
0049 #endif