0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-28 23:08:20 +02:00

ircd:Ⓜ️ Add all spec'ed event fields to event tuple.

This commit is contained in:
Jason Volk 2017-10-03 04:10:26 -07:00
parent 4f50cba4a7
commit 3a9696fb6c
2 changed files with 128 additions and 0 deletions

View file

@ -50,10 +50,17 @@ namespace ircd::m
namespace ircd::m::name
{
constexpr const char *const auth_events {"auth_events"};
constexpr const char *const content {"content"};
constexpr const char *const depth {"depth"};
constexpr const char *const event_id {"event_id"};
constexpr const char *const hashes {"hashes"};
constexpr const char *const membership {"membership"};
constexpr const char *const origin {"origin"};
constexpr const char *const origin_server_ts {"origin_server_ts"};
constexpr const char *const prev_ids {"prev_ids"};
constexpr const char *const prev_events {"prev_ids"};
constexpr const char *const prev_state {"prev_ids"};
constexpr const char *const room_id {"room_id"};
constexpr const char *const sender {"sender"};
constexpr const char *const signatures {"signatures"};
@ -65,10 +72,17 @@ namespace ircd::m::name
struct ircd::m::event
:json::tuple
<
json::property<name::auth_events, string_view>,
json::property<name::content, json::object>,
json::property<name::depth, int64_t>,
json::property<name::event_id, string_view>,
json::property<name::hashes, string_view>,
json::property<name::membership, string_view>,
json::property<name::origin, string_view>,
json::property<name::origin_server_ts, time_t>,
json::property<name::prev_ids, string_view>,
json::property<name::prev_events, string_view>,
json::property<name::prev_state, string_view>,
json::property<name::room_id, string_view>,
json::property<name::sender, string_view>,
json::property<name::signatures, string_view>,

View file

@ -278,6 +278,114 @@ const database::descriptor events_signatures_descriptor
}
};
const database::descriptor events_auth_events_descriptor
{
// name
"auth_events",
// explanation
R"(### protocol note:
### developer note:
key is event_id.
)",
// typing (key, value)
{
typeid(string_view), typeid(string_view)
}
};
const database::descriptor events_depth_descriptor
{
// name
"depth",
// explanation
R"(### protocol note:
### developer note:
key is event_id value is long integer
)",
// typing (key, value)
{
typeid(string_view), typeid(int64_t)
}
};
const database::descriptor events_hashes_descriptor
{
// name
"hashes",
// explanation
R"(### protocol note:
### developer note:
key is event_id.
)",
// typing (key, value)
{
typeid(string_view), typeid(string_view)
}
};
const database::descriptor events_membership_descriptor
{
// name
"membership",
// explanation
R"(### protocol note:
### developer note:
key is event_id.
)",
// typing (key, value)
{
typeid(string_view), typeid(string_view)
}
};
const database::descriptor events_prev_events_descriptor
{
// name
"prev_events",
// explanation
R"(### protocol note:
### developer note:
key is event_id.
)",
// typing (key, value)
{
typeid(string_view), typeid(string_view)
}
};
const database::descriptor events_prev_state_descriptor
{
// name
"prev_state",
// explanation
R"(### protocol note:
### developer note:
key is event_id.
)",
// typing (key, value)
{
typeid(string_view), typeid(string_view)
}
};
/// prefix transform for event_id suffixes
///
/// This transform expects a concatenation ending with an event_id which means
@ -482,6 +590,12 @@ const database::description events_description
events_prev_ids_descriptor,
events_unsigned_descriptor,
events_signatures_descriptor,
events_auth_events_descriptor,
events_depth_descriptor,
events_hashes_descriptor,
events_membership_descriptor,
events_prev_events_descriptor,
events_prev_state_descriptor,
event_id_in_sender,
event_id_in_room_id,
event_id_for_room_id_in_type,