nl::Weave::System::Object

#include <src/system/SystemObject.h>

Jest to liczony przez odwołanie obiekt przydzielony z miejsca w obiekcie ObjectPool<t, n="">. </t,>

Podsumowanie

Uwaga: instancję tej klasy można utworzyć tylko za pomocą powiązanego szablonu klasy ObjectPool. Konstruktor kopiowania i operator przypisywania zostaną usunięte. Do śledzenia przechowywania instancji tej klasy używany jest system zliczania plików referencyjnych. Gdy obiekt jest początkowo przechowywany, jego liczba odwołań wynosi 1. Dodatkowe przechowywanie danych może zwiększać liczbę plików referencyjnych. Po zwolnieniu obiektu liczba odwołań się zmniejsza. Gdy liczba odwołań wynosi 0, obiekt wraca do puli w celu ponownej alokacji. Brak dostępnego destruktora. Podklasy muszą być zaprojektowane w taki sposób, aby wszystkie obudowane zasoby były uwalniane po wydaniu ostatecznej wersji przechowywania, a obiekt został poddany recyklingowi. Ta klasa jest zdefiniowana jako konkretna, zgodnie ze stylem Nest C++, należy ją jednak traktować jako abstrakcyjną.

Dziedziczenie

Bezpośrednie znane podklasy:
  nl::Inet::InetLayerBasis
  nl::Weave::System::Timer

Typy chronione

ReleaseDeferralErrorTactic{
  kReleaseDeferralErrorTactic_Ignore,
  kReleaseDeferralErrorTactic_Release,
  kReleaseDeferralErrorTactic_Die
}
enum | typ wyliczeniowy
< Co zrobić, jeśli DeferredRelease nie publikuje zdarzenia kEvent_ReleaseObj.

Atrybuty publiczne

AppState
void *
Ogólny wskaźnik do danych aplikacji powiązanych z obiektem.

Funkcje publiczne

IsRetained(const Layer & aLayer) const
bool
Sprawdź, czy ten obiekt jest przechowywany przez 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.

Funkcje chronione

DeferredRelease(ReleaseDeferralErrorTactic aTactic)
void

Typy chronione

ReleaseDeferralErrorTactic

 ReleaseDeferralErrorTactic

< Co zrobić, jeśli DeferredRelease nie publikuje zdarzenia kEvent_ReleaseObj.

Atrybuty publiczne

AppState

void * AppState

Ogólny wskaźnik do danych aplikacji powiązanych z obiektem.

Funkcje publiczne

IsRetained

bool IsRetained(
  const Layer & aLayer
) const 

Sprawdź, czy ten obiekt jest przechowywany przez aLayer.

Tests whether this object is retained by \c aLayer.

Równoczesność jest bezpieczna.

Premiera

void Release(
  void
)

Decrements the reference count for the Weave System Layer object.

Powoduje ponowne recykling obiektu do puli, jeśli liczba odwołań spadnie do 0. Nie jest wywoływany żaden destrukt.

Zachowaj

void Retain(
  void
)

Increments the reference count for the Weave System Layer object.

Przyjmuje się, że obiekt jest aktywny.

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.

Przyjmuje się, że obiekt jest aktywny.

Funkcje chronione

DeferredRelease

void DeferredRelease(
  ReleaseDeferralErrorTactic aTactic
)