nl::Weave::System::Platform::Layer

Tóm tắt

Hàm

DidInit(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Đây là hook sau khi khởi chạy Layer (Lớp) của Hệ thống Weave dành riêng cho nền tảng.
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Đây là hook trước khi tắt khẩn cấp của Hệ thống Weave dành riêng cho nền tảng Layer (Lớp).
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
NL_DLL_EXPORT Error
Đây là dạng hook gửi thư / sự kiện dành riêng cho nền tảng.
DispatchEvents(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Đây là dạng hook gửi thư / sự kiện dành riêng cho nền tảng.
GetClock_Monotonic(void)
uint64_t
Hàm dành riêng cho nền tảng để nhận thời gian hệ thống đơn điệu tính bằng micrô giây.
GetClock_MonotonicHiRes(void)
uint64_t
Chức năng dành riêng cho nền tảng để nhận thời gian hệ thống đơn điệu có độ phân giải cao tính bằng micrô giây.
GetClock_MonotonicMS(void)
uint64_t
Hàm dành riêng cho nền tảng để nhận thời gian hệ thống đơn điệu tính bằng mili giây.
GetClock_RealTime(uint64_t & curTime)
Error
Chức năng dành riêng cho nền tảng để nhận thời gian thực (dân dụng) hiện tại ở định dạng thời gian Unix micrô giây.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
Chức năng dành riêng cho nền tảng để nhận thời gian thực (dân dụng) hiện tại ở định dạng thời gian Unix mili giây.
PostEvent(Layer & aLayer, void *aContext, Object & aTarget, EventType aType, uintptr_t aArgument)
NL_DLL_EXPORT Error
Đây là nội dung hấp dẫn sau khi đăng tin nhắn / sự kiện dành riêng cho nền tảng.
SetClock_RealTime(uint64_t newCurTime)
Error
Chức năng dành riêng cho nền tảng để đặt giờ thực hiện hiện tại (dân dụng).
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
NL_DLL_EXPORT Error
Đây là dạng hook gửi thư / sự kiện dành riêng cho nền tảng.
WillInit(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Đây là hook khởi động trước của Hệ thống Weave dành riêng cho nền tảng Layer (Lớp).
WillShutdown(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Đây là hook trước khi tắt khẩn cấp của Hệ thống Weave dành riêng cho nền tảng Layer (Lớp).

Hàm

DidInit

NL_DLL_EXPORT void DidInit(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

Đây là hook sau khi khởi chạy Layer (Lớp) của Hệ thống Weave dành riêng cho nền tảng.

Bạn có thể ghi đè chính sách này bằng cách chú giải định nghĩa tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Thông tin chi tiết
Các tham số
[in,out] aLayer
Tham chiếu đến thực thể Layer (Lớp) của hệ thống Weave đang được khởi động.
[in,out] aContext
Dữ liệu ngữ cảnh dành riêng cho nền tảng được truyền tới phương thức khởi tạo lớp, ::Init.
[in] anError
Trạng thái tổng thể được trả về qua phương thức Weave System Layer ::Init.

DidShutdown

NL_DLL_EXPORT void DidShutdown(
  Layer & aLayer,
  void *aContext,
  Error aStatus
)

Đây là hook trước khi tắt khẩn cấp của Hệ thống Weave dành riêng cho nền tảng Layer (Lớp).

Bạn có thể ghi đè chính sách này bằng cách chú giải định nghĩa tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Thông tin chi tiết
Các tham số
[in,out] aLayer
Mã tham chiếu đến thực thể Weave System Layer (Lớp) bị tắt.
[in,out] aContext
Dữ liệu ngữ cảnh dành riêng cho nền tảng được chuyển tới phương thức khởi tạo lớp, ::Tắt.
[in] anError
Trạng thái chung được trả về thông qua phương thức Weave System Layer ::Tắt.
Trả về
WEAVE_SYSTEM_NO_ERROR khi thành công; nếu không thì một lỗi cụ thể cho biết lý do tắt không thành công. Nếu bạn trả lại trạng thái không thành công, việc này sẽ huỷ việc tắt máy.

DispatchEvent

NL_DLL_EXPORT Error DispatchEvent(
  Layer & aLayer,
  void *aContext,
  Event aEvent
)

Đây là dạng hook gửi thư / sự kiện dành riêng cho nền tảng.

Điều này có thể bị ghi đè bằng cách chú giải định nghĩa tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Thao tác này sẽ gửi sự kiện được chỉ định để xử lý, huỷ sắp xếp loại và đối số từ sự kiện để chuyển giao cho Layer::HandleEvent của hệ thống Weave để điều phối thực tế.

Thông tin chi tiết
Các tham số
[in,out] aLayer
Tham chiếu đến thực thể của lớp mà các sự kiện / thông báo đang được gửi đi.
[in,out] aContext
Dữ liệu ngữ cảnh dành riêng cho nền tảng được truyền tới phương thức khởi tạo lớp, ::Init.
[in] anEvent
Đối tượng sự kiện dành riêng cho nền tảng sẽ được gửi đi để xử lý.
Giá trị trả về
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Nếu #aLayer hoặc mục tiêu sự kiện là NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Nếu hệ thống không nhận dạng được loại sự kiện này.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Nếu trạng thái của đối tượng Weave System Layer (Lớp) là ngoài dự kiến.
WEAVE_SYSTEM_NO_ERROR
Khi thành công.

DispatchEvents

NL_DLL_EXPORT Error DispatchEvents(
  Layer & aLayer,
  void *aContext
)

Đây là dạng hook gửi thư / sự kiện dành riêng cho nền tảng.

Điều này có thể bị ghi đè bằng cách chú giải định nghĩa tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Thao tác này sẽ ảnh hưởng đến vòng lặp sự kiện, chờ một hàng đợi dịch vụ thực thể này, kéo các sự kiện ra khỏi hàng đợi đó rồi gửi chúng đi xử lý.

Thông tin chi tiết
Các tham số
[in,out] aLayer
Tham chiếu đến thực thể của lớp mà các sự kiện / thông báo đang được gửi đi.
[in,out] aContext
Dữ liệu ngữ cảnh dành riêng cho nền tảng được truyền tới phương thức khởi tạo lớp, ::Init.
Giá trị trả về
#WEAVE_SYSTEM_ERROR_BAD_ARGS
Nếu #aLayer hoặc #aContext là NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Nếu trạng thái của đối tượng Weave System Layer (Lớp) là ngoài dự kiến.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Trường hợp không nhận dạng được một loại sự kiện.
WEAVE_SYSTEM_NO_ERROR
Khi thành công.

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

Hàm dành riêng cho nền tảng để nhận thời gian hệ thống đơn điệu tính bằng micrô giây.

Hàm này dự kiến sẽ trả về thời gian đã trôi qua tính bằng micrô giây kể từ một thời gian bắt đầu của hệ thống tuỳ ý do nền tảng xác định. Quá trình triển khai nền tảng có nghĩa vụ trả về một giá trị không ngừng tăng (tức là không bao giờ đóng gói) giữa các lần khởi động lại hệ thống. Ngoài ra, nguồn thời gian cơ bản cần có để đánh dấu liên tục trong mọi chế độ ngủ của hệ thống không khởi động lại khi thức dậy.

Thời gian bắt đầu của thời gian mà hàm này trả về không bắt buộc phải giống với thời gian của mọi hàm GetClock... khác, bao gồm cả GetClock_MonotonicMS().

Hàm này dự kiến sẽ an toàn theo luồng trên mọi nền tảng sử dụng tính năng tạo luồng.

Thông tin chi tiết
Trả về
Thời gian đã trôi qua tính bằng micrô giây kể từ một thời gian bắt đầu của hệ thống tuỳ ý do nền tảng xác định.

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

Chức năng dành riêng cho nền tảng để nhận thời gian hệ thống đơn điệu có độ phân giải cao tính bằng micrô giây.

Hàm này dự kiến sẽ trả về thời gian đã trôi qua tính bằng micrô giây kể từ một thời gian bắt đầu của hệ thống tuỳ ý do nền tảng xác định. Các giá trị mà GetClock_MonotonicHiRes() trả về cần phải tăng dần (nghĩa là không bao giờ bao giờ). Tuy nhiên, bộ tính giờ cơ bản không bắt buộc phải đánh dấu liên tục trong trạng thái ngủ sâu của hệ thống.

Nền tảng nên triển khai GetClock_MonotonicHiRes() bằng cách sử dụng bộ tính giờ có độ phân giải cao không bị điều chỉnh xung nhịp dần dần (xoay). Trên các nền tảng không có bộ tính giờ như vậy, GetClock_MonotonicHiRes() có thể trả về cùng một giá trị như GetClock_Monotonic().

Thời gian bắt đầu của thời gian mà hàm này trả về không bắt buộc phải giống với thời gian của bất kỳ hàm GetClock... nào khác.

Hàm này dự kiến sẽ an toàn theo luồng trên mọi nền tảng sử dụng tính năng tạo luồng.

Thông tin chi tiết
Trả về
Thời gian đã trôi qua tính bằng micrô giây kể từ một thời gian bắt đầu của hệ thống tuỳ ý do nền tảng xác định.

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

Hàm dành riêng cho nền tảng để nhận thời gian hệ thống đơn điệu tính bằng mili giây.

Hàm này dự kiến sẽ trả về thời gian đã trôi qua tính bằng mili giây kể từ một khoảng thời gian bắt đầu của hệ thống tuỳ ý do nền tảng xác định. Quá trình triển khai nền tảng có nghĩa vụ trả về một giá trị không ngừng tăng (tức là không bao giờ đóng gói) giữa các lần khởi động lại hệ thống. Ngoài ra, nguồn thời gian cơ bản cần có để đánh dấu liên tục trong mọi chế độ ngủ của hệ thống không khởi động lại khi thức dậy.

Thời gian bắt đầu của thời gian mà hàm này trả về không bắt buộc phải giống với thời gian của bất kỳ hàm GetClock... nào khác, bao gồm cả GetClock_Monotonic().

Hàm này dự kiến sẽ an toàn theo luồng trên mọi nền tảng sử dụng tính năng tạo luồng.

Thông tin chi tiết
Trả về
Thời gian đã trôi qua tính bằng mili giây kể từ một khoảng thời gian bắt đầu của hệ thống tuỳ ý do nền tảng xác định.

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

Chức năng dành riêng cho nền tảng để nhận thời gian thực (dân dụng) hiện tại ở định dạng thời gian Unix micrô giây.

Hàm này dự kiến sẽ trả về khái niệm thời gian thực hiện tại của nền tảng cục bộ, được biểu thị bằng giá trị thời gian Unix được chia tỷ lệ theo micrô giây. Đồng hồ cơ bản cần phải quay ở tốc độ ít nhất là toàn bộ giây (giá trị 1.000.000), nhưng có thể quay nhanh hơn.

Trên các nền tảng có khả năng theo dõi theo thời gian thực, GetClock_RealTime() phải trả về lỗi WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED bất cứ khi nào hệ thống không được đồng bộ hóa với thời gian thực.

Các nền tảng không có khả năng theo dõi theo thời gian thực không được triển khai hàm GetClock_RealTime(), do đó buộc các lỗi liên kết theo thời gian thực của các tính năng phụ thuộc vào quyền truy cập vào thời gian thực. Ngoài ra, các nền tảng như vậy có thể cung cấp phương thức triển khai GetClock_RealTime() trả về lỗi WEAVE_SYSTEM_ERROR_NOT_ id.

Hàm này dự kiến sẽ an toàn theo luồng trên mọi nền tảng sử dụng tính năng tạo luồng.

Thông tin chi tiết
Các tham số
[out] curTime
Thời gian hiện tại, được biểu thị bằng thời gian Unix được tính tỷ lệ theo micrô giây.
Giá trị trả về
WEAVE_SYSTEM_NO_ERROR
Nếu phương thức thành công.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Nếu nền tảng đó có thể theo dõi theo thời gian thực nhưng hiện chưa được đồng bộ hoá.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Nếu nền tảng đó không thể theo dõi thời gian thực.

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

Chức năng dành riêng cho nền tảng để nhận thời gian thực (dân dụng) hiện tại ở định dạng thời gian Unix mili giây.

Hàm này dự kiến sẽ trả về khái niệm thời gian thực hiện tại của nền tảng cục bộ, được biểu thị dưới dạng giá trị thời gian Unix được chia tỷ lệ thành mili giây.

Xem tài liệu cho GetClock_RealTime() để biết chi tiết về hành vi dự kiến.

Thông tin chi tiết
Các tham số
[out] curTime
Thời gian hiện tại, được biểu thị bằng thời gian Unix được chia tỷ lệ thành mili giây.
Giá trị trả về
WEAVE_SYSTEM_NO_ERROR
Nếu phương thức thành công.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Nếu nền tảng đó có thể theo dõi theo thời gian thực nhưng hiện chưa được đồng bộ hoá.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Nếu nền tảng đó không thể theo dõi thời gian thực.

PostEvent

NL_DLL_EXPORT Error PostEvent(
  Layer & aLayer,
  void *aContext,
  Object & aTarget,
  EventType aType,
  uintptr_t aArgument
)

Đây là nội dung hấp dẫn sau khi đăng tin nhắn / sự kiện dành riêng cho nền tảng.

Điều này có thể bị ghi đè bằng cách chú giải định nghĩa tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Thao tác này sẽ đăng một sự kiện / thông báo thuộc loại được chỉ định với đối số được cung cấp vào hàng đợi sự kiện / thông báo dành riêng cho nền tảng của phiên bản này.

Thông tin chi tiết
Các tham số
[in,out] aLayer
Con trỏ đến thực thể lớp mà sự kiện / thông báo đang được đăng.
[in,out] aContext
Dữ liệu ngữ cảnh dành riêng cho nền tảng được truyền tới phương thức khởi tạo lớp, ::Init.
[in,out] aTarget
Con trỏ đến đối tượng Layer (Lớp) của hệ thống Weave thực hiện yêu cầu đăng.
[in] aType
Loại sự kiện cần đăng.
[in,out] anArg
Đối số được liên kết với sự kiện cần đăng.
Trả về
WEAVE_SYSTEM_NO_ERROR khi thành công; nếu không thì một lỗi cụ thể cho biết lý do khởi động không thành công.

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

Chức năng dành riêng cho nền tảng để đặt giờ thực hiện hiện tại (dân dụng).

Weave gọi hàm này để đặt khái niệm nền tảng cục bộ về thời gian thực hiện tại. Thời gian hiện tại mới được biểu thị bằng giá trị thời gian Unix được chia tỷ lệ theo micrô giây.

Sau khi được đặt, đồng hồ nền tảng cơ bản sẽ theo dõi thời gian thực với độ chi tiết ít nhất là nguyên giây.

Trên các nền tảng hỗ trợ theo dõi theo thời gian thực, hàm SetClock_RealTime() phải trả về lỗi WEAVE_SYSTEM_ERROR_ACCESS_DENIED nếu ứng dụng gọi không có đặc quyền đặt thời gian hiện tại.

Các nền tảng không có khả năng theo dõi theo thời gian thực hoặc không cung cấp khả năng cài đặt theo thời gian thực không được triển khai hàm SetClock_RealTime(), do đó buộc các tính năng phụ thuộc vào thiết lập thời gian thực không hoạt động được. Ngoài ra, các nền tảng như vậy có thể cung cấp phương thức triển khai SetClock_RealTime() trả về lỗi WEAVE_SYSTEM_ERROR_NOT_hàng.

Hàm này dự kiến sẽ an toàn theo luồng trên mọi nền tảng sử dụng tính năng tạo luồng.

Thông tin chi tiết
Các tham số
[in] newCurTime
Thời gian hiện tại mới, được biểu thị bằng thời gian Unix được chia tỷ lệ theo micrô giây.
Giá trị trả về
WEAVE_SYSTEM_NO_ERROR
Nếu phương thức thành công.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Nếu nền tảng đó không thể theo dõi thời gian thực.
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
Nếu ứng dụng gọi không có đặc quyền đặt thời gian hiện tại.

StartTimer

NL_DLL_EXPORT Error StartTimer(
  Layer & aLayer,
  void *aContext,
  uint32_t aMilliseconds
)

Đây là dạng hook gửi thư / sự kiện dành riêng cho nền tảng.

Điều này có thể bị ghi đè bằng cách chú giải định nghĩa tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Thông tin chi tiết
Các tham số
[in,out] aLayer
Tham chiếu đến thực thể của lớp mà các sự kiện / thông báo đang được gửi đi.
[in,out] aContext
Dữ liệu ngữ cảnh dành riêng cho nền tảng được truyền tới phương thức khởi tạo lớp, ::Init.
[in] aMilliseconds
Số mili giây cần đặt cho bộ tính giờ.
Giá trị trả về
WEAVE_SYSTEM_NO_ERROR
Luôn thành công trừ phi bị ghi đè.

WillInit

NL_DLL_EXPORT Error WillInit(
  Layer & aLayer,
  void *aContext
)

Đây là hook khởi động trước của Hệ thống Weave dành riêng cho nền tảng Layer (Lớp).

Bạn có thể ghi đè chính sách này bằng cách chú giải định nghĩa tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Thông tin chi tiết
Các tham số
[in,out] aLayer
Tham chiếu đến thực thể Layer (Lớp) của hệ thống Weave đang được khởi động.
[in,out] aContext
Dữ liệu ngữ cảnh dành riêng cho nền tảng được truyền tới phương thức khởi tạo lớp, ::Init.
Trả về
WEAVE_SYSTEM_NO_ERROR khi thành công; nếu không thì một lỗi cụ thể cho biết lý do khởi động không thành công. Việc trả về trạng thái không thành công sẽ huỷ quá trình khởi chạy.

WillShutdown

NL_DLL_EXPORT Error WillShutdown(
  Layer & aLayer,
  void *aContext
)

Đây là hook trước khi tắt khẩn cấp của Hệ thống Weave dành riêng cho nền tảng Layer (Lớp).

Bạn có thể ghi đè chính sách này bằng cách chú giải định nghĩa tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Thông tin chi tiết
Các tham số
[in,out] aLayer
Con trỏ đến thực thể Weave System Layer (Lớp) đang tắt.
[in,out] aContext
Dữ liệu ngữ cảnh dành riêng cho nền tảng được chuyển tới phương thức khởi tạo lớp, ::Tắt.
Trả về
WEAVE_SYSTEM_NO_ERROR khi thành công; nếu không thì một lỗi cụ thể cho biết lý do tắt không thành công. Nếu bạn trả lại trạng thái không thành công, việc này sẽ huỷ việc tắt máy.