diff options
Diffstat (limited to 'server-v1/source/EpistmoolServer/Protocol/Command.hpp')
-rw-r--r-- | server-v1/source/EpistmoolServer/Protocol/Command.hpp | 84 |
1 files changed, 72 insertions, 12 deletions
diff --git a/server-v1/source/EpistmoolServer/Protocol/Command.hpp b/server-v1/source/EpistmoolServer/Protocol/Command.hpp index 9ec9786..6d6ecd6 100644 --- a/server-v1/source/EpistmoolServer/Protocol/Command.hpp +++ b/server-v1/source/EpistmoolServer/Protocol/Command.hpp @@ -3,6 +3,7 @@ #include "all_fwd.hpp" #include <QLatin1String> +#include <QString> #include <QVersionNumber> #include <cstddef> #include <memory> @@ -17,19 +18,16 @@ class ProtocolMessage Q_GADGET public: - struct KindTrait - { + struct KindTrait { bool isC2S; bool hasReply; }; - enum Kind - { + enum Kind { SessionAuth, SessionDestroy, WorkspaceCreate, - WorkspaceOpen, WorkspaceFetchIndex, WorkspaceFetchKnowledge, @@ -53,8 +51,7 @@ public: static std::unique_ptr<ProtocolReply> createReply(Kind kind); static const KindTrait& getKindTrait(Kind kind); - enum Variant - { + enum Variant { RequestVariant, ReplyVariant, }; @@ -73,15 +70,17 @@ protected: virtual void deserializeFields(const QJsonObject& object) = 0; }; -struct ProtocolRequest : public ProtocolMessage +class ProtocolRequest : public ProtocolMessage { +public: ProtocolRequest(Kind kind); static QJsonObject serialize(const ProtocolRequest& msg); static std::unique_ptr<ProtocolRequest> deserialize(const QJsonObject& object); }; -struct ProtocolReply : public ProtocolMessage +class ProtocolReply : public ProtocolMessage { +public: int sequence; ProtocolReply(Kind kind); @@ -92,8 +91,9 @@ struct ProtocolReply : public ProtocolMessage // =========================== // Individual messages classes -struct ProtocolRequest_SessionAuth : public ProtocolRequest +class ProtocolRequest_SessionAuth : public ProtocolRequest { +public: int theSession; bool createIfInvalid; @@ -104,8 +104,9 @@ protected: virtual void deserializeFields(const QJsonObject& object) override; }; -struct ProtocolReply_SessionAuth : public ProtocolReply +class ProtocolReply_SessionAuth : public ProtocolReply { +public: /// The same value as provided in the request message. /// If \l ProcotolCommandSessionAuth::createIfValid is set and the given session is invalid, a new session is created and written here instead of the original value. int theSession; @@ -117,8 +118,67 @@ protected: virtual void deserializeFields(const QJsonObject& object) override; }; -struct ProtocolNotification_WorkspaceUpdate : public ProtocolRequest +class ProtocolRequest_SessionDestroy : public ProtocolRequest +{ +public: + // TODO + + ProtocolRequest_SessionDestroy(); + +protected: + virtual void serializeFields(QJsonObject& object) const override; + virtual void deserializeFields(const QJsonObject& object) override; +}; + +class ProtocolReply_SessionDestroy : public ProtocolReply +{ +public: + // TODO + + ProtocolReply_SessionDestroy(); + +protected: + virtual void serializeFields(QJsonObject& object) const override; + virtual void deserializeFields(const QJsonObject& object) override; +}; + +class ProtocolRequest_WorkspaceFetchIndex : public ProtocolRequest +{ +public: + QString knowledgeFilter; + QString keywordFilter; + int knowledgeMaxCount; + int keywordMaxCount; + + ProtocolRequest_WorkspaceFetchIndex(); + +protected: + virtual void serializeFields(QJsonObject& object) const override; + virtual void deserializeFields(const QJsonObject& object) override; +}; + +class ProtocolReply_WorkspaceFetchIndex : public ProtocolReply { +public: + // TODO + + ProtocolReply_WorkspaceFetchIndex(); + +protected: + virtual void serializeFields(QJsonObject& object) const override; + virtual void deserializeFields(const QJsonObject& object) override; +}; + +class ProtocolNotification_WorkspaceUpdate : public ProtocolRequest +{ +public: + // TODO + + ProtocolNotification_WorkspaceUpdate(); + +protected: + virtual void serializeFields(QJsonObject& object) const override; + virtual void deserializeFields(const QJsonObject& object) override; }; } // namespace Epistmool::Server |