FastArduino  v1.9 alpha
C++ library to build fast but small Arduino/AVR projects
lifecycle.h File Reference

Utility API to handle lifecycle of objects so that: More...

#include <string.h>
#include "move.h"
#include "types_traits.h"
Include dependency graph for lifecycle.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  lifecycle::AbstractLifeCycle
 The abstract base class of all LifeCycle<T>. More...
 
class  lifecycle::AbstractLifeCycleManager
 The abstract base class of all LifeCycleManager. More...
 
class  lifecycle::LifeCycleManager< SIZE >
 An actual LifeCycleManager implementation, based on AbstractLifeCycleManager, adding static storage for it. More...
 
class  lifecycle::LifeCycle< T >
 A mixin class allowing lifecycle management of any object of any type T. More...
 
class  lifecycle::Proxy< T >
 A proxy class that encapsulates access to a fixed T instance, or to a dynamic LifeCycle<T> instance. More...
 
class  lifecycle::LightProxy< T >
 A light proxy class that encapsulates access to a fixed T instance, or to a dynamic LifeCycle<T> instance. More...
 
class  lifecycle::DirectProxy< T >
 A kind of proxy class that encapsulates access to a fixed T instance. More...
 

Namespaces

 lifecycle
 Contains the API around LifeCycle management implementation.
 

Functions

template<typename T >
Proxy< T > lifecycle::make_proxy (const T &dest)
 Utility template function to create a Proxy<T> from dest without the need to speicify T. More...
 
template<typename T >
Proxy< T > lifecycle::make_proxy (const LifeCycle< T > &dest)
 Utility template function to create a Proxy<T> from dest without the need to speicify T. More...
 
template<typename T >
LightProxy< T > lifecycle::make_light_proxy (const T &dest)
 Utility template function to create a LightProxy<T> from dest without the need to speicify T. More...
 
template<typename T >
LightProxy< T > lifecycle::make_light_proxy (const LifeCycle< T > &dest)
 Utility template function to create a LightProxy<T> from dest without the need to speicify T. More...
 
template<typename T >
DirectProxy< T > lifecycle::make_direct_proxy (const T &dest)
 Utility template function to create a DirectProxy<T> from dest without the need to speicify T. More...
 

Detailed Description

Utility API to handle lifecycle of objects so that:

  • objects can be registered and identified with a repository
  • objects can be removed from the repository
  • objects can be moved around and still be properly referenced by their repository

Definition in file lifecycle.h.