aboutsummaryrefslogtreecommitdiff
path: root/lib/events/stateevent.cpp
diff options
context:
space:
mode:
authorAlexey Rusakov <Kitsune-Ral@users.sf.net>2021-12-22 17:57:06 +0100
committerGitHub <noreply@github.com>2021-12-22 17:57:06 +0100
commitab5da392cda29f7f6ecf7f982e834fc9f008f33d (patch)
tree8f44541cd883d94267a1c31ce4145e69f750798a /lib/events/stateevent.cpp
parent487e7f5ef75a5a5a4d732027d0b7705fdffb71ca (diff)
parent060af9334049c58767b6457da2d7c07fdb0d171e (diff)
downloadlibquotient-ab5da392cda29f7f6ecf7f982e834fc9f008f33d.tar.gz
libquotient-ab5da392cda29f7f6ecf7f982e834fc9f008f33d.zip
Merge pull request #526 from quotient-im/kitsune/simpler-event-factories
Simplify event factories
Diffstat (limited to 'lib/events/stateevent.cpp')
-rw-r--r--lib/events/stateevent.cpp21
1 files changed, 7 insertions, 14 deletions
diff --git a/lib/events/stateevent.cpp b/lib/events/stateevent.cpp
index efe011a0..e53d47d4 100644
--- a/lib/events/stateevent.cpp
+++ b/lib/events/stateevent.cpp
@@ -5,20 +5,13 @@
using namespace Quotient;
-// Aside from the normal factory to instantiate StateEventBase inheritors
-// StateEventBase itself can be instantiated if there's a state_key JSON key
-// but the event type is unknown.
-[[maybe_unused]] static auto stateEventTypeInitialised =
- RoomEvent::factory_t::addMethod(
- [](const QJsonObject& json, const QString& matrixType) -> StateEventPtr {
- if (!json.contains(StateKeyKeyL))
- return nullptr;
-
- if (auto e = StateEventBase::factory_t::make(json, matrixType))
- return e;
-
- return makeEvent<StateEventBase>(unknownEventTypeId(), json);
- });
+StateEventBase::StateEventBase(Type type, const QJsonObject& json)
+ : RoomEvent(json.contains(StateKeyKeyL) ? type : unknownEventTypeId(), json)
+{
+ if (Event::type() == unknownEventTypeId() && !json.contains(StateKeyKeyL))
+ qWarning(EVENTS) << "Attempt to create a state event with no stateKey -"
+ "forcing the event type to unknown to avoid damage";
+}
StateEventBase::StateEventBase(Event::Type type, event_mtype_t matrixType,
const QString& stateKey,