X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fpeerfactory.h;h=cd70ddc705ffd71a9ac88b28792512e71c981c84;hb=03ee70025a98912c163155955fe3cc3045f629b9;hp=c753bd40ee7c9aed28bd3fd13fec3f4d60e312ec;hpb=9c6f27c7bf7cb9dee234383ed9347c077aa2bce9;p=quassel.git diff --git a/src/common/peerfactory.h b/src/common/peerfactory.h index c753bd40..cd70ddc7 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-2018 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