nl::Weave::System::Objekt

#include <src/system/SystemObject.h>

Dies ist ein Objekt mit Referenzzählung, das aus einem Gruppenbereich zugewiesen wird, der in einem ObjectPool&t; n="">-Objekt enthalten ist. </t,>

Fazit

Hinweis:Die Instanz dieser Klasse kann nur mithilfe der zugehörigen ObjectPool-Klassenvorlage erstellt werden. Der Kopierkonstrukt und der Zuweisungsoperator werden gelöscht. Ein Referenzzählsystem wird verwendet, um die Aufbewahrungen von Instanzen dieser Klasse nachzuverfolgen. Wenn ein Objekt zu Beginn aufbewahrt wird, beträgt die Referenzanzahl eins. Zusätzliche Aufbewahrungen können die Referenzzahl erhöhen. Wenn das Objekt freigegeben wird, verringert sich die Anzahl der Referenzen. Wenn die Referenzanzahl null ist, wird das Objekt für die Neuzuweisung zurück in den Pool recycelt. Es ist keine Zerstörer verfügbar. Abgeleitete Klassen müssen so entworfen sein, dass alle gekapselten Ressourcen freigegeben werden, wenn die endgültige Aufbewahrung freigegeben und das Objekt recycelt wird. Obwohl diese Klasse als konkret definiert ist, sollte sie gemäß dem Nest C++-Stil als abstrakt betrachtet werden.

Übernahme

Direkt bekannte untergeordnete Klassen:
nl::Inet::InetLayerBasis
nl::Weave::System::Timer

Geschützte Typen

ReleaseDeferralErrorTactic{
  kReleaseDeferralErrorTactic_Ignore,
  kReleaseDeferralErrorTactic_Release,
  kReleaseDeferralErrorTactic_Die
}
enum
< Was zu tun ist, wenn DeferredRelease keine kEvent_ReleaseObj-Einträge posten kann.

Öffentliche Attribute

AppState
void *
Allgemeiner Zeiger auf app-spezifische Daten, die mit dem Objekt verknüpft sind.

Öffentliche Funktionen

IsRetained(const Layer & aLayer) const
bool
Testen Sie, ob dieses Objekt von aLayer beibehalten wird.
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.

Geschützte Funktionen

DeferredRelease(ReleaseDeferralErrorTactic aTactic)
void

Geschützte Typen

ReleaseDeferralErrorTactic

 ReleaseDeferralErrorTactic

< Was zu tun ist, wenn DeferredRelease keine kEvent_ReleaseObj-Einträge posten kann.

Öffentliche Attribute

App-Status

void * AppState

Allgemeiner Zeiger auf app-spezifische Daten, die mit dem Objekt verknüpft sind.

Öffentliche Funktionen

Wird beibehalten

bool IsRetained(
  const Layer & aLayer
) const 

Testen Sie, ob dieses Objekt von aLayer beibehalten wird.

Tests whether this object is retained by \c aLayer.

Gleichzeitigkeit

Release

void Release(
  void
)

Decrements the reference count for the Weave System Layer object.

Recycelt das Objekt wieder in den Pool, wenn die Referenzanzahl auf null verringert wird. Es wird kein Zerstörer aufgerufen.

Aufbewahren

void Retain(
  void
)

Increments the reference count for the Weave System Layer object.

Es wird davon ausgegangen, dass das Objekt live ist.

Systemschicht

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.

Es wird davon ausgegangen, dass das Objekt live ist.

Geschützte Funktionen

Ausgesetzter Release

void DeferredRelease(
  ReleaseDeferralErrorTactic aTactic
)