nl::Weave::System::Object

#include <src/system/SystemObject.h>

Bu, ObjectPool<t, n=""> içinde bulunan alandan ayrılmış bir referansla sayılan nesneyi temsil eder. nesnesini tanımlayın. &lt;/t,&gt;

Özet

Not: Bu sınıfın örneği yalnızca ilgili ObjectPool sınıf şablonu kullanılarak oluşturulabilir. Kopya oluşturucu ve atama operatörü silinir. Bu sınıfa ait örneklerin saklanmalarını izlemek için bir referans sayma sistemi kullanılır. Bir nesne başlangıçta tutulduğunda, referans sayısı bir olur. Ek saklama süreleri, referans sayısını artırabilir. Nesne serbest bırakıldığında referans sayısı azalır. Referans sayısı sıfır olduğunda, nesne yeniden konumlandırılmak üzere havuza geri döndürülür. Yıkıcı yok. Alt sınıflar, nihai saklama işlemi iptal edildiğinde ve nesne geri dönüştürüldüğünde kapsüllenmiş tüm kaynakların serbest bırakılmasını sağlayacak şekilde tasarlanmalıdır. Bu sınıf, Nest C++ stiline uygun olarak somut olarak tanımlansa da soyut olarak kabul edilmelidir.

Devralma

Doğrudan Bilinen Alt Sınıflar:
  nl::Inet::InetLayerBasis
  nl::Weave::System::Timer

Korumalı türler

ReleaseDeferralErrorTactic{
  kReleaseDeferralErrorTactic_Ignore,
  kReleaseDeferralErrorTactic_Release,
  kReleaseDeferralErrorTactic_Die
}
enum
< DefferRelease bir kEvent_ReleaseObj yayını yayınlayamadığında ne yapmak gerekir?

Herkese açık özellikler

AppState
void *
Nesneyle ilişkili uygulamaya özel verilere genel işaretçi.

Herkese açık işlevler

IsRetained(const Layer & aLayer) const
bool
Bu nesnenin aLayer tarafından saklanıp saklanmadığını test edin.
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.

Korunan işlevler

DeferredRelease(ReleaseDeferralErrorTactic aTactic)
void

Korumalı türler

ReleaseDeferralErrorTactic

 ReleaseDeferralErrorTactic

< DefferRelease bir kEvent_ReleaseObj yayını yayınlayamadığında ne yapmak gerekir?

Herkese açık özellikler

AppState

void * AppState

Nesneyle ilişkili uygulamaya özel verilere genel işaretçi.

Herkese açık işlevler

IsRetained

bool IsRetained(
  const Layer & aLayer
) const 

Bu nesnenin aLayer tarafından saklanıp saklanmadığını test edin.

Tests whether this object is retained by \c aLayer.

Eşzamanlılık güvenli.

Serbest bırak

void Release(
  void
)

Decrements the reference count for the Weave System Layer object.

Referans sayısı sıfıra düşürülürse nesneyi havuza geri dönüştürür. Yıkıcı çağrılmaz.

Tut

void Retain(
  void
)

Increments the reference count for the Weave System Layer object.

Nesnenin yayında olduğu varsayılır.

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.

Nesnenin yayında olduğu varsayılır.

Korunan işlevler

DeferredRelease

void DeferredRelease(
  ReleaseDeferralErrorTactic aTactic
)