Add preliminary support of libtorrent v1.2

libtorrent v1.2 should be built with deprecated features enabled.
This commit is contained in:
Vladimir Golovnev (Glassez)
2019-03-06 08:58:07 +03:00
parent 20f2c86d25
commit ead078a38e
37 changed files with 646 additions and 370 deletions

View File

@@ -29,43 +29,27 @@
#ifndef NET_PORTFORWARDER_H
#define NET_PORTFORWARDER_H
#include <QHash>
#include <QObject>
namespace libtorrent
{
class session;
}
namespace Net
{
class PortForwarder : public QObject
{
Q_OBJECT
Q_DISABLE_COPY(PortForwarder)
public:
static void initInstance(libtorrent::session *const provider);
static void freeInstance();
explicit PortForwarder(QObject *parent = nullptr);
~PortForwarder() override;
static PortForwarder *instance();
bool isEnabled() const;
void setEnabled(bool enabled);
virtual bool isEnabled() const = 0;
virtual void setEnabled(bool enabled) = 0;
void addPort(quint16 port);
void deletePort(quint16 port);
virtual void addPort(quint16 port) = 0;
virtual void deletePort(quint16 port) = 0;
private:
explicit PortForwarder(libtorrent::session *const provider, QObject *parent = nullptr);
~PortForwarder();
void start();
void stop();
bool m_active;
libtorrent::session *m_provider;
QHash<quint16, int> m_mappedPorts;
static PortForwarder *m_instance;
};
}