+struct SetupData : public HandshakeMessage
+{
+ 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;
+ QString adminPassword;
+ QString backend;
+ QVariantMap setupData;
+ QString authenticator;
+ QVariantMap authSetupData;
+};
+
+struct SetupFailed : public HandshakeMessage
+{
+ inline SetupFailed(QString errorString)
+ : errorString(std::move(errorString))
+ {}
+
+ QString errorString;
+};
+
+struct SetupDone : public HandshakeMessage
+{};
+
+struct Login : public HandshakeMessage
+{
+ inline Login(QString user, QString password)
+ : user(std::move(user))
+ , password(std::move(password))
+ {}
+
+ QString user;
+ QString password;
+};
+
+struct LoginFailed : public HandshakeMessage
+{
+ inline LoginFailed(QString errorString)
+ : errorString(std::move(errorString))
+ {}
+
+ QString errorString;
+};
+
+struct LoginSuccess : public HandshakeMessage
+{};
+
+// TODO: more generic format
+struct SessionState : public HandshakeMessage
+{
+ inline SessionState() = default; // needed for QMetaType (for the mono client)
+ inline SessionState(QVariantList identities, QVariantList bufferInfos, QVariantList networkIds)
+ : identities(std::move(identities))
+ , bufferInfos(std::move(bufferInfos))
+ , networkIds(std::move(networkIds))
+ {}
+
+ QVariantList identities;
+ QVariantList bufferInfos;
+ QVariantList networkIds;
+};