diff --git a/include/ircd/cl/work.h b/include/ircd/cl/work.h index 3d849d44b..a941a2016 100644 --- a/include/ircd/cl/work.h +++ b/include/ircd/cl/work.h @@ -41,16 +41,9 @@ struct ircd::cl::work ~work() noexcept; }; -namespace ircd -{ - template<> - decltype(cl::work::allocator) - instance_list::allocator; - - template<> - decltype(cl::work::list) - instance_list::list; -} +template<> +decltype(ircd::cl::work::list) +ircd::instance_list::list; /// Queue profiling convenience struct ircd::cl::work::prof diff --git a/include/ircd/client.h b/include/ircd/client.h index f3aea4ab1..db9d6f3fc 100644 --- a/include/ircd/client.h +++ b/include/ircd/client.h @@ -89,6 +89,10 @@ struct ircd::client friend const ipport &local(const client &); }; +template<> +decltype(ircd::client::map) +ircd::instance_multimap::map; + /// Confs can be attached to individual clients to change their behavior struct ircd::client::conf { diff --git a/include/ircd/db/database.h b/include/ircd/db/database.h index 1235772b6..7dbdfb47a 100644 --- a/include/ircd/db/database.h +++ b/include/ircd/db/database.h @@ -179,3 +179,7 @@ struct ircd::db::database static const database &get(const column &); static database &get(column &); }; + +template<> +decltype(ircd::db::database::list) +ircd::instance_list::list; diff --git a/include/ircd/exec.h b/include/ircd/exec.h index db2d5e07a..f403ebf01 100644 --- a/include/ircd/exec.h +++ b/include/ircd/exec.h @@ -70,6 +70,10 @@ struct ircd::exec ~exec() noexcept; }; +template<> +decltype(ircd::exec::list) +ircd::instance_list::list; + /// Exec options /// struct ircd::exec::opts diff --git a/include/ircd/ios/descriptor.h b/include/ircd/ios/descriptor.h index dbbde70a1..38a77cc73 100644 --- a/include/ircd/ios/descriptor.h +++ b/include/ircd/ios/descriptor.h @@ -51,6 +51,10 @@ struct ircd::ios::descriptor ~descriptor() noexcept; }; +template<> +decltype(ircd::ios::descriptor::list) +ircd::instance_list::list; + /// Statistics for the descriptor. struct ircd::ios::descriptor::stats { diff --git a/include/ircd/logger.h b/include/ircd/logger.h index 0d9cd90c4..c7fd0bc95 100644 --- a/include/ircd/logger.h +++ b/include/ircd/logger.h @@ -109,6 +109,10 @@ struct ircd::log::log static log *find(const char &snote); }; +template<> +decltype(ircd::log::log::list) +ircd::instance_list::list; + /// log::hook is used by the receivers of messages; this is a extern singleton. /// Examples of hooks are stdout/stderr, and file logging. This hook does not /// propagate exceptions and silently drops them. Listeners should not yield diff --git a/include/ircd/m/acquire.h b/include/ircd/m/acquire.h index 57c2a5795..0008bc270 100644 --- a/include/ircd/m/acquire.h +++ b/include/ircd/m/acquire.h @@ -68,6 +68,10 @@ struct ircd::m::acquire ~acquire() noexcept; }; +template<> +decltype(ircd::m::acquire::list) +ircd::instance_list::list; + struct ircd::m::acquire::opts { /// Room apropos; note that the event_id in this structure may have some diff --git a/include/ircd/m/app.h b/include/ircd/m/app.h index 5caedb347..a20ffaf1e 100644 --- a/include/ircd/m/app.h +++ b/include/ircd/m/app.h @@ -46,3 +46,7 @@ struct ircd::m::app static void init(), fini(); }; + +template<> +decltype(ircd::m::app::list) +ircd::instance_list::list; diff --git a/include/ircd/m/fed/well_known.h b/include/ircd/m/fed/well_known.h index 5dc69d352..7d16dee56 100644 --- a/include/ircd/m/fed/well_known.h +++ b/include/ircd/m/fed/well_known.h @@ -81,3 +81,7 @@ struct ircd::m::fed::well_known::request char tgtbuf[2][rfc3986::REMOTE_BUFSIZE]; char buf[15_KiB]; }; + +template<> +decltype(ircd::m::fed::well_known::request::list) +ircd::instance_list::list; diff --git a/include/ircd/m/gossip.h b/include/ircd/m/gossip.h index c186c8264..08f3efced 100644 --- a/include/ircd/m/gossip.h +++ b/include/ircd/m/gossip.h @@ -51,6 +51,10 @@ struct ircd::m::gossip ~gossip() noexcept; }; +template<> +decltype(ircd::m::gossip::list) +ircd::instance_list::list; + struct ircd::m::gossip::opts { /// Room apropos; when room.event_id is true, only that event will be diff --git a/include/ircd/m/hook.h b/include/ircd/m/hook.h index f3e5ff73e..5f8dbe40a 100644 --- a/include/ircd/m/hook.h +++ b/include/ircd/m/hook.h @@ -78,6 +78,10 @@ struct ircd::m::hook::base virtual ~base() noexcept; }; +template<> +decltype(ircd::m::hook::base::list) +ircd::instance_list::list; + /// Non-template base class for all hook sites (dispatcher/caller component) /// struct ircd::m::hook::base::site @@ -111,6 +115,10 @@ struct ircd::m::hook::base::site virtual ~site() noexcept; }; +template<> +decltype(ircd::m::hook::base::site::list) +ircd::instance_list::list; + /// Hook function with no payload; only an m::event argument template<> struct ircd::m::hook::hook diff --git a/include/ircd/m/push.h b/include/ircd/m/push.h index 9c151e334..01b569d80 100644 --- a/include/ircd/m/push.h +++ b/include/ircd/m/push.h @@ -54,6 +54,10 @@ struct ircd::m::push::request char buf[15_KiB]; }; +template<> +decltype(ircd::m::push::request::list) +ircd::instance_list::list; + struct ircd::m::push::match :boolean { diff --git a/include/ircd/m/sync/data.h b/include/ircd/m/sync/data.h index 85e606307..6acf633d2 100644 --- a/include/ircd/m/sync/data.h +++ b/include/ircd/m/sync/data.h @@ -118,6 +118,10 @@ struct ircd::m::sync::data ~data() noexcept; }; +template<> +decltype(ircd::m::sync::data::list) +ircd::instance_list::list; + inline bool ircd::m::sync::apropos(const data &d, const event &event) diff --git a/include/ircd/m/sync/item.h b/include/ircd/m/sync/item.h index 06737723d..f6a7b365e 100644 --- a/include/ircd/m/sync/item.h +++ b/include/ircd/m/sync/item.h @@ -61,3 +61,7 @@ struct ircd::m::sync::item item(const item &) = delete; ~item() noexcept; }; + +template<> +decltype(ircd::m::sync::item::map) +ircd::instance_multimap>::map; diff --git a/include/ircd/m/vm/eval.h b/include/ircd/m/vm/eval.h index 629a0997a..95f66bf2f 100644 --- a/include/ircd/m/vm/eval.h +++ b/include/ircd/m/vm/eval.h @@ -106,3 +106,7 @@ struct ircd::m::vm::eval static eval *seqmin(); static void seqsort(); }; + +template<> +decltype(ircd::m::vm::eval::list) +ircd::instance_list::list; diff --git a/include/ircd/resource/resource.h b/include/ircd/resource/resource.h index 7d9e79449..1717fa31e 100644 --- a/include/ircd/resource/resource.h +++ b/include/ircd/resource/resource.h @@ -60,6 +60,10 @@ struct ircd::resource static resource &find(const string_view &path); }; +template<> +decltype(ircd::resource::map) +ircd::instance_map::map; + #include "method.h" #include "request.h" #include "response.h" diff --git a/ircd/ctx.h b/ircd/ctx.h index 392f285db..93058e673 100644 --- a/ircd/ctx.h +++ b/ircd/ctx.h @@ -75,3 +75,7 @@ struct ircd::ctx::ctx ctx &operator=(const ctx &) = delete; ~ctx() noexcept; }; + +template<> +decltype(ircd::ctx::ctx::list) +ircd::util::instance_list::list;