nl::Weave::System::Object

#include <src/system/SystemObject.h>

代表從 ObjectPool<t, n=""> 物件中包含的空間,分配的參考計數物件。</t,>

摘要

注意:此類別的例項只能以相關的 ObjectPool 類別範本建構。系統會刪除複製建構函式和指派運算子。參考計數系統可用來追蹤這個類別中例項的保留時間。當原始物件最初保留時,其參考計數為 1。延長保留時間可能會使參考次數增加。物件釋出後,參照次數就會減少。當參考計數為 0 時,物件會回收回集區進行重新分配。無拆解機。您必須設計子類別,確保最終保留時間釋放並回收物件時,所有封裝資源都會釋出。雖然此類別的定義為具體,但與 Nest C++ 樣式相符,仍應將其視為抽象類別。

繼承

直接已知子類別:
  nl::Inet::InetLayerBasis
  nl::Weave::System::Timer

受保護的類型

ReleaseDeferralErrorTactic{
  kReleaseDeferralErrorTactic_Ignore,
  kReleaseDeferralErrorTactic_Release,
  kReleaseDeferralErrorTactic_Die
}
列舉
< DeferredRelease 無法發布 kEvent_ReleaseObj 時的處理方式。

公開屬性

AppState
void *
與物件相關聯的應用程式專屬資料通用指標。

公用函式

IsRetained(const Layer & aLayer) const
bool
測試 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.

受保護的函式

DeferredRelease(ReleaseDeferralErrorTactic aTactic)
void

受保護的類型

ReleaseDeferralErrorTactic

 ReleaseDeferralErrorTactic

< DeferredRelease 無法發布 kEvent_ReleaseObj 時的處理方式。

公開屬性

AppState

void * AppState

與物件相關聯的應用程式專屬資料通用指標。

公用函式

IsRetained

bool IsRetained(
  const Layer & aLayer
) const 

測試 aLayer 是否保留這個物件。

Tests whether this object is retained by \c aLayer.

並行安全。

發布

void Release(
  void
)

Decrements the reference count for the Weave System Layer object.

如果參照次數減少至零,則將該物件回收回集區。不會叫用任何解構函式。

保留

void Retain(
  void
)

Increments the reference count for the Weave System Layer object.

系統會假設物件為有效。

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.

系統會假設物件為有效。

受保護的函式

DeferredRelease

void DeferredRelease(
  ReleaseDeferralErrorTactic aTactic
)