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:
@@ -60,11 +60,24 @@ Component& SendableRegistryInst::GetOrAdd(void* sendable,
|
||||
return *components[compUid - 1];
|
||||
}
|
||||
|
||||
static SendableRegistryInst& GetInstance() {
|
||||
static SendableRegistryInst instance;
|
||||
static std::unique_ptr<SendableRegistryInst>& GetInstanceHolder() {
|
||||
static std::unique_ptr<SendableRegistryInst> instance =
|
||||
std::make_unique<SendableRegistryInst>();
|
||||
return instance;
|
||||
}
|
||||
|
||||
static SendableRegistryInst& GetInstance() {
|
||||
return *GetInstanceHolder();
|
||||
}
|
||||
|
||||
#ifndef __FRC_ROBORIO__
|
||||
namespace wpi::impl {
|
||||
void ResetSendableRegistry() {
|
||||
std::make_unique<SendableRegistryInst>().swap(GetInstanceHolder());
|
||||
}
|
||||
} // namespace wpi::impl
|
||||
#endif
|
||||
|
||||
void SendableRegistry::SetLiveWindowBuilderFactory(
|
||||
std::function<std::unique_ptr<SendableBuilder>()> factory) {
|
||||
GetInstance().liveWindowFactory = std::move(factory);
|
||||
|
||||
Reference in New Issue
Block a user