diff options
author | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2019-02-11 08:05:31 +0900 |
---|---|---|
committer | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2019-02-11 08:05:31 +0900 |
commit | 1e273212eca1dfa294d1a4bb9271261bf5671aa3 (patch) | |
tree | 7880f72b387f380c529aeef6071673e4e186b9b9 /lib | |
parent | f438d37b169965ee0a9937b5178560a653f1197b (diff) | |
download | libquotient-1e273212eca1dfa294d1a4bb9271261bf5671aa3.tar.gz libquotient-1e273212eca1dfa294d1a4bb9271261bf5671aa3.zip |
SimpleContent: don't derive from Base as it gives zero added value
Originally there was an idea to make a common base class for all event content. Aside from really trivial unification of toJson() this doesn't span across various types of events, and since state events use static, rather than dynamic, polymorphism (StateEvent<> is a template with the aggregated content vs. RoomMessageEvent with the aggregated pointer-to-content-base), there's no considerable value in using the base class. If state events start using the same approach as message events, this may be brought back but not until then.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/events/simplestateevents.h | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/lib/events/simplestateevents.h b/lib/events/simplestateevents.h index 5aa24c15..2c23d9ca 100644 --- a/lib/events/simplestateevents.h +++ b/lib/events/simplestateevents.h @@ -19,7 +19,6 @@ #pragma once #include "stateevent.h" -#include "eventcontent.h" #include "converters.h" @@ -28,7 +27,7 @@ namespace QMatrixClient namespace EventContent { template <typename T> - class SimpleContent: public Base + class SimpleContent { public: using value_type = T; @@ -39,23 +38,19 @@ namespace QMatrixClient : value(std::forward<TT>(value)), key(std::move(keyName)) { } SimpleContent(const QJsonObject& json, QString keyName) - : Base(json) - , value(QMatrixClient::fromJson<T>(json[keyName])) + : value(fromJson<T>(json[keyName])) , key(std::move(keyName)) { } + QJsonObject toJson() const + { + return { { key, QMatrixClient::toJson(value) } }; + } public: T value; protected: QString key; - - private: - void fillJson(QJsonObject* json) const override - { - Q_ASSERT(json); - json->insert(key, QMatrixClient::toJson(value)); - } }; } // namespace EventContent |