#ifndef DYNAMIC_POSTING_INVOKER_H #define DYNAMIC_POSTING_INVOKER_H #include #include #include #include namespace sscl::co { /** Fallback ThreadTag for DynamicViralPostingInvoker when ExplicitPostTarget is * omitted. Callers must always pass ExplicitPostTarget in production paths. */ struct DynamicPostTargetThreadTag { static boost::asio::io_context &io_context() { throw std::runtime_error( std::string(__func__) + ": ExplicitPostTarget required for DynamicViralPostingInvoker"); } }; template using DynamicPostingPromise = TaggedPostingPromise; template using DynamicViralPostingInvoker = ViralPostingInvoker; } // namespace sscl::co #endif // DYNAMIC_POSTING_INVOKER_H