mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
[wpilibc] Add mechanism to reset various global structures (#4007)
This commit is contained in:
@@ -48,11 +48,23 @@ struct Instance {
|
||||
};
|
||||
} // namespace
|
||||
|
||||
static Instance& GetInstance() {
|
||||
static Instance instance;
|
||||
static std::unique_ptr<Instance>& GetInstanceHolder() {
|
||||
static std::unique_ptr<Instance> instance = std::make_unique<Instance>();
|
||||
return instance;
|
||||
}
|
||||
|
||||
static Instance& GetInstance() {
|
||||
return *GetInstanceHolder();
|
||||
}
|
||||
|
||||
#ifndef __FRC_ROBORIO__
|
||||
namespace frc::impl {
|
||||
void ResetLiveWindow() {
|
||||
std::make_unique<Instance>().swap(GetInstanceHolder());
|
||||
}
|
||||
} // namespace frc::impl
|
||||
#endif
|
||||
|
||||
std::shared_ptr<Component> Instance::GetOrAdd(wpi::Sendable* sendable) {
|
||||
auto data = std::static_pointer_cast<Component>(
|
||||
wpi::SendableRegistry::GetData(sendable, dataHandle));
|
||||
|
||||
Reference in New Issue
Block a user