nl::Weave::System::Object

#include <src/system/SystemObject.h>

表示从 ObjectPool<t, n=""> 中包含的空间分配的引用计数对象对象。&lt;/t,&gt;

摘要

注意:只能使用相关的 ObjectPool 类模板构建此类的实例。删除复制构造函数和赋值运算符。引用计数系统用于跟踪此类实例的保留期限。最初保留对象时,其引用计数为 1。增加保留期限可能会增加参考文件数。当对象被释放时,引用计数将递减。当引用计数为零时,对象将被回收回池以进行重新分配。没有可用的析构函数。子类必须设计为确保在释放最终保留并回收对象时,所有封装的资源都会被释放。 虽然此类定义为具体类,但符合 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
)