nl :: Tecer:: Sistema:: Objeto
#include <src/system/SystemObject.h>
Isso representa um objeto contado por referência alocado do espaço contido em um ObjectPool
Resumo
Nota: a instância desta 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ência é usado para rastrear retenções de instâncias desta classe. Quando um objeto é inicialmente retido, 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 para o pool para realocação. Não há destruidor disponível. As subclasses devem ser projetadas para garantir que todos os recursos encapsulados sejam liberados quando a retenção final for liberada e o objeto reciclado. Embora essa classe seja definida como concreta, em conformidade com o estilo Nest C ++, ela deve ser considerada abstrata.
Herança
Subclasses diretamente conhecidas:nl :: Inet :: InetLayerBasis
nl :: Weave :: System :: Timer
Tipos protegidos | |
---|---|
ReleaseDeferralErrorTactic { | enum <O que fazer quando DeferredRelease não consegue publicar um kEvent_ReleaseObj. |
Atributos públicos | |
---|---|
AppState | void * Ponteiro genérico para dados específicos do aplicativo associados ao objeto. |
Funções públicas | |
---|---|
IsRetained (const Layer & aLayer) const | bool Teste se este 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 publicar um kEvent_ReleaseObj.
Atributos públicos
AppState
void * AppState
Ponteiro genérico para dados específicos do aplicativo associados ao objeto.
Funções públicas
IsRetained
bool IsRetained( const Layer & aLayer ) const
Teste se este objeto é retido por aLayer
.
Tests whether this object is retained by \c aLayer.
Concorrência segura.
Liberação
void Release( void )
Decrements the reference count for the Weave System Layer object.
Recicla o objeto de volta ao pool se a contagem de referência for reduzida a zero. Nenhum destruidor é invocado.
Reter
void Retain( void )
Increments the reference count for the Weave System Layer object.
O objeto é considerado 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.
O objeto é considerado vivo.
Funções protegidas
DeferredRelease
void DeferredRelease( ReleaseDeferralErrorTactic aTactic )