X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fprotocol.h;h=47dabd9b2ea39fcb9a380566b98397cb3ecafba5;hp=e626686277245eade9606b7aef6c35ef6845837a;hb=3a3e844f9fcfd12235a0086af75ecd503b621ef4;hpb=f353beded3963b67da6ac0878700dee8e61abfc4 diff --git a/src/common/protocol.h b/src/common/protocol.h index e6266862..47dabd9b 100644 --- a/src/common/protocol.h +++ b/src/common/protocol.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 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 * @@ -23,6 +23,9 @@ #include #include #include +#include + +#include "quassel.h" namespace Protocol { @@ -56,25 +59,26 @@ struct HandshakeMessage { struct RegisterClient : public HandshakeMessage { - inline RegisterClient(const QString &clientVersion, const QString &buildDate, bool sslSupported = false, quint32 features = 0) - : clientVersion(clientVersion) - , buildDate(buildDate) - , sslSupported(sslSupported) - , clientFeatures(features) {} + inline RegisterClient(Quassel::Features clientFeatures, QString clientVersion, QString buildDate, bool sslSupported = false) + : features(std::move(clientFeatures)) + , clientVersion(std::move(clientVersion)) + , buildDate(std::move(buildDate)) + , sslSupported(sslSupported) + {} + Quassel::Features features; QString clientVersion; QString buildDate; // this is only used by the LegacyProtocol in compat mode bool sslSupported; - quint32 clientFeatures; }; struct ClientDenied : public HandshakeMessage { - inline ClientDenied(const QString &errorString) - : errorString(errorString) {} + inline ClientDenied(QString errorString) + : errorString(std::move(errorString)) {} QString errorString; }; @@ -82,19 +86,19 @@ struct ClientDenied : public HandshakeMessage struct ClientRegistered : public HandshakeMessage { - inline ClientRegistered(quint32 coreFeatures, bool coreConfigured, const QVariantList &backendInfo, bool sslSupported, const QVariantList &authenticatorInfo) - : coreFeatures(coreFeatures) - , coreConfigured(coreConfigured) - , backendInfo(backendInfo) - , authenticatorInfo(authenticatorInfo) - , sslSupported(sslSupported) + inline ClientRegistered(Quassel::Features coreFeatures, bool coreConfigured, QVariantList backendInfo, QVariantList authenticatorInfo, bool sslSupported) + : features(std::move(coreFeatures)) + , coreConfigured(coreConfigured) + , backendInfo(std::move(backendInfo)) + , authenticatorInfo(std::move(authenticatorInfo)) + , sslSupported(sslSupported) {} - quint32 coreFeatures; + Quassel::Features features; bool coreConfigured; + QVariantList backendInfo; // TODO: abstract this better // The authenticatorInfo should be optional! - QVariantList backendInfo; // TODO: abstract this better QVariantList authenticatorInfo; // this is only used by the LegacyProtocol in compat mode @@ -104,15 +108,15 @@ struct ClientRegistered : public HandshakeMessage struct SetupData : public HandshakeMessage { - inline SetupData(const QString &adminUser, const QString &adminPassword, const QString &backend, - const QVariantMap &setupData, const QString &authenticator = QString(), - const QVariantMap &authSetupData = QVariantMap()) - : adminUser(adminUser) - , adminPassword(adminPassword) - , backend(backend) - , setupData(setupData) - , authenticator(authenticator) - , authSetupData(authSetupData) + inline SetupData(QString adminUser, QString adminPassword, QString backend, + QVariantMap setupData, QString authenticator = QString(), + QVariantMap authSetupData = QVariantMap()) + : adminUser(std::move(adminUser)) + , adminPassword(std::move(adminPassword)) + , backend(std::move(backend)) + , setupData(std::move(setupData)) + , authenticator(std::move(authenticator)) + , authSetupData(std::move(authSetupData)) {} QString adminUser; @@ -126,8 +130,8 @@ struct SetupData : public HandshakeMessage struct SetupFailed : public HandshakeMessage { - inline SetupFailed(const QString &errorString) - : errorString(errorString) {} + inline SetupFailed(QString errorString) + : errorString(std::move(errorString)) {} QString errorString; }; @@ -141,8 +145,8 @@ struct SetupDone : public HandshakeMessage struct Login : public HandshakeMessage { - inline Login(const QString &user, const QString &password) - : user(user), password(password) {} + inline Login(QString user, QString password) + : user(std::move(user)), password(std::move(password)) {} QString user; QString password; @@ -151,8 +155,8 @@ struct Login : public HandshakeMessage struct LoginFailed : public HandshakeMessage { - inline LoginFailed(const QString &errorString) - : errorString(errorString) {} + inline LoginFailed(QString errorString) + : errorString(std::move(errorString)) {} QString errorString; }; @@ -168,8 +172,8 @@ struct LoginSuccess : public HandshakeMessage struct SessionState : public HandshakeMessage { inline SessionState() {} // needed for QMetaType (for the mono client) - inline SessionState(const QVariantList &identities, const QVariantList &bufferInfos, const QVariantList &networkIds) - : identities(identities), bufferInfos(bufferInfos), networkIds(networkIds) {} + inline SessionState(QVariantList identities, QVariantList bufferInfos, QVariantList networkIds) + : identities(std::move(identities)), bufferInfos(std::move(bufferInfos)), networkIds(std::move(networkIds)) {} QVariantList identities; QVariantList bufferInfos; @@ -186,8 +190,9 @@ struct SignalProxyMessage struct SyncMessage : public SignalProxyMessage { - inline SyncMessage(const QByteArray &className, const QString &objectName, const QByteArray &slotName, const QVariantList ¶ms) - : className(className), objectName(objectName), slotName(slotName), params(params) {} + SyncMessage() = default; + SyncMessage(QByteArray className, QString objectName, QByteArray slotName, QVariantList params) + : className(std::move(className)), objectName(std::move(objectName)), slotName(std::move(slotName)), params(std::move(params)) {} QByteArray className; QString objectName; @@ -198,8 +203,9 @@ struct SyncMessage : public SignalProxyMessage struct RpcCall : public SignalProxyMessage { - inline RpcCall(const QByteArray &slotName, const QVariantList ¶ms) - : slotName(slotName), params(params) {} + RpcCall() = default; + RpcCall(QByteArray slotName, QVariantList params) + : slotName(std::move(slotName)), params(std::move(params)) {} QByteArray slotName; QVariantList params; @@ -208,8 +214,9 @@ struct RpcCall : public SignalProxyMessage struct InitRequest : public SignalProxyMessage { - inline InitRequest(const QByteArray &className, const QString &objectName) - : className(className), objectName(objectName) {} + InitRequest() = default; + InitRequest(QByteArray className, QString objectName) + : className(std::move(className)), objectName(std::move(objectName)) {} QByteArray className; QString objectName; @@ -218,8 +225,9 @@ struct InitRequest : public SignalProxyMessage struct InitData : public SignalProxyMessage { - inline InitData(const QByteArray &className, const QString &objectName, const QVariantMap &initData) - : className(className), objectName(objectName), initData(initData) {} + InitData() = default; + InitData(QByteArray className, QString objectName, QVariantMap initData) + : className(std::move(className)), objectName(std::move(objectName)), initData(std::move(initData)) {} QByteArray className; QString objectName; @@ -231,7 +239,7 @@ struct InitData : public SignalProxyMessage struct HeartBeat { - inline HeartBeat(const QDateTime ×tamp) : timestamp(timestamp) {} + inline HeartBeat(QDateTime timestamp) : timestamp(std::move(timestamp)) {} QDateTime timestamp; }; @@ -239,10 +247,16 @@ struct HeartBeat struct HeartBeatReply { - inline HeartBeatReply(const QDateTime ×tamp) : timestamp(timestamp) {} + inline HeartBeatReply(QDateTime timestamp) : timestamp(std::move(timestamp)) {} QDateTime timestamp; }; -}; +} + +// Required for InternalPeer +Q_DECLARE_METATYPE(Protocol::SyncMessage) +Q_DECLARE_METATYPE(Protocol::RpcCall) +Q_DECLARE_METATYPE(Protocol::InitRequest) +Q_DECLARE_METATYPE(Protocol::InitData)