Files
rippled/include/xrpl/beast/insight/Hook.h

38 lines
795 B
C++

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