nl::Weave::System::Object

#include <src/system/SystemObject.h>

Rappresenta un oggetto conto al riferimento allocato dallo spazio contenuto in un oggetto ObjectPool<t, n="">. </t,>

Riepilogo

Nota: l'istanza di questa classe può essere creata solo utilizzando il relativo modello di classe ObjectPool. Il costruttore della copia e l'operatore di assegnazione vengono eliminati. Un sistema di conteggio dei riferimenti viene utilizzato per tenere traccia delle riserve delle istanze di questa classe. Quando un oggetto viene conservato inizialmente, il suo conteggio di riferimento è pari a uno. Ulteriori conservazioni possono aumentare il conteggio dei riferimenti. Quando l'oggetto viene rilasciato, il conteggio dei riferimenti viene ridotto. Quando il conteggio dei riferimenti è zero, l'oggetto viene riciclato nuovamente nel pool per la riassegnazione. Nessun distruttore disponibile. Le sottoclassi devono essere progettate per garantire che tutte le risorse incapsulate vengano rilasciate quando viene rilasciato il periodo di conservazione finale e quando l'oggetto viene riciclato. Questa classe è definita come concreta, ma in conformità con lo stile C++ di Nest, deve essere considerata astratta.

Eredità

Sottoclassi note dirette:
  nl::Inet::InetLayerBasis
  nl::Weave::System::Timer

Tipi protetti

ReleaseDeferralErrorTactic{
  kReleaseDeferralErrorTactic_Ignore,
  kReleaseDeferralErrorTactic_Release,
  kReleaseDeferralErrorTactic_Die
}
enum
< Cosa fare quando DeferredRelease non riesce a pubblicare un kEvent_ReleaseObj.

Attributi pubblici

AppState
void *
Puntatore generico ai dati specifici dell'app associati all'oggetto.

Funzioni pubbliche

IsRetained(const Layer & aLayer) const
bool
Verifica se questo oggetto viene conservato da aLayer.
Release(void)
void
Decrements the reference count for the Weave System Layer object.
Retain(void)
void
Increments the reference count for the Weave System Layer object.
SystemLayer(void) const
Layer &
Returns a reference to the Weave System Layer object provided when the object was initially retained from its corresponding
object pool instance.

Funzioni protette

DeferredRelease(ReleaseDeferralErrorTactic aTactic)
void

Tipi protetti

ReleaseDeferralErrorTactic

 ReleaseDeferralErrorTactic

< Cosa fare quando DeferredRelease non riesce a pubblicare un kEvent_ReleaseObj.

Attributi pubblici

AppState

void * AppState

Puntatore generico ai dati specifici dell'app associati all'oggetto.

Funzioni pubbliche

IsRetained

bool IsRetained(
  const Layer & aLayer
) const 

Verifica se questo oggetto viene conservato da aLayer.

Tests whether this object is retained by \c aLayer.

Sicurezza della contemporaneità.

Release

void Release(
  void
)

Decrements the reference count for the Weave System Layer object.

Ricicla l'oggetto nel pool se il conteggio del riferimento viene ridotto a zero. Nessun distruttore richiamato.

Conservazione

void Retain(
  void
)

Increments the reference count for the Weave System Layer object.

Si presume che l'oggetto sia attivo.

SystemLayer

Layer & SystemLayer(
  void
) const 

Returns a reference to the Weave System Layer object provided when the object was initially retained from its corresponding
object pool instance.

Si presume che l'oggetto sia attivo.

Funzioni protette

DeferredRelease

void DeferredRelease(
  ReleaseDeferralErrorTactic aTactic
)