X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fpeerfactory.h;h=5a1bb885e25a103fac42dd06facc41f27fd3d3ec;hp=c753bd40ee7c9aed28bd3fd13fec3f4d60e312ec;hb=HEAD;hpb=9c6f27c7bf7cb9dee234383ed9347c077aa2bce9 diff --git a/src/common/peerfactory.h b/src/common/peerfactory.h index c753bd40..5a1bb885 100644 --- a/src/common/peerfactory.h +++ b/src/common/peerfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2022 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,11 +18,13 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef PEERFACTORY_H -#define PEERFACTORY_H +#pragma once + +#include "common-export.h" #include +#include "compressor.h" #include "protocol.h" class QObject; @@ -31,15 +33,23 @@ class QTcpSocket; class AuthHandler; class RemotePeer; -class PeerFactory +class COMMON_EXPORT PeerFactory { - public: // second value is the protocol-specific features - typedef QPair ProtoDescriptor; - - static RemotePeer *createPeer(const ProtoDescriptor &protocol, AuthHandler *authHandler, QTcpSocket *socket, QObject *parent = 0); - static RemotePeer *createPeer(const QVector &protocols, AuthHandler *authHandler, QTcpSocket *socket, QObject *parent = 0); + using ProtoDescriptor = QPair; + using ProtoList = QVector; + + static ProtoList supportedProtocols(); + + static RemotePeer* createPeer(const ProtoDescriptor& protocol, + AuthHandler* authHandler, + QTcpSocket* socket, + Compressor::CompressionLevel level, + QObject* parent = nullptr); + static RemotePeer* createPeer(const ProtoList& protocols, + AuthHandler* authHandler, + QTcpSocket* socket, + Compressor::CompressionLevel level, + QObject* parent = nullptr); }; - -#endif