Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

nl::Weave::Hệ thống::Đối tượng

#include <src/system/SystemObject.h>

Đây là một đối tượng được tính tham chiếu được phân bổ từ không gian có trong đối tượng ObjectFilter<t, n="">. </t,>

Tóm tắt

Lưu ý: Bản sao của lớp này chỉ có thể được tạo bằng cách sử dụng mẫu lớp ObjectFilter có liên quan. Hàm dựng bản sao và toán tử gán đều bị xoá. Hệ thống đếm tệp đối chiếu dùng để theo dõi tỷ lệ giữ chân người dùng của các thực thể của lớp này. Khi một đối tượng được giữ lại lần đầu, số lượng tham chiếu của đối tượng đó sẽ là 1. Việc giữ lại thêm có thể làm tăng số lượng tệp đối chiếu. Khi hủy bỏ đối tượng, số lượng tệp đối chiếu sẽ giảm dần. Khi số tham chiếu bằng 0, đối tượng sẽ được tái chế trở lại bể bơi để phân bổ lại. Không có trình chặn 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 đều được giải phóng khi tỷ lệ giữ chân người dùng 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à cụ thể, nhưng tuân theo kiểu Nest C++, lớp này phải được coi là trừu tượng.

Tính kế thừa

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

Các loại được bảo vệ

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

Thuộc tính công khai

AppState
void *
Con trỏ chung tới 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 aLayer có giữ lại đối tượng này 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

Các loại được bảo vệ

Phát hành lỗi tạm thời

 ReleaseDeferralErrorTactic

< Việc cần làm khi HoãnredRelease không đăng được một kEvent_ReleaseObj.

Thuộc tính công khai

AppState

void * AppState

Con trỏ chung tới 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

Được giữ lại

bool IsRetained(
  const Layer & aLayer
) const 

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

Tests whether this object is retained by \c aLayer.

An toàn đồng thời.

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ố tham chiếu được giảm xuống bằng 0. Không có trình hủy bỏ nào được gọi.

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

Lớp hệ thống

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ệ

Phát hành bị tạm hoãn

void DeferredRelease(
  ReleaseDeferralErrorTactic aTactic
)