aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAlexey Rusakov <Kitsune-Ral@users.sf.net>2021-12-10 19:26:23 +0100
committerAlexey Rusakov <Kitsune-Ral@users.sf.net>2022-01-23 22:40:20 +0100
commit08612cb253417fe70ef45a1ad08663a0745d748a (patch)
tree832f57e533a0f07365f6e20b091ddfc18f9169f4 /lib
parent9ae0d4e45befc79f621b03dc4efe869cd4277e06 (diff)
downloadlibquotient-08612cb253417fe70ef45a1ad08663a0745d748a.tar.gz
libquotient-08612cb253417fe70ef45a1ad08663a0745d748a.zip
No more default construction of events
Default construction was only done to support stubbed state in Room and even that did not really use those, opting to construct an event from an empty QJsonObject instead. Now that Room doesn't have stubbed state, default constructors are even less needed.
Diffstat (limited to 'lib')
-rw-r--r--lib/events/encryptionevent.h20
-rw-r--r--lib/events/roomcreateevent.h1
-rw-r--r--lib/events/roommemberevent.h10
-rw-r--r--lib/events/roompowerlevelsevent.h4
-rw-r--r--lib/events/roomtombstoneevent.h1
-rw-r--r--lib/events/simplestateevents.h1
6 files changed, 18 insertions, 19 deletions
diff --git a/lib/events/encryptionevent.h b/lib/events/encryptionevent.h
index dfb28b2f..56913393 100644
--- a/lib/events/encryptionevent.h
+++ b/lib/events/encryptionevent.h
@@ -12,7 +12,11 @@ class QUOTIENT_API EncryptionEventContent : public EventContent::Base {
public:
enum EncryptionType : size_t { MegolmV1AesSha2 = 0, Undefined };
- explicit EncryptionEventContent(EncryptionType et = Undefined);
+ explicit(false) EncryptionEventContent(EncryptionType et);
+ [[deprecated("This constructor will require explicit EncryptionType soon")]] //
+ explicit EncryptionEventContent()
+ : EncryptionEventContent(Undefined)
+ {}
explicit EncryptionEventContent(const QJsonObject& json);
EncryptionType encryption;
@@ -34,15 +38,15 @@ public:
using EncryptionType = EncryptionEventContent::EncryptionType;
Q_ENUM(EncryptionType)
- explicit EncryptionEvent(const QJsonObject& obj = {}) // TODO: apropriate
- // default value
+ explicit EncryptionEvent(const QJsonObject& obj)
: StateEvent(typeId(), obj)
{}
- EncryptionEvent(EncryptionEvent&&) = delete;
- template <typename... ArgTs>
- EncryptionEvent(ArgTs&&... contentArgs)
- : StateEvent(typeId(), matrixTypeId(), QString(),
- std::forward<ArgTs>(contentArgs)...)
+ [[deprecated("This constructor will require an explicit parameter soon")]] //
+// explicit EncryptionEvent()
+// : EncryptionEvent(QJsonObject())
+// {}
+ explicit EncryptionEvent(EncryptionEventContent&& content)
+ : StateEvent(typeId(), matrixTypeId(), QString(), std::move(content))
{}
EncryptionType encryption() const { return content().encryption; }
diff --git a/lib/events/roomcreateevent.h b/lib/events/roomcreateevent.h
index 016855b9..989030ac 100644
--- a/lib/events/roomcreateevent.h
+++ b/lib/events/roomcreateevent.h
@@ -11,7 +11,6 @@ class QUOTIENT_API RoomCreateEvent : public StateEventBase {
public:
DEFINE_EVENT_TYPEID("m.room.create", RoomCreateEvent)
- explicit RoomCreateEvent() : StateEventBase(typeId(), matrixTypeId()) {}
explicit RoomCreateEvent(const QJsonObject& obj)
: StateEventBase(typeId(), obj)
{}
diff --git a/lib/events/roommemberevent.h b/lib/events/roommemberevent.h
index 5e446dbe..3296ae22 100644
--- a/lib/events/roommemberevent.h
+++ b/lib/events/roommemberevent.h
@@ -15,9 +15,7 @@ public:
using MembershipType
[[deprecated("Use Quotient::Membership instead")]] = Membership;
- explicit MemberEventContent(Membership ms = Membership::Join)
- : membership(ms)
- {}
+ explicit(false) MemberEventContent(Membership ms) : membership(ms) {}
explicit MemberEventContent(const QJsonObject& json);
Membership membership;
@@ -43,10 +41,8 @@ public:
explicit RoomMemberEvent(const QJsonObject& obj) : StateEvent(typeId(), obj)
{}
- template <typename... ArgTs>
- RoomMemberEvent(const QString& userId, ArgTs&&... contentArgs)
- : StateEvent(typeId(), matrixTypeId(), userId,
- std::forward<ArgTs>(contentArgs)...)
+ RoomMemberEvent(const QString& userId, MemberEventContent&& content)
+ : StateEvent(typeId(), matrixTypeId(), userId, std::move(content))
{}
//! \brief A special constructor to create unknown RoomMemberEvents
diff --git a/lib/events/roompowerlevelsevent.h b/lib/events/roompowerlevelsevent.h
index 80e27048..415cc814 100644
--- a/lib/events/roompowerlevelsevent.h
+++ b/lib/events/roompowerlevelsevent.h
@@ -36,10 +36,12 @@ protected:
class QUOTIENT_API RoomPowerLevelsEvent
: public StateEvent<PowerLevelsEventContent> {
- Q_GADGET
public:
DEFINE_EVENT_TYPEID("m.room.power_levels", RoomPowerLevelsEvent)
+ explicit RoomPowerLevelsEvent(PowerLevelsEventContent&& content)
+ : StateEvent(typeId(), matrixTypeId(), QString(), std::move(content))
+ {}
explicit RoomPowerLevelsEvent(const QJsonObject& obj)
: StateEvent(typeId(), obj)
{}
diff --git a/lib/events/roomtombstoneevent.h b/lib/events/roomtombstoneevent.h
index e336c448..15d26923 100644
--- a/lib/events/roomtombstoneevent.h
+++ b/lib/events/roomtombstoneevent.h
@@ -10,7 +10,6 @@ class QUOTIENT_API RoomTombstoneEvent : public StateEventBase {
public:
DEFINE_EVENT_TYPEID("m.room.tombstone", RoomTombstoneEvent)
- explicit RoomTombstoneEvent() : StateEventBase(typeId(), matrixTypeId()) {}
explicit RoomTombstoneEvent(const QJsonObject& obj)
: StateEventBase(typeId(), obj)
{}
diff --git a/lib/events/simplestateevents.h b/lib/events/simplestateevents.h
index e6c05880..9610574b 100644
--- a/lib/events/simplestateevents.h
+++ b/lib/events/simplestateevents.h
@@ -35,7 +35,6 @@ namespace EventContent {
public: \
using value_type = content_type::value_type; \
DEFINE_EVENT_TYPEID(_TypeId, _Name) \
- explicit _Name() : _Name(value_type()) {} \
template <typename T> \
explicit _Name(T&& value) \
: StateEvent(typeId(), matrixTypeId(), QString(), \