Line data Source code
1 : // Copyright 2024 Accenture. 2 : 3 : #include "estd/typed_mem.h" 4 : 5 : #include "estd/slice.h" 6 : 7 : #include <gmock/gmock.h> 8 : 9 : #include <array> 10 : 11 : namespace 12 : { 13 : class ILifecycleSystem 14 : {}; 15 : 16 : class LifecycleManager 17 : { 18 : public: 19 : void addComponent(char const* /* name */, ILifecycleSystem& /* system */, size_t /* runlevel */) 20 : {} 21 : } lifecycleManager; 22 : 23 : // Some classes just for demonstration purposes. 24 : class StaticBsp 25 : { 26 : } staticBsp; 27 : 28 : class CanSystem : public ILifecycleSystem 29 : { 30 : public: 31 1 : CanSystem(uint8_t /* taskContext */, StaticBsp& /* staticBsp */) {} 32 : }; 33 : 34 : constexpr uint8_t TASK_CAN{1}; 35 : 36 : // [EXAMPLE_BEGIN:typed_mem_lifecycle] 37 : 38 : // Create the memory for a CanSystem. 39 : estd::typed_mem<CanSystem> canSystem; 40 : 41 1 : void initLifecycle() 42 : { 43 : // Construct CanSystem and add it to lifecycleManager at runlevel 1. 44 1 : lifecycleManager.addComponent("can", canSystem.emplace(TASK_CAN, staticBsp), 1); 45 1 : } 46 : 47 : // [EXAMPLE_END:typed_mem_lifecycle] 48 : 49 : } // namespace 50 : 51 3 : TEST(Typed_mem, run_examples) { initLifecycle(); }