nl::Weave::System::Object

#include <src/system/SystemObject.h>

這代表從 ObjectPool<t, n=""> 所含空間分配的參考計數物件物件。&lt;/t,&gt;

摘要

注意:此類別的執行個體只能使用相關的 ObjectPool 類別範本建構。系統會刪除複製建構函式和指派運算子。參照計數系統是用來追蹤這個類別例項的保留作業。當物件最初保留時,其參考計數會是一。額外保留時間可能會增加參考次數。發布物件時,參考計數會減少。當參考計數為 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
)