From 8b32f0558d6325ddcd8109da43db549f3bb48c9e Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Tue, 5 Mar 2019 14:43:00 -0800 Subject: [PATCH] modules/client/sync/rooms/state: Add unsigned addendum to event output. --- modules/client/sync/rooms/state.cc | 33 ++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/modules/client/sync/rooms/state.cc b/modules/client/sync/rooms/state.cc index 75b761698..d1f5eb5f7 100644 --- a/modules/client/sync/rooms/state.cc +++ b/modules/client/sync/rooms/state.cc @@ -10,6 +10,8 @@ namespace ircd::m::sync { + static void room_state_append(data &, json::stack::array &, const m::event &, const m::event::idx &); + static bool room_state_polylog_events(data &); static bool _room_state_polylog(data &); static bool room_state_polylog(data &); @@ -110,7 +112,7 @@ ircd::m::sync::_room_state_linear(data &data) *data.out, "events" }; - array.append(*data.event); + room_state_append(data, array, *data.event, data.event_idx); return true; } @@ -166,7 +168,7 @@ ircd::m::sync::room_state_polylog_events(data &data) return; const std::lock_guard lock{mutex}; - array.append(event); + room_state_append(data, array, event, event_idx); ret = true; }}; @@ -187,3 +189,30 @@ ircd::m::sync::room_state_polylog_events(data &data) parallel.wait_done(); return ret; } + +void +ircd::m::sync::room_state_append(data &data, + json::stack::array &events, + const m::event &event, + const m::event::idx &event_idx) +{ + json::stack::object object + { + events + }; + + object.append(event); + + json::stack::object unsigned_ + { + object, "unsigned" + }; + + json::stack::member + { + unsigned_, "age", json::value + { + long(vm::current_sequence - event_idx) + } + }; +}