aboutsummaryrefslogtreecommitdiff
path: root/lib/csapi/definitions
diff options
context:
space:
mode:
authorKitsune Ral <Kitsune-Ral@users.sf.net>2019-06-24 07:21:13 +0900
committerKitsune Ral <Kitsune-Ral@users.sf.net>2019-06-24 07:21:13 +0900
commit63ae79c3e2820efc2ba60d33e2caf2d7b9b3c408 (patch)
tree2552f5049a6ef7ba0034483b25ca4ab33d1fcb13 /lib/csapi/definitions
parente083d327e6f6581210f8d077d8bbe1151e81e82c (diff)
parent93f0c8fe89f448d1d58caa757573f17102369471 (diff)
downloadlibquotient-63ae79c3e2820efc2ba60d33e2caf2d7b9b3c408.tar.gz
libquotient-63ae79c3e2820efc2ba60d33e2caf2d7b9b3c408.zip
Merge branch 'master' into clang-format
# Conflicts: # CMakeLists.txt # lib/avatar.cpp # lib/connection.cpp # lib/connection.h # lib/connectiondata.cpp # lib/csapi/account-data.cpp # lib/csapi/account-data.h # lib/csapi/capabilities.cpp # lib/csapi/capabilities.h # lib/csapi/content-repo.cpp # lib/csapi/create_room.cpp # lib/csapi/filter.cpp # lib/csapi/joining.cpp # lib/csapi/keys.cpp # lib/csapi/list_joined_rooms.cpp # lib/csapi/notifications.cpp # lib/csapi/openid.cpp # lib/csapi/presence.cpp # lib/csapi/pushrules.cpp # lib/csapi/registration.cpp # lib/csapi/room_upgrades.cpp # lib/csapi/room_upgrades.h # lib/csapi/search.cpp # lib/csapi/users.cpp # lib/csapi/versions.cpp # lib/csapi/whoami.cpp # lib/csapi/{{base}}.cpp.mustache # lib/events/accountdataevents.h # lib/events/eventcontent.h # lib/events/roommemberevent.cpp # lib/events/stateevent.cpp # lib/jobs/basejob.cpp # lib/jobs/basejob.h # lib/networkaccessmanager.cpp # lib/networksettings.cpp # lib/room.cpp # lib/room.h # lib/settings.cpp # lib/settings.h # lib/syncdata.cpp # lib/user.cpp # lib/user.h # lib/util.cpp
Diffstat (limited to 'lib/csapi/definitions')
-rw-r--r--lib/csapi/definitions/auth_data.cpp16
-rw-r--r--lib/csapi/definitions/auth_data.h46
-rw-r--r--lib/csapi/definitions/client_device.cpp12
-rw-r--r--lib/csapi/definitions/client_device.h50
-rw-r--r--lib/csapi/definitions/device_keys.cpp15
-rw-r--r--lib/csapi/definitions/device_keys.h59
-rw-r--r--lib/csapi/definitions/event_filter.cpp15
-rw-r--r--lib/csapi/definitions/event_filter.h57
-rw-r--r--lib/csapi/definitions/public_rooms_response.cpp36
-rw-r--r--lib/csapi/definitions/public_rooms_response.h108
-rw-r--r--lib/csapi/definitions/push_condition.cpp15
-rw-r--r--lib/csapi/definitions/push_condition.h53
-rw-r--r--lib/csapi/definitions/push_rule.cpp12
-rw-r--r--lib/csapi/definitions/push_rule.h58
-rw-r--r--lib/csapi/definitions/push_ruleset.cpp15
-rw-r--r--lib/csapi/definitions/push_ruleset.h46
-rw-r--r--lib/csapi/definitions/room_event_filter.cpp15
-rw-r--r--lib/csapi/definitions/room_event_filter.h48
-rw-r--r--lib/csapi/definitions/sync_filter.cpp45
-rw-r--r--lib/csapi/definitions/sync_filter.h149
-rw-r--r--lib/csapi/definitions/user_identifier.cpp16
-rw-r--r--lib/csapi/definitions/user_identifier.h36
-rw-r--r--lib/csapi/definitions/wellknown/full.cpp19
-rw-r--r--lib/csapi/definitions/wellknown/full.h48
-rw-r--r--lib/csapi/definitions/wellknown/homeserver.cpp15
-rw-r--r--lib/csapi/definitions/wellknown/homeserver.h35
-rw-r--r--lib/csapi/definitions/wellknown/identity_server.cpp15
-rw-r--r--lib/csapi/definitions/wellknown/identity_server.h37
28 files changed, 625 insertions, 466 deletions
diff --git a/lib/csapi/definitions/auth_data.cpp b/lib/csapi/definitions/auth_data.cpp
index f40a3a90..b0303a19 100644
--- a/lib/csapi/definitions/auth_data.cpp
+++ b/lib/csapi/definitions/auth_data.cpp
@@ -4,21 +4,25 @@
#include "auth_data.h"
+
using namespace QMatrixClient;
-void JsonObjectConverter<AuthenticationData>::dumpTo(
- QJsonObject& jo, const AuthenticationData& pod)
+
+void JsonObjectConverter<AuthenticationData>::dumpTo(QJsonObject& jo, const AuthenticationData& pod)
{
fillJson(jo, pod.authInfo);
addParam<>(jo, QStringLiteral("type"), pod.type);
addParam<IfNotEmpty>(jo, QStringLiteral("session"), pod.session);
-}
-void JsonObjectConverter<AuthenticationData>::fillFrom(
- QJsonObject jo, AuthenticationData& result)
+}
+
+void JsonObjectConverter<AuthenticationData>::fillFrom(QJsonObject jo, AuthenticationData& result)
{
fromJson(jo.take("type"_ls), result.type);
fromJson(jo.take("session"_ls), result.session);
-
fromJson(jo, result.authInfo);
+
}
+
+
+
diff --git a/lib/csapi/definitions/auth_data.h b/lib/csapi/definitions/auth_data.h
index e25dff7a..689caf49 100644
--- a/lib/csapi/definitions/auth_data.h
+++ b/lib/csapi/definitions/auth_data.h
@@ -4,27 +4,37 @@
#pragma once
+
+
#include "converters.h"
-#include <QtCore/QHash>
#include <QtCore/QJsonObject>
+#include <QtCore/QHash>
+
+namespace QMatrixClient
+{
+
+// Data structures
+
+/// Used by clients to submit authentication information to the interactive-authentication API
+struct AuthenticationData
+{
+ /// The login type that the client is attempting to complete.
+ QString type;
+ /// The value of the session key given by the homeserver.
+ QString session;
+
+
+ /// Keys dependent on the login type
+ QHash<QString, QJsonObject> authInfo;
+
+};
+
+template <> struct JsonObjectConverter<AuthenticationData>
+{
+ static void dumpTo(QJsonObject& jo, const AuthenticationData& pod);
+ static void fillFrom(QJsonObject jo, AuthenticationData& pod);};
+
-namespace QMatrixClient {
- // Data structures
-
- /// Used by clients to submit authentication information to the
- /// interactive-authentication API
- struct AuthenticationData {
- /// The login type that the client is attempting to complete.
- QString type;
- /// The value of the session key given by the homeserver.
- QString session;
- /// Keys dependent on the login type
- QHash<QString, QJsonObject> authInfo;
- };
- template <> struct JsonObjectConverter<AuthenticationData> {
- static void dumpTo(QJsonObject& jo, const AuthenticationData& pod);
- static void fillFrom(QJsonObject jo, AuthenticationData& pod);
- };
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/client_device.cpp b/lib/csapi/definitions/client_device.cpp
index 2ca58e2f..5710537d 100644
--- a/lib/csapi/definitions/client_device.cpp
+++ b/lib/csapi/definitions/client_device.cpp
@@ -4,21 +4,27 @@
#include "client_device.h"
+
using namespace QMatrixClient;
+
void JsonObjectConverter<Device>::dumpTo(QJsonObject& jo, const Device& pod)
{
addParam<>(jo, QStringLiteral("device_id"), pod.deviceId);
addParam<IfNotEmpty>(jo, QStringLiteral("display_name"), pod.displayName);
addParam<IfNotEmpty>(jo, QStringLiteral("last_seen_ip"), pod.lastSeenIp);
addParam<IfNotEmpty>(jo, QStringLiteral("last_seen_ts"), pod.lastSeenTs);
-}
-void JsonObjectConverter<Device>::fillFrom(const QJsonObject& jo,
- Device& result)
+}
+
+void JsonObjectConverter<Device>::fillFrom(const QJsonObject& jo, Device& result)
{
fromJson(jo.value("device_id"_ls), result.deviceId);
fromJson(jo.value("display_name"_ls), result.displayName);
fromJson(jo.value("last_seen_ip"_ls), result.lastSeenIp);
fromJson(jo.value("last_seen_ts"_ls), result.lastSeenTs);
+
}
+
+
+
diff --git a/lib/csapi/definitions/client_device.h b/lib/csapi/definitions/client_device.h
index b473a037..7c63a9b6 100644
--- a/lib/csapi/definitions/client_device.h
+++ b/lib/csapi/definitions/client_device.h
@@ -4,31 +4,37 @@
#pragma once
+
+
#include "converters.h"
#include "converters.h"
-namespace QMatrixClient {
- // Data structures
-
- /// A client device
- struct Device {
- /// Identifier of this device.
- QString deviceId;
- /// Display name set by the user for this device. Absent if no name has
- /// been set.
- QString displayName;
- /// The IP address where this device was last seen. (May be a few
- /// minutes out of date, for efficiency reasons).
- QString lastSeenIp;
- /// The timestamp (in milliseconds since the unix epoch) when this
- /// devices was last seen. (May be a few minutes out of date, for
- /// efficiency reasons).
- Omittable<qint64> lastSeenTs;
- };
- template <> struct JsonObjectConverter<Device> {
- static void dumpTo(QJsonObject& jo, const Device& pod);
- static void fillFrom(const QJsonObject& jo, Device& pod);
- };
+namespace QMatrixClient
+{
+
+// Data structures
+
+/// A client device
+struct Device
+{
+ /// Identifier of this device.
+ QString deviceId;
+ /// Display name set by the user for this device. Absent if no name has beenset.
+ QString displayName;
+ /// The IP address where this device was last seen. (May be a few minutes outof date, for efficiency reasons).
+ QString lastSeenIp;
+ /// The timestamp (in milliseconds since the unix epoch) when this deviceswas last seen. (May be a few minutes out of date, for efficiencyreasons).
+ Omittable<qint64> lastSeenTs;
+
+
+};
+
+template <> struct JsonObjectConverter<Device>
+{
+ static void dumpTo(QJsonObject& jo, const Device& pod);
+ static void fillFrom(const QJsonObject& jo, Device& pod);};
+
+
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/device_keys.cpp b/lib/csapi/definitions/device_keys.cpp
index cc5262b7..ffe0cfbe 100644
--- a/lib/csapi/definitions/device_keys.cpp
+++ b/lib/csapi/definitions/device_keys.cpp
@@ -4,24 +4,29 @@
#include "device_keys.h"
+
using namespace QMatrixClient;
-void JsonObjectConverter<DeviceKeys>::dumpTo(QJsonObject& jo,
- const DeviceKeys& pod)
+
+void JsonObjectConverter<DeviceKeys>::dumpTo(QJsonObject& jo, const DeviceKeys& pod)
{
addParam<>(jo, QStringLiteral("user_id"), pod.userId);
addParam<>(jo, QStringLiteral("device_id"), pod.deviceId);
addParam<>(jo, QStringLiteral("algorithms"), pod.algorithms);
addParam<>(jo, QStringLiteral("keys"), pod.keys);
addParam<>(jo, QStringLiteral("signatures"), pod.signatures);
-}
-void JsonObjectConverter<DeviceKeys>::fillFrom(const QJsonObject& jo,
- DeviceKeys& result)
+}
+
+void JsonObjectConverter<DeviceKeys>::fillFrom(const QJsonObject& jo, DeviceKeys& result)
{
fromJson(jo.value("user_id"_ls), result.userId);
fromJson(jo.value("device_id"_ls), result.deviceId);
fromJson(jo.value("algorithms"_ls), result.algorithms);
fromJson(jo.value("keys"_ls), result.keys);
fromJson(jo.value("signatures"_ls), result.signatures);
+
}
+
+
+
diff --git a/lib/csapi/definitions/device_keys.h b/lib/csapi/definitions/device_keys.h
index 6c417ce7..c86db46a 100644
--- a/lib/csapi/definitions/device_keys.h
+++ b/lib/csapi/definitions/device_keys.h
@@ -4,38 +4,39 @@
#pragma once
+
+
#include "converters.h"
#include <QtCore/QHash>
-namespace QMatrixClient {
- // Data structures
-
- /// Device identity keys
- struct DeviceKeys {
- /// The ID of the user the device belongs to. Must match the user ID
- /// used when logging in.
- QString userId;
- /// The ID of the device these keys belong to. Must match the device ID
- /// used when logging in.
- QString deviceId;
- /// The encryption algorithms supported by this device.
- QStringList algorithms;
- /// Public identity keys. The names of the properties should be in the
- /// format ``<algorithm>:<device_id>``. The keys themselves should be
- /// encoded as specified by the key algorithm.
- QHash<QString, QString> keys;
- /// Signatures for the device key object. A map from user ID, to a map
- /// from
- /// ``<algorithm>:<device_id>`` to the signature.
- ///
- /// The signature is calculated using the process described at `Signing
- /// JSON`_.
- QHash<QString, QHash<QString, QString>> signatures;
- };
- template <> struct JsonObjectConverter<DeviceKeys> {
- static void dumpTo(QJsonObject& jo, const DeviceKeys& pod);
- static void fillFrom(const QJsonObject& jo, DeviceKeys& pod);
- };
+namespace QMatrixClient
+{
+
+// Data structures
+
+/// Device identity keys
+struct DeviceKeys
+{
+ /// The ID of the user the device belongs to. Must match the user ID usedwhen logging in.
+ QString userId;
+ /// The ID of the device these keys belong to. Must match the device ID usedwhen logging in.
+ QString deviceId;
+ /// The encryption algorithms supported by this device.
+ QStringList algorithms;
+ /// Public identity keys. The names of the properties should be in theformat ``<algorithm>:<device_id>``. The keys themselves should beencoded as specified by the key algorithm.
+ QHash<QString, QString> keys;
+ /// Signatures for the device key object. A map from user ID, to a map from``<algorithm>:<device_id>`` to the signature.The signature is calculated using the process described at `SigningJSON`_.
+ QHash<QString, QHash<QString, QString>> signatures;
+
+
+};
+
+template <> struct JsonObjectConverter<DeviceKeys>
+{
+ static void dumpTo(QJsonObject& jo, const DeviceKeys& pod);
+ static void fillFrom(const QJsonObject& jo, DeviceKeys& pod);};
+
+
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/event_filter.cpp b/lib/csapi/definitions/event_filter.cpp
index 9b2c7a33..8be98c94 100644
--- a/lib/csapi/definitions/event_filter.cpp
+++ b/lib/csapi/definitions/event_filter.cpp
@@ -4,24 +4,29 @@
#include "event_filter.h"
+
using namespace QMatrixClient;
-void JsonObjectConverter<EventFilter>::dumpTo(QJsonObject& jo,
- const EventFilter& pod)
+
+void JsonObjectConverter<EventFilter>::dumpTo(QJsonObject& jo, const EventFilter& pod)
{
addParam<IfNotEmpty>(jo, QStringLiteral("limit"), pod.limit);
addParam<IfNotEmpty>(jo, QStringLiteral("not_senders"), pod.notSenders);
addParam<IfNotEmpty>(jo, QStringLiteral("not_types"), pod.notTypes);
addParam<IfNotEmpty>(jo, QStringLiteral("senders"), pod.senders);
addParam<IfNotEmpty>(jo, QStringLiteral("types"), pod.types);
-}
-void JsonObjectConverter<EventFilter>::fillFrom(const QJsonObject& jo,
- EventFilter& result)
+}
+
+void JsonObjectConverter<EventFilter>::fillFrom(const QJsonObject& jo, EventFilter& result)
{
fromJson(jo.value("limit"_ls), result.limit);
fromJson(jo.value("not_senders"_ls), result.notSenders);
fromJson(jo.value("not_types"_ls), result.notTypes);
fromJson(jo.value("senders"_ls), result.senders);
fromJson(jo.value("types"_ls), result.types);
+
}
+
+
+
diff --git a/lib/csapi/definitions/event_filter.h b/lib/csapi/definitions/event_filter.h
index 5a1a831b..b8b2a983 100644
--- a/lib/csapi/definitions/event_filter.h
+++ b/lib/csapi/definitions/event_filter.h
@@ -4,36 +4,39 @@
#pragma once
+
+
#include "converters.h"
#include "converters.h"
-namespace QMatrixClient {
- // Data structures
-
- struct EventFilter {
- /// The maximum number of events to return.
- Omittable<int> limit;
- /// A list of sender IDs to exclude. If this list is absent then no
- /// senders are excluded. A matching sender will be excluded even if it
- /// is listed in the ``'senders'`` filter.
- QStringList notSenders;
- /// A list of event types to exclude. If this list is absent then no
- /// event types are excluded. A matching type will be excluded even if
- /// it is listed in the ``'types'`` filter. A '*' can be used as a
- /// wildcard to match any sequence of characters.
- QStringList notTypes;
- /// A list of senders IDs to include. If this list is absent then all
- /// senders are included.
- QStringList senders;
- /// A list of event types to include. If this list is absent then all
- /// event types are included. A ``'*'`` can be used as a wildcard to
- /// match any sequence of characters.
- QStringList types;
- };
- template <> struct JsonObjectConverter<EventFilter> {
- static void dumpTo(QJsonObject& jo, const EventFilter& pod);
- static void fillFrom(const QJsonObject& jo, EventFilter& pod);
- };
+namespace QMatrixClient
+{
+
+// Data structures
+
+
+struct EventFilter
+{
+ /// The maximum number of events to return.
+ Omittable<int> limit;
+ /// A list of sender IDs to exclude. If this list is absent then no senders are excluded. A matching sender will be excluded even if it is listed in the ``'senders'`` filter.
+ QStringList notSenders;
+ /// A list of event types to exclude. If this list is absent then no event types are excluded. A matching type will be excluded even if it is listed in the ``'types'`` filter. A '*' can be used as a wildcard to match any sequence of characters.
+ QStringList notTypes;
+ /// A list of senders IDs to include. If this list is absent then all senders are included.
+ QStringList senders;
+ /// A list of event types to include. If this list is absent then all event types are included. A ``'*'`` can be used as a wildcard to match any sequence of characters.
+ QStringList types;
+
+
+};
+
+template <> struct JsonObjectConverter<EventFilter>
+{
+ static void dumpTo(QJsonObject& jo, const EventFilter& pod);
+ static void fillFrom(const QJsonObject& jo, EventFilter& pod);};
+
+
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/public_rooms_response.cpp b/lib/csapi/definitions/public_rooms_response.cpp
index 199a7a93..2c03b7d3 100644
--- a/lib/csapi/definitions/public_rooms_response.cpp
+++ b/lib/csapi/definitions/public_rooms_response.cpp
@@ -4,14 +4,14 @@
#include "public_rooms_response.h"
+
using namespace QMatrixClient;
-void JsonObjectConverter<PublicRoomsChunk>::dumpTo(QJsonObject& jo,
- const PublicRoomsChunk& pod)
+
+void JsonObjectConverter<PublicRoomsChunk>::dumpTo(QJsonObject& jo, const PublicRoomsChunk& pod)
{
addParam<IfNotEmpty>(jo, QStringLiteral("aliases"), pod.aliases);
- addParam<IfNotEmpty>(jo, QStringLiteral("canonical_alias"),
- pod.canonicalAlias);
+ addParam<IfNotEmpty>(jo, QStringLiteral("canonical_alias"), pod.canonicalAlias);
addParam<IfNotEmpty>(jo, QStringLiteral("name"), pod.name);
addParam<>(jo, QStringLiteral("num_joined_members"), pod.numJoinedMembers);
addParam<>(jo, QStringLiteral("room_id"), pod.roomId);
@@ -19,10 +19,10 @@ void JsonObjectConverter<PublicRoomsChunk>::dumpTo(QJsonObject& jo,
addParam<>(jo, QStringLiteral("world_readable"), pod.worldReadable);
addParam<>(jo, QStringLiteral("guest_can_join"), pod.guestCanJoin);
addParam<IfNotEmpty>(jo, QStringLiteral("avatar_url"), pod.avatarUrl);
-}
-void JsonObjectConverter<PublicRoomsChunk>::fillFrom(const QJsonObject& jo,
- PublicRoomsChunk& result)
+}
+
+void JsonObjectConverter<PublicRoomsChunk>::fillFrom(const QJsonObject& jo, PublicRoomsChunk& result)
{
fromJson(jo.value("aliases"_ls), result.aliases);
fromJson(jo.value("canonical_alias"_ls), result.canonicalAlias);
@@ -33,24 +33,28 @@ void JsonObjectConverter<PublicRoomsChunk>::fillFrom(const QJsonObject& jo,
fromJson(jo.value("world_readable"_ls), result.worldReadable);
fromJson(jo.value("guest_can_join"_ls), result.guestCanJoin);
fromJson(jo.value("avatar_url"_ls), result.avatarUrl);
+
}
+
-void JsonObjectConverter<PublicRoomsResponse>::dumpTo(
- QJsonObject& jo, const PublicRoomsResponse& pod)
+
+void JsonObjectConverter<PublicRoomsResponse>::dumpTo(QJsonObject& jo, const PublicRoomsResponse& pod)
{
addParam<>(jo, QStringLiteral("chunk"), pod.chunk);
addParam<IfNotEmpty>(jo, QStringLiteral("next_batch"), pod.nextBatch);
addParam<IfNotEmpty>(jo, QStringLiteral("prev_batch"), pod.prevBatch);
- addParam<IfNotEmpty>(jo, QStringLiteral("total_room_count_estimate"),
- pod.totalRoomCountEstimate);
-}
+ addParam<IfNotEmpty>(jo, QStringLiteral("total_room_count_estimate"), pod.totalRoomCountEstimate);
-void JsonObjectConverter<PublicRoomsResponse>::fillFrom(
- const QJsonObject& jo, PublicRoomsResponse& result)
+}
+
+void JsonObjectConverter<PublicRoomsResponse>::fillFrom(const QJsonObject& jo, PublicRoomsResponse& result)
{
fromJson(jo.value("chunk"_ls), result.chunk);
fromJson(jo.value("next_batch"_ls), result.nextBatch);
fromJson(jo.value("prev_batch"_ls), result.prevBatch);
- fromJson(jo.value("total_room_count_estimate"_ls),
- result.totalRoomCountEstimate);
+ fromJson(jo.value("total_room_count_estimate"_ls), result.totalRoomCountEstimate);
+
}
+
+
+
diff --git a/lib/csapi/definitions/public_rooms_response.h b/lib/csapi/definitions/public_rooms_response.h
index 6d8caf98..d282a592 100644
--- a/lib/csapi/definitions/public_rooms_response.h
+++ b/lib/csapi/definitions/public_rooms_response.h
@@ -4,60 +4,68 @@
#pragma once
+
+
#include "converters.h"
#include "converters.h"
#include <QtCore/QVector>
-namespace QMatrixClient {
- // Data structures
-
- struct PublicRoomsChunk {
- /// Aliases of the room. May be empty.
- QStringList aliases;
- /// The canonical alias of the room, if any.
- QString canonicalAlias;
- /// The name of the room, if any.
- QString name;
- /// The number of members joined to the room.
- int numJoinedMembers;
- /// The ID of the room.
- QString roomId;
- /// The topic of the room, if any.
- QString topic;
- /// Whether the room may be viewed by guest users without joining.
- bool worldReadable;
- /// Whether guest users may join the room and participate in it.
- /// If they can, they will be subject to ordinary power level
- /// rules like any other user.
- bool guestCanJoin;
- /// The URL for the room's avatar, if one is set.
- QString avatarUrl;
- };
- template <> struct JsonObjectConverter<PublicRoomsChunk> {
- static void dumpTo(QJsonObject& jo, const PublicRoomsChunk& pod);
- static void fillFrom(const QJsonObject& jo, PublicRoomsChunk& pod);
- };
-
- /// A list of the rooms on the server.
- struct PublicRoomsResponse {
- /// A paginated chunk of public rooms.
- QVector<PublicRoomsChunk> chunk;
- /// A pagination token for the response. The absence of this token
- /// means there are no more results to fetch and the client should
- /// stop paginating.
- QString nextBatch;
- /// A pagination token that allows fetching previous results. The
- /// absence of this token means there are no results before this
- /// batch, i.e. this is the first batch.
- QString prevBatch;
- /// An estimate on the total number of public rooms, if the
- /// server has an estimate.
- Omittable<int> totalRoomCountEstimate;
- };
- template <> struct JsonObjectConverter<PublicRoomsResponse> {
- static void dumpTo(QJsonObject& jo, const PublicRoomsResponse& pod);
- static void fillFrom(const QJsonObject& jo, PublicRoomsResponse& pod);
- };
+namespace QMatrixClient
+{
+
+// Data structures
+
+
+struct PublicRoomsChunk
+{
+ /// Aliases of the room. May be empty.
+ QStringList aliases;
+ /// The canonical alias of the room, if any.
+ QString canonicalAlias;
+ /// The name of the room, if any.
+ QString name;
+ /// The number of members joined to the room.
+ int numJoinedMembers;
+ /// The ID of the room.
+ QString roomId;
+ /// The topic of the room, if any.
+ QString topic;
+ /// Whether the room may be viewed by guest users without joining.
+ bool worldReadable;
+ /// Whether guest users may join the room and participate in it.If they can, they will be subject to ordinary power levelrules like any other user.
+ bool guestCanJoin;
+ /// The URL for the room's avatar, if one is set.
+ QString avatarUrl;
+
+
+};
+
+template <> struct JsonObjectConverter<PublicRoomsChunk>
+{
+ static void dumpTo(QJsonObject& jo, const PublicRoomsChunk& pod);
+ static void fillFrom(const QJsonObject& jo, PublicRoomsChunk& pod);};
+
+/// A list of the rooms on the server.
+struct PublicRoomsResponse
+{
+ /// A paginated chunk of public rooms.
+ QVector<PublicRoomsChunk> chunk;
+ /// A pagination token for the response. The absence of this tokenmeans there are no more results to fetch and the client shouldstop paginating.
+ QString nextBatch;
+ /// A pagination token that allows fetching previous results. Theabsence of this token means there are no results before thisbatch, i.e. this is the first batch.
+ QString prevBatch;
+ /// An estimate on the total number of public rooms, if theserver has an estimate.
+ Omittable<int> totalRoomCountEstimate;
+
+
+};
+
+template <> struct JsonObjectConverter<PublicRoomsResponse>
+{
+ static void dumpTo(QJsonObject& jo, const PublicRoomsResponse& pod);
+ static void fillFrom(const QJsonObject& jo, PublicRoomsResponse& pod);};
+
+
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/push_condition.cpp b/lib/csapi/definitions/push_condition.cpp
index 5bcb845e..86b3107e 100644
--- a/lib/csapi/definitions/push_condition.cpp
+++ b/lib/csapi/definitions/push_condition.cpp
@@ -4,22 +4,27 @@
#include "push_condition.h"
+
using namespace QMatrixClient;
-void JsonObjectConverter<PushCondition>::dumpTo(QJsonObject& jo,
- const PushCondition& pod)
+
+void JsonObjectConverter<PushCondition>::dumpTo(QJsonObject& jo, const PushCondition& pod)
{
addParam<>(jo, QStringLiteral("kind"), pod.kind);
addParam<IfNotEmpty>(jo, QStringLiteral("key"), pod.key);
addParam<IfNotEmpty>(jo, QStringLiteral("pattern"), pod.pattern);
addParam<IfNotEmpty>(jo, QStringLiteral("is"), pod.is);
-}
-void JsonObjectConverter<PushCondition>::fillFrom(const QJsonObject& jo,
- PushCondition& result)
+}
+
+void JsonObjectConverter<PushCondition>::fillFrom(const QJsonObject& jo, PushCondition& result)
{
fromJson(jo.value("kind"_ls), result.kind);
fromJson(jo.value("key"_ls), result.key);
fromJson(jo.value("pattern"_ls), result.pattern);
fromJson(jo.value("is"_ls), result.is);
+
}
+
+
+
diff --git a/lib/csapi/definitions/push_condition.h b/lib/csapi/definitions/push_condition.h
index a4e44e93..e61fb24e 100644
--- a/lib/csapi/definitions/push_condition.h
+++ b/lib/csapi/definitions/push_condition.h
@@ -4,31 +4,36 @@
#pragma once
+
+
#include "converters.h"
-namespace QMatrixClient {
- // Data structures
-
- struct PushCondition {
- QString kind;
- /// Required for ``event_match`` conditions. The dot-separated field of
- /// the event to match.
- QString key;
- /// Required for ``event_match`` conditions. The glob-style pattern to
- /// match against. Patterns with no special glob characters should be
- /// treated as having asterisks prepended and appended when testing the
- /// condition.
- QString pattern;
- /// Required for ``room_member_count`` conditions. A decimal integer
- /// optionally prefixed by one of, ==, <, >, >= or <=. A prefix of <
- /// matches rooms where the member count is strictly less than the given
- /// number and so forth. If no prefix is present, this parameter
- /// defaults to ==.
- QString is;
- };
- template <> struct JsonObjectConverter<PushCondition> {
- static void dumpTo(QJsonObject& jo, const PushCondition& pod);
- static void fillFrom(const QJsonObject& jo, PushCondition& pod);
- };
+
+namespace QMatrixClient
+{
+
+// Data structures
+
+
+struct PushCondition
+{
+
+ QString kind;
+ /// Required for ``event_match`` conditions. The dot-separated field of theevent to match.
+ QString key;
+ /// Required for ``event_match`` conditions. The glob-style pattern tomatch against. Patterns with no special glob characters should betreated as having asterisks prepended and appended when testing thecondition.
+ QString pattern;
+ /// Required for ``room_member_count`` conditions. A decimal integeroptionally prefixed by one of, ==, <, >, >= or <=. A prefix of < matchesrooms where the member count is strictly less than the given number andso forth. If no prefix is present, this parameter defaults to ==.
+ QString is;
+
+
+};
+
+template <> struct JsonObjectConverter<PushCondition>
+{
+ static void dumpTo(QJsonObject& jo, const PushCondition& pod);
+ static void fillFrom(const QJsonObject& jo, PushCondition& pod);};
+
+
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/push_rule.cpp b/lib/csapi/definitions/push_rule.cpp
index fc2be2c7..bfa8a7ef 100644
--- a/lib/csapi/definitions/push_rule.cpp
+++ b/lib/csapi/definitions/push_rule.cpp
@@ -4,8 +4,10 @@
#include "push_rule.h"
+
using namespace QMatrixClient;
+
void JsonObjectConverter<PushRule>::dumpTo(QJsonObject& jo, const PushRule& pod)
{
addParam<>(jo, QStringLiteral("actions"), pod.actions);
@@ -14,10 +16,10 @@ void JsonObjectConverter<PushRule>::dumpTo(QJsonObject& jo, const PushRule& pod)
addParam<>(jo, QStringLiteral("rule_id"), pod.ruleId);
addParam<IfNotEmpty>(jo, QStringLiteral("conditions"), pod.conditions);
addParam<IfNotEmpty>(jo, QStringLiteral("pattern"), pod.pattern);
-}
-void JsonObjectConverter<PushRule>::fillFrom(const QJsonObject& jo,
- PushRule& result)
+}
+
+void JsonObjectConverter<PushRule>::fillFrom(const QJsonObject& jo, PushRule& result)
{
fromJson(jo.value("actions"_ls), result.actions);
fromJson(jo.value("default"_ls), result.isDefault);
@@ -25,4 +27,8 @@ void JsonObjectConverter<PushRule>::fillFrom(const QJsonObject& jo,
fromJson(jo.value("rule_id"_ls), result.ruleId);
fromJson(jo.value("conditions"_ls), result.conditions);
fromJson(jo.value("pattern"_ls), result.pattern);
+
}
+
+
+
diff --git a/lib/csapi/definitions/push_rule.h b/lib/csapi/definitions/push_rule.h
index d8d2cc0f..98bd904d 100644
--- a/lib/csapi/definitions/push_rule.h
+++ b/lib/csapi/definitions/push_rule.h
@@ -4,37 +4,45 @@
#pragma once
+
+
#include "converters.h"
#include "converters.h"
+#include <QtCore/QVariant>
#include "csapi/definitions/push_condition.h"
#include <QtCore/QJsonObject>
-#include <QtCore/QVariant>
#include <QtCore/QVector>
-namespace QMatrixClient {
- // Data structures
-
- struct PushRule {
- /// The actions to perform when this rule is matched.
- QVector<QVariant> actions;
- /// Whether this is a default rule, or has been set explicitly.
- bool isDefault;
- /// Whether the push rule is enabled or not.
- bool enabled;
- /// The ID of this rule.
- QString ruleId;
- /// The conditions that must hold true for an event in order for a rule
- /// to be applied to an event. A rule with no conditions always matches.
- /// Only applicable to ``underride`` and ``override`` rules.
- QVector<PushCondition> conditions;
- /// The glob-style pattern to match against. Only applicable to
- /// ``content`` rules.
- QString pattern;
- };
- template <> struct JsonObjectConverter<PushRule> {
- static void dumpTo(QJsonObject& jo, const PushRule& pod);
- static void fillFrom(const QJsonObject& jo, PushRule& pod);
- };
+namespace QMatrixClient
+{
+
+// Data structures
+
+
+struct PushRule
+{
+ /// The actions to perform when this rule is matched.
+ QVector<QVariant> actions;
+ /// Whether this is a default rule, or has been set explicitly.
+ bool isDefault;
+ /// Whether the push rule is enabled or not.
+ bool enabled;
+ /// The ID of this rule.
+ QString ruleId;
+ /// The conditions that must hold true for an event in order for a rule to beapplied to an event. A rule with no conditions always matches. Onlyapplicable to ``underride`` and ``override`` rules.
+ QVector<PushCondition> conditions;
+ /// The glob-style pattern to match against. Only applicable to ``content``rules.
+ QString pattern;
+
+
+};
+
+template <> struct JsonObjectConverter<PushRule>
+{
+ static void dumpTo(QJsonObject& jo, const PushRule& pod);
+ static void fillFrom(const QJsonObject& jo, PushRule& pod);};
+
+
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/push_ruleset.cpp b/lib/csapi/definitions/push_ruleset.cpp
index 6f48d27b..4754e07b 100644
--- a/lib/csapi/definitions/push_ruleset.cpp
+++ b/lib/csapi/definitions/push_ruleset.cpp
@@ -4,24 +4,29 @@
#include "push_ruleset.h"
+
using namespace QMatrixClient;
-void JsonObjectConverter<PushRuleset>::dumpTo(QJsonObject& jo,
- const PushRuleset& pod)
+
+void JsonObjectConverter<PushRuleset>::dumpTo(QJsonObject& jo, const PushRuleset& pod)
{
addParam<IfNotEmpty>(jo, QStringLiteral("content"), pod.content);
addParam<IfNotEmpty>(jo, QStringLiteral("override"), pod.override);
addParam<IfNotEmpty>(jo, QStringLiteral("room"), pod.room);
addParam<IfNotEmpty>(jo, QStringLiteral("sender"), pod.sender);
addParam<IfNotEmpty>(jo, QStringLiteral("underride"), pod.underride);
-}
-void JsonObjectConverter<PushRuleset>::fillFrom(const QJsonObject& jo,
- PushRuleset& result)
+}
+
+void JsonObjectConverter<PushRuleset>::fillFrom(const QJsonObject& jo, PushRuleset& result)
{
fromJson(jo.value("content"_ls), result.content);
fromJson(jo.value("override"_ls), result.override);
fromJson(jo.value("room"_ls), result.room);
fromJson(jo.value("sender"_ls), result.sender);
fromJson(jo.value("underride"_ls), result.underride);
+
}
+
+
+
diff --git a/lib/csapi/definitions/push_ruleset.h b/lib/csapi/definitions/push_ruleset.h
index b2f791c4..e1a2c142 100644
--- a/lib/csapi/definitions/push_ruleset.h
+++ b/lib/csapi/definitions/push_ruleset.h
@@ -4,25 +4,41 @@
#pragma once
-#include "converters.h"
+
#include "converters.h"
+
#include "csapi/definitions/push_rule.h"
+#include "converters.h"
#include <QtCore/QVector>
-namespace QMatrixClient {
- // Data structures
-
- struct PushRuleset {
- QVector<PushRule> content;
- QVector<PushRule> override;
- QVector<PushRule> room;
- QVector<PushRule> sender;
- QVector<PushRule> underride;
- };
- template <> struct JsonObjectConverter<PushRuleset> {
- static void dumpTo(QJsonObject& jo, const PushRuleset& pod);
- static void fillFrom(const QJsonObject& jo, PushRuleset& pod);
- };
+namespace QMatrixClient
+{
+
+// Data structures
+
+
+struct PushRuleset
+{
+
+ QVector<PushRule> content;
+
+ QVector<PushRule> override;
+
+ QVector<PushRule> room;
+
+ QVector<PushRule> sender;
+
+ QVector<PushRule> underride;
+
+
+};
+
+template <> struct JsonObjectConverter<PushRuleset>
+{
+ static void dumpTo(QJsonObject& jo, const PushRuleset& pod);
+ static void fillFrom(const QJsonObject& jo, PushRuleset& pod);};
+
+
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/room_event_filter.cpp b/lib/csapi/definitions/room_event_filter.cpp
index bd38ebc7..fc859395 100644
--- a/lib/csapi/definitions/room_event_filter.cpp
+++ b/lib/csapi/definitions/room_event_filter.cpp
@@ -4,22 +4,27 @@
#include "room_event_filter.h"
+
using namespace QMatrixClient;
-void JsonObjectConverter<RoomEventFilter>::dumpTo(QJsonObject& jo,
- const RoomEventFilter& pod)
+
+void JsonObjectConverter<RoomEventFilter>::dumpTo(QJsonObject& jo, const RoomEventFilter& pod)
{
fillJson<EventFilter>(jo, pod);
addParam<IfNotEmpty>(jo, QStringLiteral("not_rooms"), pod.notRooms);
addParam<IfNotEmpty>(jo, QStringLiteral("rooms"), pod.rooms);
addParam<IfNotEmpty>(jo, QStringLiteral("contains_url"), pod.containsUrl);
-}
-void JsonObjectConverter<RoomEventFilter>::fillFrom(const QJsonObject& jo,
- RoomEventFilter& result)
+}
+
+void JsonObjectConverter<RoomEventFilter>::fillFrom(const QJsonObject& jo, RoomEventFilter& result)
{
fillFromJson<EventFilter>(jo, result);
fromJson(jo.value("not_rooms"_ls), result.notRooms);
fromJson(jo.value("rooms"_ls), result.rooms);
fromJson(jo.value("contains_url"_ls), result.containsUrl);
+
}
+
+
+
diff --git a/lib/csapi/definitions/room_event_filter.h b/lib/csapi/definitions/room_event_filter.h
index 13c82341..92e210fe 100644
--- a/lib/csapi/definitions/room_event_filter.h
+++ b/lib/csapi/definitions/room_event_filter.h
@@ -4,30 +4,36 @@
#pragma once
-#include "converters.h"
+
#include "converters.h"
+
#include "csapi/definitions/event_filter.h"
+#include "converters.h"
+
+namespace QMatrixClient
+{
+
+// Data structures
+
+
+struct RoomEventFilter : EventFilter
+{
+ /// A list of room IDs to exclude. If this list is absent then no rooms are excluded. A matching room will be excluded even if it is listed in the ``'rooms'`` filter.
+ QStringList notRooms;
+ /// A list of room IDs to include. If this list is absent then all rooms are included.
+ QStringList rooms;
+ /// If ``true``, includes only events with a ``url`` key in their content. If ``false``, excludes those events. If omitted, ``url`` key is not considered for filtering.
+ Omittable<bool> containsUrl;
+
+
+};
+
+template <> struct JsonObjectConverter<RoomEventFilter>
+{
+ static void dumpTo(QJsonObject& jo, const RoomEventFilter& pod);
+ static void fillFrom(const QJsonObject& jo, RoomEventFilter& pod);};
+
-namespace QMatrixClient {
- // Data structures
-
- struct RoomEventFilter : EventFilter {
- /// A list of room IDs to exclude. If this list is absent then no rooms
- /// are excluded. A matching room will be excluded even if it is listed
- /// in the ``'rooms'`` filter.
- QStringList notRooms;
- /// A list of room IDs to include. If this list is absent then all rooms
- /// are included.
- QStringList rooms;
- /// If ``true``, includes only events with a ``url`` key in their
- /// content. If ``false``, excludes those events. If omitted, ``url``
- /// key is not considered for filtering.
- Omittable<bool> containsUrl;
- };
- template <> struct JsonObjectConverter<RoomEventFilter> {
- static void dumpTo(QJsonObject& jo, const RoomEventFilter& pod);
- static void fillFrom(const QJsonObject& jo, RoomEventFilter& pod);
- };
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/sync_filter.cpp b/lib/csapi/definitions/sync_filter.cpp
index c06c16ca..a1ef53c5 100644
--- a/lib/csapi/definitions/sync_filter.cpp
+++ b/lib/csapi/definitions/sync_filter.cpp
@@ -4,29 +4,29 @@
#include "sync_filter.h"
+
using namespace QMatrixClient;
-void JsonObjectConverter<StateFilter>::dumpTo(QJsonObject& jo,
- const StateFilter& pod)
+
+void JsonObjectConverter<StateFilter>::dumpTo(QJsonObject& jo, const StateFilter& pod)
{
fillJson<RoomEventFilter>(jo, pod);
- addParam<IfNotEmpty>(jo, QStringLiteral("lazy_load_members"),
- pod.lazyLoadMembers);
- addParam<IfNotEmpty>(jo, QStringLiteral("include_redundant_members"),
- pod.includeRedundantMembers);
-}
+ addParam<IfNotEmpty>(jo, QStringLiteral("lazy_load_members"), pod.lazyLoadMembers);
+ addParam<IfNotEmpty>(jo, QStringLiteral("include_redundant_members"), pod.includeRedundantMembers);
-void JsonObjectConverter<StateFilter>::fillFrom(const QJsonObject& jo,
- StateFilter& result)
+}
+
+void JsonObjectConverter<StateFilter>::fillFrom(const QJsonObject& jo, StateFilter& result)
{
fillFromJson<RoomEventFilter>(jo, result);
fromJson(jo.value("lazy_load_members"_ls), result.lazyLoadMembers);
- fromJson(jo.value("include_redundant_members"_ls),
- result.includeRedundantMembers);
+ fromJson(jo.value("include_redundant_members"_ls), result.includeRedundantMembers);
+
}
+
-void JsonObjectConverter<RoomFilter>::dumpTo(QJsonObject& jo,
- const RoomFilter& pod)
+
+void JsonObjectConverter<RoomFilter>::dumpTo(QJsonObject& jo, const RoomFilter& pod)
{
addParam<IfNotEmpty>(jo, QStringLiteral("not_rooms"), pod.notRooms);
addParam<IfNotEmpty>(jo, QStringLiteral("rooms"), pod.rooms);
@@ -35,10 +35,10 @@ void JsonObjectConverter<RoomFilter>::dumpTo(QJsonObject& jo,
addParam<IfNotEmpty>(jo, QStringLiteral("state"), pod.state);
addParam<IfNotEmpty>(jo, QStringLiteral("timeline"), pod.timeline);
addParam<IfNotEmpty>(jo, QStringLiteral("account_data"), pod.accountData);
-}
-void JsonObjectConverter<RoomFilter>::fillFrom(const QJsonObject& jo,
- RoomFilter& result)
+}
+
+void JsonObjectConverter<RoomFilter>::fillFrom(const QJsonObject& jo, RoomFilter& result)
{
fromJson(jo.value("not_rooms"_ls), result.notRooms);
fromJson(jo.value("rooms"_ls), result.rooms);
@@ -47,8 +47,11 @@ void JsonObjectConverter<RoomFilter>::fillFrom(const QJsonObject& jo,
fromJson(jo.value("state"_ls), result.state);
fromJson(jo.value("timeline"_ls), result.timeline);
fromJson(jo.value("account_data"_ls), result.accountData);
+
}
+
+
void JsonObjectConverter<Filter>::dumpTo(QJsonObject& jo, const Filter& pod)
{
addParam<IfNotEmpty>(jo, QStringLiteral("event_fields"), pod.eventFields);
@@ -56,14 +59,18 @@ void JsonObjectConverter<Filter>::dumpTo(QJsonObject& jo, const Filter& pod)
addParam<IfNotEmpty>(jo, QStringLiteral("presence"), pod.presence);
addParam<IfNotEmpty>(jo, QStringLiteral("account_data"), pod.accountData);
addParam<IfNotEmpty>(jo, QStringLiteral("room"), pod.room);
-}
-void JsonObjectConverter<Filter>::fillFrom(const QJsonObject& jo,
- Filter& result)
+}
+
+void JsonObjectConverter<Filter>::fillFrom(const QJsonObject& jo, Filter& result)
{
fromJson(jo.value("event_fields"_ls), result.eventFields);
fromJson(jo.value("event_format"_ls), result.eventFormat);
fromJson(jo.value("presence"_ls), result.presence);
fromJson(jo.value("account_data"_ls), result.accountData);
fromJson(jo.value("room"_ls), result.room);
+
}
+
+
+
diff --git a/lib/csapi/definitions/sync_filter.h b/lib/csapi/definitions/sync_filter.h
index d523c388..551ba2fd 100644
--- a/lib/csapi/definitions/sync_filter.h
+++ b/lib/csapi/definitions/sync_filter.h
@@ -4,94 +4,83 @@
#pragma once
-#include "converters.h"
+
#include "converters.h"
+
#include "csapi/definitions/event_filter.h"
+#include "converters.h"
#include "csapi/definitions/room_event_filter.h"
-namespace QMatrixClient {
- // Data structures
+namespace QMatrixClient
+{
+
+// Data structures
+
+/// The state events to include for rooms.
+struct StateFilter : RoomEventFilter
+{
+ /// If ``true``, the only ``m.room.member`` events returned inthe ``state`` section of the ``/sync`` response are thosewhich are definitely necessary for a client to displaythe ``sender`` of the timeline events in that response.If ``false``, ``m.room.member`` events are not filtered.By default, servers should suppress duplicate redundantlazy-loaded ``m.room.member`` events from being sent to a givenclient across multiple calls to ``/sync``, given that most clientscache membership events (see ``include_redundant_members``to change this behaviour).
+ Omittable<bool> lazyLoadMembers;
+ /// If ``true``, the ``state`` section of the ``/sync`` response willalways contain the ``m.room.member`` events required to displaythe ``sender`` of the timeline events in that response, assuming``lazy_load_members`` is enabled. This means that redundantduplicate member events may be returned across multiple calls to``/sync``. This is useful for naive clients who never trackmembership data. If ``false``, duplicate ``m.room.member`` eventsmay be suppressed by the server across multiple calls to ``/sync``.If ``lazy_load_members`` is ``false`` this field is ignored.
+ Omittable<bool> includeRedundantMembers;
+
+
+};
+
+template <> struct JsonObjectConverter<StateFilter>
+{
+ static void dumpTo(QJsonObject& jo, const StateFilter& pod);
+ static void fillFrom(const QJsonObject& jo, StateFilter& pod);};
+/// Filters to be applied to room data.
+struct RoomFilter
+{
+ /// A list of room IDs to exclude. If this list is absent then no rooms are excluded. A matching room will be excluded even if it is listed in the ``'rooms'`` filter. This filter is applied before the filters in ``ephemeral``, ``state``, ``timeline`` or ``account_data``
+ QStringList notRooms;
+ /// A list of room IDs to include. If this list is absent then all rooms are included. This filter is applied before the filters in ``ephemeral``, ``state``, ``timeline`` or ``account_data``
+ QStringList rooms;
+ /// The events that aren't recorded in the room history, e.g. typing and receipts, to include for rooms.
+ Omittable<RoomEventFilter> ephemeral;
+ /// Include rooms that the user has left in the sync, default false
+ Omittable<bool> includeLeave;
/// The state events to include for rooms.
- struct StateFilter : RoomEventFilter {
- /// If ``true``, the only ``m.room.member`` events returned in
- /// the ``state`` section of the ``/sync`` response are those
- /// which are definitely necessary for a client to display
- /// the ``sender`` of the timeline events in that response.
- /// If ``false``, ``m.room.member`` events are not filtered.
- /// By default, servers should suppress duplicate redundant
- /// lazy-loaded ``m.room.member`` events from being sent to a given
- /// client across multiple calls to ``/sync``, given that most clients
- /// cache membership events (see ``include_redundant_members``
- /// to change this behaviour).
- Omittable<bool> lazyLoadMembers;
- /// If ``true``, the ``state`` section of the ``/sync`` response will
- /// always contain the ``m.room.member`` events required to display
- /// the ``sender`` of the timeline events in that response, assuming
- /// ``lazy_load_members`` is enabled. This means that redundant
- /// duplicate member events may be returned across multiple calls to
- /// ``/sync``. This is useful for naive clients who never track
- /// membership data. If ``false``, duplicate ``m.room.member`` events
- /// may be suppressed by the server across multiple calls to ``/sync``.
- /// If ``lazy_load_members`` is ``false`` this field is ignored.
- Omittable<bool> includeRedundantMembers;
- };
- template <> struct JsonObjectConverter<StateFilter> {
- static void dumpTo(QJsonObject& jo, const StateFilter& pod);
- static void fillFrom(const QJsonObject& jo, StateFilter& pod);
- };
+ Omittable<StateFilter> state;
+ /// The message and state update events to include for rooms.
+ Omittable<RoomEventFilter> timeline;
+ /// The per user account data to include for rooms.
+ Omittable<RoomEventFilter> accountData;
+
+};
+
+template <> struct JsonObjectConverter<RoomFilter>
+{
+ static void dumpTo(QJsonObject& jo, const RoomFilter& pod);
+ static void fillFrom(const QJsonObject& jo, RoomFilter& pod);};
+
+
+struct Filter
+{
+ /// List of event fields to include. If this list is absent then all fields are included. The entries may include '.' charaters to indicate sub-fields. So ['content.body'] will include the 'body' field of the 'content' object. A literal '.' character in a field name may be escaped using a '\\'. A server may include more fields than were requested.
+ QStringList eventFields;
+ /// The format to use for events. 'client' will return the events in a format suitable for clients. 'federation' will return the raw event as receieved over federation. The default is 'client'.
+ QString eventFormat;
+ /// The presence updates to include.
+ Omittable<EventFilter> presence;
+ /// The user account data that isn't associated with rooms to include.
+ Omittable<EventFilter> accountData;
/// Filters to be applied to room data.
- struct RoomFilter {
- /// A list of room IDs to exclude. If this list is absent then no rooms
- /// are excluded. A matching room will be excluded even if it is listed
- /// in the ``'rooms'`` filter. This filter is applied before the filters
- /// in ``ephemeral``, ``state``, ``timeline`` or ``account_data``
- QStringList notRooms;
- /// A list of room IDs to include. If this list is absent then all rooms
- /// are included. This filter is applied before the filters in
- /// ``ephemeral``, ``state``, ``timeline`` or ``account_data``
- QStringList rooms;
- /// The events that aren't recorded in the room history, e.g. typing and
- /// receipts, to include for rooms.
- Omittable<RoomEventFilter> ephemeral;
- /// Include rooms that the user has left in the sync, default false
- Omittable<bool> includeLeave;
- /// The state events to include for rooms.
- Omittable<StateFilter> state;
- /// The message and state update events to include for rooms.
- Omittable<RoomEventFilter> timeline;
- /// The per user account data to include for rooms.
- Omittable<RoomEventFilter> accountData;
- };
- template <> struct JsonObjectConverter<RoomFilter> {
- static void dumpTo(QJsonObject& jo, const RoomFilter& pod);
- static void fillFrom(const QJsonObject& jo, RoomFilter& pod);
- };
-
- struct Filter {
- /// List of event fields to include. If this list is absent then all
- /// fields are included. The entries may include '.' charaters to
- /// indicate sub-fields. So ['content.body'] will include the 'body'
- /// field of the 'content' object. A literal '.' character in a field
- /// name may be escaped using a '\\'. A server may include more fields
- /// than were requested.
- QStringList eventFields;
- /// The format to use for events. 'client' will return the events in a
- /// format suitable for clients. 'federation' will return the raw event
- /// as receieved over federation. The default is 'client'.
- QString eventFormat;
- /// The presence updates to include.
- Omittable<EventFilter> presence;
- /// The user account data that isn't associated with rooms to include.
- Omittable<EventFilter> accountData;
- /// Filters to be applied to room data.
- Omittable<RoomFilter> room;
- };
- template <> struct JsonObjectConverter<Filter> {
- static void dumpTo(QJsonObject& jo, const Filter& pod);
- static void fillFrom(const QJsonObject& jo, Filter& pod);
- };
+ Omittable<RoomFilter> room;
+
+
+};
+
+template <> struct JsonObjectConverter<Filter>
+{
+ static void dumpTo(QJsonObject& jo, const Filter& pod);
+ static void fillFrom(const QJsonObject& jo, Filter& pod);};
+
+
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/user_identifier.cpp b/lib/csapi/definitions/user_identifier.cpp
index 998f1b85..02201179 100644
--- a/lib/csapi/definitions/user_identifier.cpp
+++ b/lib/csapi/definitions/user_identifier.cpp
@@ -4,19 +4,23 @@
#include "user_identifier.h"
+
using namespace QMatrixClient;
-void JsonObjectConverter<UserIdentifier>::dumpTo(QJsonObject& jo,
- const UserIdentifier& pod)
+
+void JsonObjectConverter<UserIdentifier>::dumpTo(QJsonObject& jo, const UserIdentifier& pod)
{
fillJson(jo, pod.additionalProperties);
addParam<>(jo, QStringLiteral("type"), pod.type);
-}
-void JsonObjectConverter<UserIdentifier>::fillFrom(QJsonObject jo,
- UserIdentifier& result)
+}
+
+void JsonObjectConverter<UserIdentifier>::fillFrom(QJsonObject jo, UserIdentifier& result)
{
fromJson(jo.take("type"_ls), result.type);
-
fromJson(jo, result.additionalProperties);
+
}
+
+
+
diff --git a/lib/csapi/definitions/user_identifier.h b/lib/csapi/definitions/user_identifier.h
index 4a9ce684..831ba191 100644
--- a/lib/csapi/definitions/user_identifier.h
+++ b/lib/csapi/definitions/user_identifier.h
@@ -4,24 +4,34 @@
#pragma once
+
+
#include "converters.h"
#include <QtCore/QVariant>
-namespace QMatrixClient {
- // Data structures
+namespace QMatrixClient
+{
+
+// Data structures
+
+/// Identification information for a user
+struct UserIdentifier
+{
+ /// The type of identification. See `Identifier types`_ for supported values and additional property descriptions.
+ QString type;
+
/// Identification information for a user
- struct UserIdentifier {
- /// The type of identification. See `Identifier types`_ for supported
- /// values and additional property descriptions.
- QString type;
- /// Identification information for a user
- QVariantHash additionalProperties;
- };
- template <> struct JsonObjectConverter<UserIdentifier> {
- static void dumpTo(QJsonObject& jo, const UserIdentifier& pod);
- static void fillFrom(QJsonObject jo, UserIdentifier& pod);
- };
+ QVariantHash additionalProperties;
+
+};
+
+template <> struct JsonObjectConverter<UserIdentifier>
+{
+ static void dumpTo(QJsonObject& jo, const UserIdentifier& pod);
+ static void fillFrom(QJsonObject jo, UserIdentifier& pod);};
+
+
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/wellknown/full.cpp b/lib/csapi/definitions/wellknown/full.cpp
index 35c0df5b..a2d71db0 100644
--- a/lib/csapi/definitions/wellknown/full.cpp
+++ b/lib/csapi/definitions/wellknown/full.cpp
@@ -4,22 +4,25 @@
#include "full.h"
+
using namespace QMatrixClient;
-void JsonObjectConverter<DiscoveryInformation>::dumpTo(
- QJsonObject& jo, const DiscoveryInformation& pod)
+
+void JsonObjectConverter<DiscoveryInformation>::dumpTo(QJsonObject& jo, const DiscoveryInformation& pod)
{
fillJson(jo, pod.additionalProperties);
addParam<>(jo, QStringLiteral("m.homeserver"), pod.homeserver);
- addParam<IfNotEmpty>(jo, QStringLiteral("m.identity_server"),
- pod.identityServer);
-}
+ addParam<IfNotEmpty>(jo, QStringLiteral("m.identity_server"), pod.identityServer);
-void JsonObjectConverter<DiscoveryInformation>::fillFrom(
- QJsonObject jo, DiscoveryInformation& result)
+}
+
+void JsonObjectConverter<DiscoveryInformation>::fillFrom(QJsonObject jo, DiscoveryInformation& result)
{
fromJson(jo.take("m.homeserver"_ls), result.homeserver);
fromJson(jo.take("m.identity_server"_ls), result.identityServer);
-
fromJson(jo, result.additionalProperties);
+
}
+
+
+
diff --git a/lib/csapi/definitions/wellknown/full.h b/lib/csapi/definitions/wellknown/full.h
index 9b920eda..ef975969 100644
--- a/lib/csapi/definitions/wellknown/full.h
+++ b/lib/csapi/definitions/wellknown/full.h
@@ -4,32 +4,40 @@
#pragma once
+
+
#include "converters.h"
+#include <QtCore/QJsonObject>
#include "converters.h"
#include "csapi/definitions/wellknown/homeserver.h"
#include "csapi/definitions/wellknown/identity_server.h"
#include <QtCore/QHash>
-#include <QtCore/QJsonObject>
-namespace QMatrixClient {
- // Data structures
-
- /// Used by clients to determine the homeserver, identity server, and other
- /// optional components they should be interacting with.
- struct DiscoveryInformation {
- /// Used by clients to determine the homeserver, identity server, and
- /// other optional components they should be interacting with.
- HomeserverInformation homeserver;
- /// Used by clients to determine the homeserver, identity server, and
- /// other optional components they should be interacting with.
- Omittable<IdentityServerInformation> identityServer;
- /// Application-dependent keys using Java package naming convention.
- QHash<QString, QJsonObject> additionalProperties;
- };
- template <> struct JsonObjectConverter<DiscoveryInformation> {
- static void dumpTo(QJsonObject& jo, const DiscoveryInformation& pod);
- static void fillFrom(QJsonObject jo, DiscoveryInformation& pod);
- };
+namespace QMatrixClient
+{
+
+// Data structures
+
+/// Used by clients to determine the homeserver, identity server, and other/// optional components they should be interacting with.
+struct DiscoveryInformation
+{
+ /// Used by clients to determine the homeserver, identity server, and otheroptional components they should be interacting with.
+ HomeserverInformation homeserver;
+ /// Used by clients to determine the homeserver, identity server, and otheroptional components they should be interacting with.
+ Omittable<IdentityServerInformation> identityServer;
+
+
+ /// Application-dependent keys using Java package naming convention.
+ QHash<QString, QJsonObject> additionalProperties;
+
+};
+
+template <> struct JsonObjectConverter<DiscoveryInformation>
+{
+ static void dumpTo(QJsonObject& jo, const DiscoveryInformation& pod);
+ static void fillFrom(QJsonObject jo, DiscoveryInformation& pod);};
+
+
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/wellknown/homeserver.cpp b/lib/csapi/definitions/wellknown/homeserver.cpp
index a7337520..a8a5077b 100644
--- a/lib/csapi/definitions/wellknown/homeserver.cpp
+++ b/lib/csapi/definitions/wellknown/homeserver.cpp
@@ -4,16 +4,21 @@
#include "homeserver.h"
+
using namespace QMatrixClient;
-void JsonObjectConverter<HomeserverInformation>::dumpTo(
- QJsonObject& jo, const HomeserverInformation& pod)
+
+void JsonObjectConverter<HomeserverInformation>::dumpTo(QJsonObject& jo, const HomeserverInformation& pod)
{
addParam<>(jo, QStringLiteral("base_url"), pod.baseUrl);
-}
-void JsonObjectConverter<HomeserverInformation>::fillFrom(
- const QJsonObject& jo, HomeserverInformation& result)
+}
+
+void JsonObjectConverter<HomeserverInformation>::fillFrom(const QJsonObject& jo, HomeserverInformation& result)
{
fromJson(jo.value("base_url"_ls), result.baseUrl);
+
}
+
+
+
diff --git a/lib/csapi/definitions/wellknown/homeserver.h b/lib/csapi/definitions/wellknown/homeserver.h
index 8bd3c150..fe6af172 100644
--- a/lib/csapi/definitions/wellknown/homeserver.h
+++ b/lib/csapi/definitions/wellknown/homeserver.h
@@ -4,19 +4,30 @@
#pragma once
+
+
#include "converters.h"
-namespace QMatrixClient {
- // Data structures
-
- /// Used by clients to discover homeserver information.
- struct HomeserverInformation {
- /// The base URL for the homeserver for client-server connections.
- QString baseUrl;
- };
- template <> struct JsonObjectConverter<HomeserverInformation> {
- static void dumpTo(QJsonObject& jo, const HomeserverInformation& pod);
- static void fillFrom(const QJsonObject& jo, HomeserverInformation& pod);
- };
+
+namespace QMatrixClient
+{
+
+// Data structures
+
+/// Used by clients to discover homeserver information.
+struct HomeserverInformation
+{
+ /// The base URL for the homeserver for client-server connections.
+ QString baseUrl;
+
+
+};
+
+template <> struct JsonObjectConverter<HomeserverInformation>
+{
+ static void dumpTo(QJsonObject& jo, const HomeserverInformation& pod);
+ static void fillFrom(const QJsonObject& jo, HomeserverInformation& pod);};
+
+
} // namespace QMatrixClient
diff --git a/lib/csapi/definitions/wellknown/identity_server.cpp b/lib/csapi/definitions/wellknown/identity_server.cpp
index 46a614d8..a9fae614 100644
--- a/lib/csapi/definitions/wellknown/identity_server.cpp
+++ b/lib/csapi/definitions/wellknown/identity_server.cpp
@@ -4,16 +4,21 @@
#include "identity_server.h"
+
using namespace QMatrixClient;
-void JsonObjectConverter<IdentityServerInformation>::dumpTo(
- QJsonObject& jo, const IdentityServerInformation& pod)
+
+void JsonObjectConverter<IdentityServerInformation>::dumpTo(QJsonObject& jo, const IdentityServerInformation& pod)
{
addParam<>(jo, QStringLiteral("base_url"), pod.baseUrl);
-}
-void JsonObjectConverter<IdentityServerInformation>::fillFrom(
- const QJsonObject& jo, IdentityServerInformation& result)
+}
+
+void JsonObjectConverter<IdentityServerInformation>::fillFrom(const QJsonObject& jo, IdentityServerInformation& result)
{
fromJson(jo.value("base_url"_ls), result.baseUrl);
+
}
+
+
+
diff --git a/lib/csapi/definitions/wellknown/identity_server.h b/lib/csapi/definitions/wellknown/identity_server.h
index fd53dfc1..4462f86e 100644
--- a/lib/csapi/definitions/wellknown/identity_server.h
+++ b/lib/csapi/definitions/wellknown/identity_server.h
@@ -4,21 +4,30 @@
#pragma once
+
+
#include "converters.h"
-namespace QMatrixClient {
- // Data structures
-
- /// Used by clients to discover identity server information.
- struct IdentityServerInformation {
- /// The base URL for the identity server for client-server connections.
- QString baseUrl;
- };
- template <> struct JsonObjectConverter<IdentityServerInformation> {
- static void dumpTo(QJsonObject& jo,
- const IdentityServerInformation& pod);
- static void fillFrom(const QJsonObject& jo,
- IdentityServerInformation& pod);
- };
+
+namespace QMatrixClient
+{
+
+// Data structures
+
+/// Used by clients to discover identity server information.
+struct IdentityServerInformation
+{
+ /// The base URL for the identity server for client-server connections.
+ QString baseUrl;
+
+
+};
+
+template <> struct JsonObjectConverter<IdentityServerInformation>
+{
+ static void dumpTo(QJsonObject& jo, const IdentityServerInformation& pod);
+ static void fillFrom(const QJsonObject& jo, IdentityServerInformation& pod);};
+
+
} // namespace QMatrixClient