diff options
author | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2019-07-06 23:08:24 +0900 |
---|---|---|
committer | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2019-07-06 23:08:24 +0900 |
commit | 717f3bc6c91b14905f222e094e439b4cdcdab2c8 (patch) | |
tree | f3e43f5427e8b124b8aec4b6f437017fca65356b /lib/events/eventloader.h | |
parent | a4d1acb8e9e3f101c891f9089a07e214e5cc55f8 (diff) | |
parent | f58819e4e930ee66e790eccaedf551f807956d72 (diff) | |
download | libquotient-717f3bc6c91b14905f222e094e439b4cdcdab2c8.tar.gz libquotient-717f3bc6c91b14905f222e094e439b4cdcdab2c8.zip |
Merge branch 'master' into e2ee-enc-mng
Diffstat (limited to 'lib/events/eventloader.h')
-rw-r--r-- | lib/events/eventloader.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/lib/events/eventloader.h b/lib/events/eventloader.h index da663392..d0fa60a2 100644 --- a/lib/events/eventloader.h +++ b/lib/events/eventloader.h @@ -32,7 +32,8 @@ namespace QMatrixClient { } } - /** Create an event with proper type from a JSON object + /*! Create an event with proper type from a JSON object + * * Use this factory template to detect the type from the JSON object * contents (the detected event type should derive from the template * parameter type) and create an event object of that type. @@ -44,7 +45,8 @@ namespace QMatrixClient { fullJson[TypeKeyL].toString()); } - /** Create an event from a type string and content JSON + /*! Create an event from a type string and content JSON + * * Use this factory template to resolve the C++ type from the Matrix * type string in \p matrixType and create an event of that type that has * its content part set to \p content. @@ -57,6 +59,20 @@ namespace QMatrixClient { matrixType); } + /*! Create a state event from a type string, content JSON and state key + * + * Use this factory to resolve the C++ type from the Matrix type string + * in \p matrixType and create a state event of that type with content part + * set to \p content and state key set to \p stateKey (empty by default). + */ + inline StateEventPtr loadStateEvent(const QString& matrixType, + const QJsonObject& content, + const QString& stateKey = {}) + { + return _impl::loadEvent<StateEventBase>( + basicStateEventJson(matrixType, content, stateKey), matrixType); + } + template <typename EventT> struct JsonConverter<event_ptr_tt<EventT>> { static auto load(const QJsonValue& jv) |