diff --git a/modules/client/sync.cc b/modules/client/sync.cc index e96408711..ee6c76b81 100644 --- a/modules/client/sync.cc +++ b/modules/client/sync.cc @@ -35,27 +35,6 @@ on the server, and then continue to call this API to get incremental deltas to the state, and to receive new messages. )"}; -ircd::conf::item -ircd::m::sync::args::timeout_max -{ - { "name", "ircd.client.sync.timeout.max" }, - { "default", 15 * 1000L }, -}; - -ircd::conf::item -ircd::m::sync::args::timeout_min -{ - { "name", "ircd.client.sync.timeout.min" }, - { "default", 5 * 1000L }, -}; - -ircd::conf::item -ircd::m::sync::args::timeout_default -{ - { "name", "ircd.client.sync.timeout.default" }, - { "default", 10 * 1000L }, -}; - decltype(ircd::m::sync::flush_hiwat) ircd::m::sync::flush_hiwat { @@ -402,3 +381,48 @@ ircd::m::sync::longpoll::handle(data &data, { return false; } + +// +// sync/args.h +// + +ircd::conf::item +ircd::m::sync::args::timeout_max +{ + { "name", "ircd.client.sync.timeout.max" }, + { "default", 15 * 1000L }, +}; + +ircd::conf::item +ircd::m::sync::args::timeout_min +{ + { "name", "ircd.client.sync.timeout.min" }, + { "default", 5 * 1000L }, +}; + +ircd::conf::item +ircd::m::sync::args::timeout_default +{ + { "name", "ircd.client.sync.timeout.default" }, + { "default", 10 * 1000L }, +}; + +// +// args::args +// + +ircd::m::sync::args::args(const resource::request &request) +try +:request +{ + request +} +{ +} +catch(const bad_lex_cast &e) +{ + throw m::BAD_REQUEST + { + "Since parameter invalid :%s", e.what() + }; +} diff --git a/modules/client/sync.h b/modules/client/sync.h index 9dd6c2bd5..7db3fac99 100644 --- a/modules/client/sync.h +++ b/modules/client/sync.h @@ -77,11 +77,8 @@ namespace ircd::m::sync::polylog static bool handle(data &); } -/// Argument parser for the client's /sync request struct ircd::m::sync::args { - args(const resource::request &request); - static conf::item timeout_max; static conf::item timeout_min; static conf::item timeout_default; @@ -132,21 +129,6 @@ struct ircd::m::sync::args // marked as being online when it uses this API. One of: ["offline"] request.query.get("set_presence", true) }; -}; -inline -ircd::m::sync::args::args(const resource::request &request) -try -:request -{ - request -} -{ -} -catch(const bad_lex_cast &e) -{ - throw m::BAD_REQUEST - { - "Since parameter invalid :%s", e.what() - }; -} + args(const resource::request &request); +};