summary refs log tree commit diff
path: root/include/events/StateEvent.h
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-12-04 18:41:19 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-12-04 18:41:19 +0200
commita605e4486f4b9d90d668d6d1844ba5f0d58bbc26 (patch)
treec82001904cb120d975361edb38a62b5b77fa0644 /include/events/StateEvent.h
parentRun tests only with gcc (diff)
downloadnheko-a605e4486f4b9d90d668d6d1844ba5f0d58bbc26.tar.xz
Migrate to matrix-structs for event and response parsing
Diffstat (limited to 'include/events/StateEvent.h')
-rw-r--r--include/events/StateEvent.h88
1 files changed, 0 insertions, 88 deletions
diff --git a/include/events/StateEvent.h b/include/events/StateEvent.h
deleted file mode 100644

index 19342a48..00000000 --- a/include/events/StateEvent.h +++ /dev/null
@@ -1,88 +0,0 @@ -/* - * nheko Copyright (C) 2017 Konstantinos Sideris <siderisk@auth.gr> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#pragma once - -#include <QJsonValue> - -#include "RoomEvent.h" - -namespace matrix { -namespace events { -template<class Content> -class StateEvent : public RoomEvent<Content> -{ -public: - QString stateKey() const; - Content previousContent() const; - - void deserialize(const QJsonValue &data); - QJsonObject serialize() const; - -private: - QString state_key_; - Content prev_content_; -}; - -template<class Content> -inline QString -StateEvent<Content>::stateKey() const -{ - return state_key_; -} - -template<class Content> -inline Content -StateEvent<Content>::previousContent() const -{ - return prev_content_; -} - -template<class Content> -void -StateEvent<Content>::deserialize(const QJsonValue &data) -{ - RoomEvent<Content>::deserialize(data); - - auto object = data.toObject(); - - if (!object.contains("state_key")) - throw DeserializationException("state_key key is missing"); - - state_key_ = object.value("state_key").toString(); - - if (object.contains("prev_content")) - prev_content_.deserialize(object.value("prev_content")); -} - -template<class Content> -QJsonObject -StateEvent<Content>::serialize() const -{ - QJsonObject object = RoomEvent<Content>::serialize(); - - object["state_key"] = state_key_; - - auto prev = prev_content_.serialize(); - - if (!prev.isEmpty()) - object["prev_content"] = prev; - - return object; -} -} // namespace events -} // namespace matrix