From 435e026c08701414a0a83c2e76322c4dd2a4c8eb Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Sun, 22 Jul 2018 13:00:47 -0700 Subject: [PATCH] uv::Loop: Add user-defined data (#1205) --- wpiutil/src/main/native/include/wpi/uv/Loop.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/wpiutil/src/main/native/include/wpi/uv/Loop.h b/wpiutil/src/main/native/include/wpi/uv/Loop.h index 2bcf77c026..727e43247e 100644 --- a/wpiutil/src/main/native/include/wpi/uv/Loop.h +++ b/wpiutil/src/main/native/include/wpi/uv/Loop.h @@ -208,6 +208,21 @@ class Loop final : public std::enable_shared_from_this { */ uv_loop_t* GetRaw() const noexcept { return m_loop; } + /** + * Gets user-defined data. + * @return User-defined data if any, nullptr otherwise. + */ + template + std::shared_ptr GetData() const { + return std::static_pointer_cast(m_data); + } + + /** + * Sets user-defined data. + * @param data User-defined arbitrary data. + */ + void SetData(std::shared_ptr data) { m_data = std::move(data); } + /** * Error signal */ @@ -220,6 +235,7 @@ class Loop final : public std::enable_shared_from_this { void ReportError(int err) { error(Error(err)); } private: + std::shared_ptr m_data; uv_loop_t* m_loop; uv_loop_t m_loopStruct; };