nl:: بافت:: سیستم:: شیء

#include <src/system/SystemObject.h>

این نشان دهنده یک شیء شمارش مرجع است که از فضای موجود در یک ObjectPool تخصیص داده شده است شی

خلاصه

توجه: نمونه این کلاس فقط با استفاده از الگوی کلاس ObjectPool مرتبط ساخته می شود. سازنده کپی و عملگر انتساب حذف می شوند. یک سیستم شمارش مرجع برای ردیابی حفظ نمونه های این کلاس استفاده می شود. هنگامی که یک شی در ابتدا حفظ می شود، تعداد مرجع آن یک است. حفظ اضافی ممکن است تعداد مراجع را افزایش دهد. هنگامی که شی آزاد می شود، تعداد مرجع کاهش می یابد. وقتی تعداد مراجع صفر باشد، شیء برای تخصیص مجدد به استخر بازیافت می شود. هیچ تخریب کننده ای در دسترس نیست. کلاس‌های فرعی باید به گونه‌ای طراحی شوند که اطمینان حاصل شود که تمام منابع کپسوله‌شده با آزاد شدن احتباس نهایی و بازیافت شی آزاد می‌شوند. در حالی که این کلاس به عنوان بتن تعریف می شود، مطابق با سبک Nest C++، باید به عنوان انتزاعی در نظر گرفته شود.

ارث

زیر کلاس های مستقیم شناخته شده:
  nl::Inet::InetLayerBasis
  nl:: بافت::سیستم::تایمر

انواع محافظت شده

ReleaseDeferralErrorTactic {
kReleaseDeferralErrorTactic_Ignore ,
kReleaseDeferralErrorTactic_Release ,
kReleaseDeferralErrorTactic_Die
}
enum
< وقتی 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

 ReleaseDeferralErrorTactic

< وقتی DeferredRelease نتواند یک kEvent_ReleaseObj پست کند چه باید کرد.

صفات عمومی

AppState

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.

فرض می شود که جسم زنده است.

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
)