The abstract base class of all LifeCycleManager.  
 More...
#include <fastarduino/lifecycle.h>
The abstract base class of all LifeCycleManager. 
It encapsulates all needed API for lifecycle management.
- See also
 - LifeCycleManager 
 
- 
LifeCycle 
 
Definition at line 131 of file lifecycle.h.
 
◆ register_()
template<typename T > 
  
  
      
        
          | uint8_t lifecycle::AbstractLifeCycleManager::register_  | 
          ( | 
          LifeCycle< T > &  | 
          instance | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Register a LifeCycle<T> instance with this LifeCycleManager. 
From now on, instance is tracked by this LifeCycleManager, in particular if it is moved around, its latest address is updated. It is assigned a unique identifier so that it can be retrieved, later on, by calling find_().
- Warning
 - This method is NOT synchronized and should be called either from an ISR, or from a synchronized block.
 
- Template Parameters
 - 
  
    | T | the type encapsulated in a LifeCycle<T> type  | 
  
   
- Parameters
 - 
  
  
 
- Returns
 - a unique identifier for the registered instance 
 
- Return values
 - 
  
    | 0 | if an error occurred; this can happen when too many instances are already registered with this LifeCycleManager, or when instance is already registered (with yhis or any LifeCycleManager). | 
  
   
- See also
 - LifeCycle 
 
- 
unregister_() 
 
- 
find_() 
 
Definition at line 156 of file lifecycle.h.
 
 
◆ unregister_()
  
  
      
        
          | bool lifecycle::AbstractLifeCycleManager::unregister_  | 
          ( | 
          uint8_t  | 
          id | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
Unregisters a LifeCycle<T> instance, identified by id, already registered with this LifeCycleManager. 
- Note
 - This is automatically called by 
LifeCycle<T> destructor. 
- Warning
 - This method is NOT synchronized and should be called either from an ISR, or from a synchronized block.
 
- Parameters
 - 
  
    | id | the unique identifier for the LifeCycle<T> instance to unregister; this is the value returned by register_().  | 
  
   
- Return values
 - 
  
    | true | if the LifeCycle<T> instance was found and successfully deregistered  | 
    | false | if there is no registered instance identified by id  | 
  
   
- See also
 - register_() 
 
Definition at line 178 of file lifecycle.h.
 
 
◆ available_()
  
  
      
        
          | uint8_t lifecycle::AbstractLifeCycleManager::available_  | 
          ( | 
           | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Return the number of available "slots" for registration of new LifeCycle<T> instances. 
- Note
 - This method is atomic, hnece it can freely be called from an ISR or normal code without any synchronization required. 
 
Definition at line 198 of file lifecycle.h.
 
 
◆ move_()
  
  
      
        
          | bool lifecycle::AbstractLifeCycleManager::move_  | 
          ( | 
          uint8_t  | 
          id,  | 
         
        
           | 
           | 
          AbstractLifeCycle &  | 
          dest  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inline   | 
  
 
Move an already registered LifeCycle<T> instance (identified by id) to a new location, determine by dest. 
Once this method is called, the previous LifeCycle<T> instance becomes unusable (its identifier is reset to 0).
- Warning
 - This method is automatically called when a registered 
LifeCycle<T> is moved to another instance. You should normally never need to call this method directly. 
- 
This method is NOT synchronized and should be called either from an ISR, or from a synchronized block.
 
- Parameters
 - 
  
    | id | the unique identifier for the LifeCycle<T> instance to move; this is the value returned by register_().  | 
    | dest | a reference to a LifeCycle<T> instance to receive the instance currently identified by id  | 
  
   
- Return values
 - 
  
    | true | if the LifeCycle<T> instance was found and successfully moved to dest  | 
    | false | if there is no registered instance identified by id  | 
  
   
Definition at line 224 of file lifecycle.h.
 
 
◆ find_()
template<typename T > 
  
  
      
        
          | LifeCycle<T>* lifecycle::AbstractLifeCycleManager::find_  | 
          ( | 
          uint8_t  | 
          id | ) | 
           const | 
         
       
   | 
  
inline   | 
  
 
Find an existing LifeCycle<T> registered with this LifeCycleManager and identified by id. 
This is the only way to get a pointer to the right location of an instance.
- Warning
 - A LifeCycleManager can hold 
LifeCycle<T> instances of any T type, it does not keep information about actual type of a LifeCycle; hence it cannot ensure safe casting in find_() method. It is the responsibility of the application developer to ensure consistency of the type used in register_() and in find_() for the same id ! 
- 
This method is NOT synchronized and should be called either from an ISR, or from a synchronized block.
 
- Template Parameters
 - 
  
    | T | the type encapsulated in a LifeCycle<T> type  | 
  
   
- Parameters
 - 
  
    | id | the unique identifier for the LifeCycle<T> instance to look for; this is the value returned by register_().  | 
  
   
- Returns
 - a pointer to the found 
LifeCycle<T> instance  
- Return values
 - 
  
    | nullptr | if there is no registered instance identified by id  | 
  
   
- See also
 - LifeCycle 
 
- 
register_() 
 
Definition at line 263 of file lifecycle.h.
 
 
The documentation for this class was generated from the following file: