From 13df852479bf84f297bf59ed99236e52f486a095 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Sat, 14 Dec 2019 23:39:02 +0100 Subject: Reduce some include of Cache.h since it needs 11s on average --- src/CacheStructs.h | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/CacheStructs.h (limited to 'src/CacheStructs.h') diff --git a/src/CacheStructs.h b/src/CacheStructs.h new file mode 100644 index 00000000..275d20cb --- /dev/null +++ b/src/CacheStructs.h @@ -0,0 +1,91 @@ +#pragma once + +#include +#include +#include + +#include + +#include + +struct RoomMember +{ + QString user_id; + QString display_name; + QImage avatar; +}; + +struct SearchResult +{ + QString user_id; + QString display_name; +}; + +//! Used to uniquely identify a list of read receipts. +struct ReadReceiptKey +{ + std::string event_id; + std::string room_id; +}; + +void +to_json(json &j, const ReadReceiptKey &key); + +void +from_json(const json &j, ReadReceiptKey &key); + +struct DescInfo +{ + QString event_id; + QString userid; + QString body; + QString timestamp; + QDateTime datetime; +}; + +//! UI info associated with a room. +struct RoomInfo +{ + //! The calculated name of the room. + std::string name; + //! The topic of the room. + std::string topic; + //! The calculated avatar url of the room. + std::string avatar_url; + //! The calculated version of this room set at creation time. + std::string version; + //! Whether or not the room is an invite. + bool is_invite = false; + //! Total number of members in the room. + int16_t member_count = 0; + //! Who can access to the room. + mtx::events::state::JoinRule join_rule = mtx::events::state::JoinRule::Public; + bool guest_access = false; + //! Metadata describing the last message in the timeline. + DescInfo msgInfo; + //! The list of tags associated with this room + std::vector tags; +}; + +void +to_json(json &j, const RoomInfo &info); +void +from_json(const json &j, RoomInfo &info); + +//! Basic information per member; +struct MemberInfo +{ + std::string name; + std::string avatar_url; +}; + +void +to_json(json &j, const MemberInfo &info); +void +from_json(const json &j, MemberInfo &info); + +struct RoomSearchResult +{ + std::string room_id; + RoomInfo info; +}; -- cgit 1.5.1