nl :: Dệt :: Hệ thống :: Vật
#include <src/system/SystemObject.h>
Điều này đại diện cho một đối tượng được đếm tham chiếu được phân bổ từ không gian chứa trong ObjectPool
Tóm lược
Lưu ý: Phiên bản của lớp này chỉ có thể được xây dựng bằng cách sử dụng mẫu lớp ObjectPool liên quan. Hàm tạo bản sao và toán tử gán sẽ bị xóa. Một hệ thống đếm tham chiếu được sử dụng để theo dõi lượt truy cập của các cá thể thuộc lớp này. Khi một đối tượng ban đầu được giữ lại, số lượng tham chiếu của nó là một. Các lần rút lại bổ sung 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ẽ giảm. Khi số lượng tham chiếu bằng 0, đối tượng được tái chế trở lại nhóm để tái phân bổ. Không có trình hủy có sẵn. Các lớp con phải được thiết kế để đảm bảo rằng tất cả các tài nguyên được đóng gói sẽ được giải phóng khi phần 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à cụ thể, nhưng theo kiểu Nest C ++, nó nên được coi là trừu tượng.
Di sản
Các lớp con đã biết trực tiếp:nl :: Inet :: InetLayerBasis
nl :: Weave :: System :: Timer
Các loại được bảo vệ | |
---|---|
ReleaseDeferralErrorTactic { | enum <Phải làm gì khi DeferredRelease không đăng được kEvent_ReleaseObj. |
Thuộc tính công cộng | |
---|---|
AppState | void * Con trỏ chung đến dữ liệu dành riêng cho ứng dụng được liên kết với đối tượng. |
Chức năng công cộng | |
---|---|
IsRetained (const Layer & aLayer) const | bool Kiểm tra xem đối tượng này có được aLayer giữ lại 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. |
Các chức năng được bảo vệ | |
---|---|
DeferredRelease ( ReleaseDeferralErrorTactic aTactic) | void |
Các loại được bảo vệ
ReleaseDeferralErrorTactic
ReleaseDeferralErrorTactic
<Phải làm gì khi DeferredRelease không đăng được kEvent_ReleaseObj.
Thuộc tính công cộng
AppState
void * AppState
Con trỏ chung đến dữ liệu dành riêng cho ứng dụng được liên kết với đối tượng.
Chức năng công cộng
Bị cản trở
bool IsRetained( const Layer & aLayer ) const
Kiểm tra xem đối tượng này có được aLayer
giữ lại aLayer
.
Tests whether this object is retained by \c aLayer.
Đồng thời an toàn.
Giải phóng
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ó trình hủy 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 số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 sống.
Các chức năng được bảo vệ
DeferredRelease
void DeferredRelease( ReleaseDeferralErrorTactic aTactic )