| 
    FastArduino
    v1.9 alpha
    
   C++ library to build fast but small Arduino/AVR projects 
   | 
 
A light proxy class that encapsulates access to a fixed T instance, or to a dynamic LifeCycle<T> instance.  
 More...
#include <fastarduino/lifecycle.h>
Public Member Functions | |
| LightProxy (const T &dest) | |
Create a LightProxy<T> to a static reference.  More... | |
| template<typename U > | |
| LightProxy (const LifeCycle< U > &dest) | |
Create a LightProxy<T> to a LifeCycle<U> instance (dynamic reference).  More... | |
| LightProxy (const Proxy< T > &proxy) | |
Create a LightProxy<T> from a Proxy<T>.  More... | |
| T * | operator() (const AbstractLifeCycleManager *manager=nullptr) const | 
Return a pointer to the proxified T instance.  More... | |
| bool | is_dynamic () const | 
| Tell if this LightProxy is dynamic or static.  More... | |
| uint8_t | id () const | 
The identifier of the proxified LifeCycle<U> or 0 if a static instance was proxified.  | |
| T * | destination () const | 
A pointer to the static instance proxified, or nullptr if a dynamic instance (a LifeCycle<U>) was proxified.  | |
Friends | |
| bool | operator== (const LightProxy< T > &, const LightProxy< T > &) | 
| bool | operator!= (const LightProxy< T > &, const LightProxy< T > &) | 
A light proxy class that encapsulates access to a fixed T instance, or to a dynamic LifeCycle<T> instance. 
Each instance uses 2 bytes, instead of 3 bytes for a Proxy instance. The downside is that a dynamic LightProxy (i.e. constructed with a LifeCycle<T>) has to be passed the proper LifeCycleManager every time we want to get the pointer to the actual proxied instance.
T instance incurs overhead (data size, code size and speed), you should use LightProxy<T> only when it makes sense.| T | the type of the object proxied | 
Definition at line 642 of file lifecycle.h.
      
  | 
  inline | 
Create a LightProxy<T> to a static reference. 
| dest | the reference to a T instance to proxify.  | 
Definition at line 649 of file lifecycle.h.
      
  | 
  inline | 
Create a LightProxy<T> to a LifeCycle<U> instance (dynamic reference). 
| U | the type of reference held by dest; must be T or a subclass of T, otherwise code will not compile.  | 
| dest | the reference to a LifeCycle<U> instance to proxify; if dest is later moved, it will eb automatically tracked by this Proxy<T>. | 
Definition at line 662 of file lifecycle.h.
      
  | 
  inlineexplicit | 
Create a LightProxy<T> from a Proxy<T>. 
| proxy | the original Proxy<T> to copy into this LightProxy | 
Definition at line 674 of file lifecycle.h.
      
  | 
  inline | 
Return a pointer to the proxified T instance. 
| manager | a pointer to the LifeCycleManager which was used to register the underlying LifeCycle<T> instance; can be nullptr if this is a static proxy. Behaviour is undefined if nullptr and this LightProxy is dynamic.  | 
Definition at line 712 of file lifecycle.h.
      
  | 
  inline | 
Tell if this LightProxy is dynamic or static.
A dynamic proxy was constructed with a LifeCycle<T> instance and thus ensures that the actual instance will aways be referenced even if it gets moved. A static proxy was constructed directly with a T instance. 
Definition at line 728 of file lifecycle.h.