mirror of
https://github.com/matrix-construct/construct
synced 2024-11-26 00:32:35 +01:00
ircd:Ⓜ️:room: Add basic count() suite.
This commit is contained in:
parent
7016241df2
commit
e38371d50c
2 changed files with 54 additions and 0 deletions
|
@ -156,6 +156,9 @@ struct ircd::m::room
|
||||||
void get(const string_view &type, const event::closure &) const;
|
void get(const string_view &type, const event::closure &) const;
|
||||||
event::idx get(std::nothrow_t, const string_view &type) const;
|
event::idx get(std::nothrow_t, const string_view &type) const;
|
||||||
event::idx get(const string_view &type) const;
|
event::idx get(const string_view &type) const;
|
||||||
|
size_t count(const string_view &type, const string_view &state_key) const;
|
||||||
|
size_t count(const string_view &type) const;
|
||||||
|
size_t count() const;
|
||||||
|
|
||||||
room(const id &room_id,
|
room(const id &room_id,
|
||||||
const string_view &event_id,
|
const string_view &event_id,
|
||||||
|
|
|
@ -1400,6 +1400,57 @@ ircd::m::room::index(const room::id &room_id,
|
||||||
// room::room
|
// room::room
|
||||||
//
|
//
|
||||||
|
|
||||||
|
size_t
|
||||||
|
ircd::m::room::count()
|
||||||
|
const
|
||||||
|
{
|
||||||
|
size_t ret(0);
|
||||||
|
for_each(event::closure_idx_bool{[&ret]
|
||||||
|
(const event::idx &event_idx)
|
||||||
|
{
|
||||||
|
++ret;
|
||||||
|
return true;
|
||||||
|
}});
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t
|
||||||
|
ircd::m::room::count(const string_view &type)
|
||||||
|
const
|
||||||
|
{
|
||||||
|
size_t ret(0);
|
||||||
|
for_each(type, event::closure_idx_bool{[&ret]
|
||||||
|
(const event::idx &event_idx)
|
||||||
|
{
|
||||||
|
++ret;
|
||||||
|
return true;
|
||||||
|
}});
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t
|
||||||
|
ircd::m::room::count(const string_view &type,
|
||||||
|
const string_view &state_key)
|
||||||
|
const
|
||||||
|
{
|
||||||
|
size_t ret(0);
|
||||||
|
for_each(type, event::closure_idx_bool{[&state_key, &ret]
|
||||||
|
(const event::idx &event_idx)
|
||||||
|
{
|
||||||
|
ret += query(std::nothrow, event_idx, "state_key", [&state_key]
|
||||||
|
(const string_view &_state_key) -> bool
|
||||||
|
{
|
||||||
|
return state_key == _state_key;
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}});
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
ircd::m::room::has(const string_view &type)
|
ircd::m::room::has(const string_view &type)
|
||||||
const
|
const
|
||||||
|
|
Loading…
Reference in a new issue