From a6ab1504058304012791281f9eb42c262745888f Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 19 May 2023 21:21:27 +1000 Subject: Add tinyfsm, start converting core functions to an FSM-based event loop --- src/drivers/include/driver_cache.hpp | 54 ------------------------------------ 1 file changed, 54 deletions(-) delete mode 100644 src/drivers/include/driver_cache.hpp (limited to 'src/drivers/include/driver_cache.hpp') diff --git a/src/drivers/include/driver_cache.hpp b/src/drivers/include/driver_cache.hpp deleted file mode 100644 index c56ebc3f..00000000 --- a/src/drivers/include/driver_cache.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#pragma once - -#include -#include - -#include "dac.hpp" -#include "display.hpp" -#include "gpio_expander.hpp" -#include "storage.hpp" -#include "touchwheel.hpp" - -namespace drivers { - -class DriverCache { - private: - std::unique_ptr gpios_; - std::weak_ptr dac_; - std::weak_ptr display_; - std::weak_ptr storage_; - std::weak_ptr touchwheel_; - // TODO(jacqueline): Haptics, samd - - std::mutex mutex_; - - template - auto Acquire(std::weak_ptr ptr, F factory) -> std::shared_ptr { - std::shared_ptr acquired = ptr.lock(); - if (acquired) { - return acquired; - } - - std::lock_guard lock(mutex_); - - acquired = ptr.lock(); - if (acquired) { - return acquired; - } - acquired.reset(factory()); - ptr = acquired; - return acquired; - } - - public: - DriverCache(); - ~DriverCache(); - - auto AcquireGpios() -> GpioExpander*; - auto AcquireDac() -> std::shared_ptr; - auto AcquireDisplay() -> std::shared_ptr; - auto AcquireStorage() -> std::shared_ptr; - auto AcquireTouchWheel() -> std::shared_ptr; -}; - -} // namespace drivers -- cgit v1.2.3