nl::Weave::System::Object

#include <src/system/SystemObject.h>

แสดงออบเจ็กต์ที่นับเป็นการอ้างอิงที่จัดสรรจากพื้นที่ว่างที่อยู่ใน ObjectPool<t, n=""> ออบเจ็กต์ &lt;/t,&gt;

สรุป

หมายเหตุ: อินสแตนซ์ของคลาสนี้จะสร้างได้โดยใช้เทมเพลตคลาส ObjectPool ที่เกี่ยวข้องเท่านั้น ระบบจะลบเครื่องมือสร้างการคัดลอกและโอเปอเรเตอร์การมอบหมาย ใช้ระบบการนับการอ้างอิงเพื่อติดตามการเก็บรักษาอินสแตนซ์ของคลาสนี้ เมื่อมีการเก็บรักษาออบเจ็กต์ไว้ในตอนแรก จำนวนการอ้างอิงของออบเจ็กต์จะเท่ากับ 1 การเก็บรักษาเพิ่มเติมอาจทำให้จำนวนข้อมูลอ้างอิงเพิ่มขึ้น เมื่อมีการปล่อยออบเจ็กต์ จำนวนการอ้างอิงจะลดลง เมื่อจำนวนการอ้างอิงเป็น 0 วัตถุจะถูกรีไซเคิลกลับไปยังพูลเพื่อจัดสรรใหม่ ไม่มีเครื่องมือทำลายข้อมูล คลาสย่อยต้องออกแบบมาเพื่อดูแลให้ทรัพยากรที่ห่อหุ้มอยู่ทั้งหมดถูกปล่อยออกเมื่อมีการปล่อยการเก็บรักษาสุดท้ายและมีการนำออบเจ็กต์กลับมาใช้ใหม่ แม้ว่าคลาสนี้จะเป็นคอนกรีต แต่สอดคล้องกับรูปแบบ Nest C++ แต่ก็ควรถือว่าเป็นนามธรรม

การสืบทอด

คลาสย่อยที่รู้จักโดยตรง:
  nl::Inet::InetLayerBasis
  nl::Weave::System::Timer

ประเภทที่มีการป้องกัน

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
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.

นำวัตถุกลับเข้าไปในพูล หากจำนวนการอ้างอิงลดลงเป็น 0 ไม่มีการเรียกใช้เครื่องมือทำลาย

เก็บรักษา

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
)