nl::Weave::System::Object

#include <src/system/SystemObject.h>

Representa um objeto contado por referência alocado do espaço contido em um ObjectPool<t, n=""> objeto. &lt;/t,&gt;

Resumo

Observação:a instância dessa classe só pode ser construída usando o modelo de classe ObjectPool relacionado. O construtor de cópia e o operador de atribuição são excluídos. Um sistema de contagem de referências é usado para rastrear as retenções de instâncias dessa classe. Quando um objeto é retido inicialmente, sua contagem de referência é um. Retenções adicionais podem incrementar a contagem de referência. Quando o objeto é liberado, a contagem de referência diminui. Quando a contagem de referência é zero, o objeto é reciclado de volta ao pool para realocação. Não há nenhum destrutor disponível. As subclasses precisam ser projetadas para garantir que todos os recursos encapsulados sejam liberados quando a retenção final for liberada e o objeto for reciclado. Embora essa classe seja definida como concreta, em conformidade com o estilo Nest C++, ela precisa ser considerada abstrata.

Herança

Subclasses conhecidas diretas:
  nl::Inet::InetLayerBasis
  nl::Weave::System::Timer

Tipos protegidos

ReleaseDeferralErrorTactic{
  kReleaseDeferralErrorTactic_Ignore,
  kReleaseDeferralErrorTactic_Release,
  kReleaseDeferralErrorTactic_Die
}
enum
< O que fazer quando DeferredRelease não consegue postar um kEvent_ReleaseObj.

Atributos públicos

AppState
void *
Ponteiro genérico para dados específicos do app associados ao objeto.

Funções públicas

IsRetained(const Layer & aLayer) const
bool
Teste se esse objeto é retido 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
Layer &
Returns a reference to the Weave System Layer object provided when the object was initially retained from its corresponding
object pool instance.

Funções protegidas

DeferredRelease(ReleaseDeferralErrorTactic aTactic)
void

Tipos protegidos

ReleaseDeferralErrorTactic

 ReleaseDeferralErrorTactic

< O que fazer quando DeferredRelease não consegue postar um kEvent_ReleaseObj.

Atributos públicos

AppState

void * AppState

Ponteiro genérico para dados específicos do app associados ao objeto.

Funções públicas

IsRetained

bool IsRetained(
  const Layer & aLayer
) const 

Teste se esse objeto é retido por aLayer.

Tests whether this object is retained by \c aLayer.

Simultaneidade segura.

Versão

void Release(
  void
)

Decrements the reference count for the Weave System Layer object.

Recicla o objeto de volta para o pool se a contagem de referência diminui para zero. Nenhum destrutor é invocado.

Reter

void Retain(
  void
)

Increments the reference count for the Weave System Layer object.

Presume-se que o objeto esteja ativo.

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.

Presume-se que o objeto esteja ativo.

Funções protegidas

DeferredRelease

void DeferredRelease(
  ReleaseDeferralErrorTactic aTactic
)