nl::Weave::System::Object

#include <src/system/SystemObject.h>

Biểu đồ này thể hiện một đối tượng được tính tham chiếu được phân bổ từ không gian chứa trong một ObjectPool<t, n=""> . &lt;/t,&gt;

Tóm tắt

Lưu ý: Bạn chỉ có thể tạo thực thể của lớp này bằng mẫu lớp ObjectPool có liên quan. Hàm khởi tạo sao chép và toán tử gán sẽ bị xoá. Hệ thống đếm tham chiếu được dùng để theo dõi số lượt lưu giữ các phiên bản của lớp này. Khi một đối tượng được giữ lại ban đầu, số lượng tham chiếu của đối tượng đó là một. Việc giữ lại thêm có thể làm tăng số lượng tham chiếu. Khi đối tượng được giải phóng, số lượng tham chiếu sẽ bị giảm. Khi số lượng tham chiếu bằng 0, đối tượng sẽ được tái chế trở lại nhóm để phân bổ lại. Không có hàm huỷ nào. Các lớp con phải được thiết kế để đảm bảo rằng tất cả tài nguyên được đóng gói được giải phóng khi hoạt động lưu giữ cuối cùng được giải phóng và đối tượng được tái chế. Mặc dù lớp này được định nghĩa là lớp cụ thể, nhưng tuân theo kiểu Nest C++, nhưng lớp này vẫn nên được coi là lớp trừu tượng.

Tính kế thừa

Lớp học con đã biết trực tiếp:
  nl::Inet::InetLayerBasis
  nl::Weave::System::Timer

Kiểu được bảo vệ

ReleaseDeferralErrorTactic{
  kReleaseDeferralErrorTactic_Ignore,
  kReleaseDeferralErrorTactic_Release,
  kReleaseDeferralErrorTactic_Die
}
enum
< Việc cần làm khi DeferredRelease không đăng được kEvent_ReleaseObj.

Các thuộc tính công khai

AppState
void *
Con trỏ chung trỏ đến dữ liệu dành riêng cho ứng dụng được liên kết với đối tượng.

Hàm công khai

IsRetained(const Layer & aLayer) const
bool
Kiểm tra xem đối tượng này có được aLayer giữ lại hay không.
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.

Hàm được bảo vệ

DeferredRelease(ReleaseDeferralErrorTactic aTactic)
void

Kiểu được bảo vệ

ReleaseDeferralErrorTactic

 ReleaseDeferralErrorTactic

< Việc cần làm khi DeferredRelease không đăng được kEvent_ReleaseObj.

Các thuộc tính công khai

AppState

void * AppState

Con trỏ chung trỏ đến dữ liệu dành riêng cho ứng dụng được liên kết với đối tượng.

Hàm công khai

IsRetained

bool IsRetained(
  const Layer & aLayer
) const 

Kiểm tra xem đối tượng này có được aLayer giữ lại hay không.

Tests whether this object is retained by \c aLayer.

An toàn với mô hình đồng thời.

Bản phát hành

void Release(
  void
)

Decrements the reference count for the Weave System Layer object.

Tái chế đối tượng trở lại nhóm nếu số lượng tham chiếu giảm xuống 0. Không có hàm huỷ nào được gọi.

Lưu lại

void Retain(
  void
)

Increments the reference count for the Weave System Layer object.

Đối tượng được giả định là đang hoạt động.

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.

Đối tượng được giả định là đang hoạt động.

Hàm được bảo vệ

DeferredRelease

void DeferredRelease(
  ReleaseDeferralErrorTactic aTactic
)