mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
uv::Loop: Add user-defined data (#1205)
This commit is contained in:
@@ -208,6 +208,21 @@ class Loop final : public std::enable_shared_from_this<Loop> {
|
||||
*/
|
||||
uv_loop_t* GetRaw() const noexcept { return m_loop; }
|
||||
|
||||
/**
|
||||
* Gets user-defined data.
|
||||
* @return User-defined data if any, nullptr otherwise.
|
||||
*/
|
||||
template <typename T = void>
|
||||
std::shared_ptr<T> GetData() const {
|
||||
return std::static_pointer_cast<T>(m_data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets user-defined data.
|
||||
* @param data User-defined arbitrary data.
|
||||
*/
|
||||
void SetData(std::shared_ptr<void> data) { m_data = std::move(data); }
|
||||
|
||||
/**
|
||||
* Error signal
|
||||
*/
|
||||
@@ -220,6 +235,7 @@ class Loop final : public std::enable_shared_from_this<Loop> {
|
||||
void ReportError(int err) { error(Error(err)); }
|
||||
|
||||
private:
|
||||
std::shared_ptr<void> m_data;
|
||||
uv_loop_t* m_loop;
|
||||
uv_loop_t m_loopStruct;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user