#pragma once #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 const& impl) : impl_(impl) { } [[nodiscard]] std::shared_ptr const& impl() const { return impl_; } private: std::shared_ptr impl_; }; } // namespace beast::insight