#pragma once #include #include #include namespace beast::insight { /** * A reference to a handler for performing polled collection. */ class Hook final { public: /** * Create a null hook. * A null hook has no associated handler. */ Hook() = default; /** * Create a hook referencing the specified implementation. * Normally this won't be called directly. Instead, call the appropriate * factory function in the Collector interface. * @see Collector. */ explicit Hook(std::shared_ptr impl) : impl_(std::move(impl)) { } [[nodiscard]] std::shared_ptr const& impl() const { return impl_; } private: std::shared_ptr impl_; }; } // namespace beast::insight