diff --git a/include/ircd/m/sync.h b/include/ircd/m/sync.h index 440d626f8..df188ad11 100644 --- a/include/ircd/m/sync.h +++ b/include/ircd/m/sync.h @@ -57,6 +57,7 @@ struct ircd::m::sync::item public: string_view name() const; string_view member_name() const; + size_t children() const; bool poll(data &, const m::event &); bool linear(data &); diff --git a/ircd/m.cc b/ircd/m.cc index 5f1482955..cdd8b3c75 100644 --- a/ircd/m.cc +++ b/ircd/m.cc @@ -1070,6 +1070,21 @@ catch(const std::bad_function_call &e) return false; } +size_t +ircd::m::sync::item::children() +const +{ + size_t ret(0); + sync::for_each(this->name(), [&ret] + (auto &item) + { + ++ret; + return true; + }); + + return ret; +} + ircd::string_view ircd::m::sync::item::member_name() const