/* * nheko Copyright (C) 2017 Konstantinos Sideris * * 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 . */ #pragma once #include #include "RoomEvent.h" namespace matrix { namespace events { template class StateEvent : public RoomEvent { public: inline QString stateKey() const; inline Content previousContent() const; void deserialize(const QJsonValue &data); private: QString state_key_; Content prev_content_; }; template inline QString StateEvent::stateKey() const { return state_key_; } template inline Content StateEvent::previousContent() const { return prev_content_; } template void StateEvent::deserialize(const QJsonValue &data) { RoomEvent::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")); } } // namespace events } // namespace matrix