En Google, luchamos por la equidad racial de la comunidad negra. Más información

nl :: Tejido:: Sistema:: Objeto

#include <src/system/SystemObject.h>

Esto representa un objeto contado por referencias asignado desde el espacio contenido en un ObjectPool objeto.

Resumen

Nota: Instancia de esta clase sólo puede construirse usando la relacionada ObjectPool plantilla de clase. Se eliminan el constructor de copia y el operador de asignación. Se utiliza un sistema de recuento de referencias para realizar un seguimiento de las retenciones de instancias de esta clase. Cuando un objeto se retiene inicialmente, su recuento de referencias es uno. Las retenciones adicionales pueden incrementar el recuento de referencias. Cuando se libera el objeto, el recuento de referencias disminuye. Cuando el recuento de referencia es cero, el objeto se recicla de nuevo al grupo para su reasignación. No hay ningún destructor disponible. Las subclases deben diseñarse para garantizar que todos los recursos encapsulados se liberen cuando se libera la retención final y se recicla el objeto. Si bien esta clase se define como concreta, de conformidad con el estilo de Nest C ++, debe considerarse abstracta.

Herencia

Subclases conocidas directas:
  nl :: Inet :: InetLayerBasis
  nl :: Weave :: System :: Temporizador

Tipos protegidos

ReleaseDeferralErrorTactic {
kReleaseDeferralErrorTactic_Ignore ,
kReleaseDeferralErrorTactic_Release ,
kReleaseDeferralErrorTactic_Die
}
enumeración
<Qué hacer cuando DeferredRelease no puede publicar un kEvent_ReleaseObj.

Atributos públicos

AppState
void *
Puntero genérico a datos específicos de la aplicación asociados con el objeto.

Funciones publicas

IsRetained (const Layer & aLayer) const
bool
Prueba si este objeto es retenido por 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
Returns a reference to the Weave System Layer object provided when the object was initially retained from its corresponding
object pool instance.

Funciones protegidas

DeferredRelease ( ReleaseDeferralErrorTactic aTactic)
void

Tipos protegidos

ReleaseDeferralErrorTactic

 ReleaseDeferralErrorTactic

<Qué hacer cuando DeferredRelease no puede publicar un kEvent_ReleaseObj.

Atributos públicos

AppState

void * AppState

Puntero genérico a datos específicos de la aplicación asociados con el objeto.

Funciones publicas

Es retenido

bool IsRetained(
  const Layer & aLayer
) const 

Prueba si este objeto es retenido por aLayer .

Tests whether this object is retained by \c aLayer.

Seguro de concurrencia.

Lanzamiento

void Release(
  void
)

Decrements the reference count for the Weave System Layer object.

Recicla el objeto de nuevo al grupo si el recuento de referencia se reduce a cero. No se invoca ningún destructor.

Conservar

void Retain(
  void
)

Increments the reference count for the Weave System Layer object.

Se supone que el objeto está vivo.

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.

Se supone que el objeto está vivo.

Funciones protegidas

DeferredRelease

void DeferredRelease(
  ReleaseDeferralErrorTactic aTactic
)