aboutsummaryrefslogtreecommitdiff
path: root/lib/events/roommemberevent.h
diff options
context:
space:
mode:
authorAlexey Rusakov <Kitsune-Ral@users.sf.net>2022-09-05 07:49:16 +0200
committerGitHub <noreply@github.com>2022-09-05 07:49:16 +0200
commit1e263a32fcbc44985e474a626393494a81f15e37 (patch)
tree8811e0a995dcd593cb9f233e02ece9402e76eb1b /lib/events/roommemberevent.h
parent8cb629f406f5b8b1ff7ce787dd3967d5684e07c3 (diff)
parentbd2736bc9f8b6023ecbc21d0d831856703b853db (diff)
downloadlibquotient-1e263a32fcbc44985e474a626393494a81f15e37.tar.gz
libquotient-1e263a32fcbc44985e474a626393494a81f15e37.zip
Merge pull request #565 from quotient-im/kitsune/streamline-event-types-2
Streamline event types, part 2
Diffstat (limited to 'lib/events/roommemberevent.h')
-rw-r--r--lib/events/roommemberevent.h34
1 files changed, 4 insertions, 30 deletions
diff --git a/lib/events/roommemberevent.h b/lib/events/roommemberevent.h
index dd33ea6b..9f063136 100644
--- a/lib/events/roommemberevent.h
+++ b/lib/events/roommemberevent.h
@@ -28,32 +28,16 @@ public:
using MembershipType [[deprecated("Use Membership instead")]] = Membership;
-class QUOTIENT_API RoomMemberEvent : public StateEvent<MemberEventContent> {
+class QUOTIENT_API RoomMemberEvent
+ : public KeyedStateEventBase<RoomMemberEvent, MemberEventContent> {
Q_GADGET
public:
- DEFINE_EVENT_TYPEID("m.room.member", RoomMemberEvent)
+ QUO_EVENT(RoomMemberEvent, "m.room.member")
using MembershipType
[[deprecated("Use Quotient::Membership instead")]] = Membership;
- explicit RoomMemberEvent(const QJsonObject& obj) : StateEvent(typeId(), obj)
- {}
- RoomMemberEvent(const QString& userId, MemberEventContent&& content)
- : StateEvent(typeId(), matrixTypeId(), userId, std::move(content))
- {}
-
- //! \brief A special constructor to create unknown RoomMemberEvents
- //!
- //! This is needed in order to use RoomMemberEvent as a "base event class"
- //! in cases like GetMembersByRoomJob when RoomMemberEvents (rather than
- //! RoomEvents or StateEvents) are resolved from JSON. For such cases
- //! loadEvent\<> requires an underlying class to have a specialisation of
- //! EventFactory\<> and be constructible with unknownTypeId() instead of
- //! its genuine id. Don't use directly.
- //! \sa EventFactory, loadEvent, GetMembersByRoomJob
- RoomMemberEvent(Type type, const QJsonObject& fullJson)
- : StateEvent(type, fullJson)
- {}
+ using KeyedStateEventBase::KeyedStateEventBase;
Membership membership() const { return content().membership; }
QString userId() const { return stateKey(); }
@@ -79,14 +63,4 @@ public:
bool isRename() const;
bool isAvatarUpdate() const;
};
-
-template <>
-inline event_ptr_tt<RoomMemberEvent>
-doLoadEvent<RoomMemberEvent>(const QJsonObject& json, const QString& matrixType)
-{
- if (matrixType == QLatin1String(RoomMemberEvent::matrixTypeId()))
- return makeEvent<RoomMemberEvent>(json);
- return makeEvent<RoomMemberEvent>(unknownEventTypeId(), json);
-}
-REGISTER_EVENT_TYPE(RoomMemberEvent)
} // namespace Quotient