нл:: Переплетение:: Система:: Объект

#include <src/system/SystemObject.h>

Это представляет собой объект с подсчетом ссылок, выделенный из пространства, содержащегося в ObjectPool. объект.

Краткое содержание

Примечание. Экземпляр этого класса можно создать только с использованием связанного шаблона класса ObjectPool . Конструктор копирования и оператор присваивания удаляются. Система подсчета ссылок используется для отслеживания удержания экземпляров этого класса. Когда объект изначально сохраняется, его счетчик ссылок равен единице. Дополнительные удержания могут увеличить количество ссылок. Когда объект освобождается, счетчик ссылок уменьшается. Когда счетчик ссылок равен нулю, объект возвращается обратно в пул для перераспределения. Деструктор отсутствует. Подклассы должны быть спроектированы так, чтобы гарантировать, что все инкапсулированные ресурсы будут освобождены при окончательном освобождении хранилища и переработке объекта. Хотя этот класс определен как конкретный, в соответствии со стилем 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
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

< Что делать, если DeferredRelease не удается опубликовать kEvent_ReleaseObj.

Публичные атрибуты

состояние приложения

void * AppState

Общий указатель на данные приложения, связанные с объектом.

Общественные функции

Сохранено

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.

Предполагается, что объект живой.

Системный слой

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.

Предполагается, что объект живой.

Защищенные функции

Отложенный выпуск

void DeferredRelease(
  ReleaseDeferralErrorTactic aTactic
)