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

Tóm tắt

Hàm

DidInit(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Đây là một hook sau khi khởi chạy hệ thống Weave Layer dành riêng cho nền tảng.
DidShutdown(Layer & aLayer, void *aContext, Error aStatus)
NL_DLL_EXPORT void
Đây là một hook đã tắt trước khi hệ thống Weave System Layer dành riêng cho nền tảng.
DispatchEvent(Layer & aLayer, void *aContext, Event aEvent)
NL_DLL_EXPORT Error
Đây là một nội dung hấp dẫn gửi tin nhắn / sự kiện dành riêng cho nền tảng.
DispatchEvents(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Đây là một nội dung hấp dẫn gửi tin nhắn / 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 để lấy thời gian hệ thống đơn điệu tính bằng micrô giây.
GetClock_MonotonicHiRes(void)
uint64_t
Hàm dành riêng cho nền tảng để lấy 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 để lấy thời gian hệ thống đơn điệu tính bằng mili giây.
GetClock_RealTime(uint64_t & curTime)
Error
Hàm dành riêng cho nền tảng để lấy thời gian thực (dân sự) hiện tại ở định dạng thời gian Unix micrô giây.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
Hàm dành riêng cho nền tảng để lấy thời gian thực (dân sự) 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à một nội dung hấp dẫn liên quan đến sự kiện / bài đăng tin nhắn dành riêng cho từng nền tảng.
SetClock_RealTime(uint64_t newCurTime)
Error
Hàm dành riêng cho nền tảng để đặt thời gian thực (dân sự) hiện tại.
StartTimer(Layer & aLayer, void *aContext, uint32_t aMilliseconds)
NL_DLL_EXPORT Error
Đây là một nội dung hấp dẫn gửi tin nhắn / sự kiện dành riêng cho nền tảng.
WillInit(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Đây là một hook trước khi khởi chạy hệ thống Weave Layer dành riêng cho nền tảng.
WillShutdown(Layer & aLayer, void *aContext)
NL_DLL_EXPORT Error
Đây là một hook đã tắt trước khi hệ thống Weave System Layer dành riêng cho nền tảng.

Hàm

DidInit

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

Đây là một hook sau khi khởi chạy hệ thống Weave Layer dành riêng cho nền tảng.

Bạn có thể ghi đè giá trị này bằng cách thêm định nghĩa của bộ tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

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

DidShutdown

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

Đây là một hook đã tắt trước khi hệ thống Weave System Layer dành riêng cho nền tảng.

Bạn có thể ghi đè giá trị này bằng cách thêm định nghĩa của bộ tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Chi tiết
Tham số
[in,out] aLayer
Thông tin tham chiếu đến thực thể Layer của hệ thống Weave sắp tắt.
[in,out] aContext
Dữ liệu bối cảnh cụ thể của nền tảng được chuyển tới phương thức khởi tạo lớp, ::Shutdown.
[in] anError
Trạng thái tổng thể được trả về qua phương thức Weave System Layer ::Tắt (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 không tắt được. Việc trả lại trạng thái không thành công sẽ huỷ quá trình tắt máy.

DispatchEvent

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

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

Bạn có thể ghi đè giá trị này bằng cách thêm định nghĩa của bộ 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ý, bỏ dữ liệu loại và đối số của sự kiện để chuyển giao đến Layer::HandleEvent của hệ thống Weave để gửi đi thực tế.

Chi tiết
Tham số
[in,out] aLayer
Tham chiếu đến thực thể lớp mà các sự kiện / thông báo đang được gửi đi.
[in,out] aContext
Dữ liệu bối cảnh cụ thể của nền tảng được chuyển đến 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 cần 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 loại sự kiện này không nhận dạng được.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Nếu trạng thái của đối tượng Layer của hệ thống Weave không như dự kiến.
WEAVE_SYSTEM_NO_ERROR
Khi thành công.

DispatchEvents

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

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

Bạn có thể ghi đè giá trị này bằng cách thêm định nghĩa của bộ tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

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

Chi tiết
Tham số
[in,out] aLayer
Tham chiếu đến thực thể lớp mà các sự kiện / thông báo đang được gửi đi.
[in,out] aContext
Dữ liệu bối cảnh cụ thể của nền tảng được chuyển đến 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à giá trị NULL.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Nếu trạng thái của đối tượng Layer của hệ thống Weave không như dự kiến.
#WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Nếu một loại sự kiện không nhận dạng được.
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 để lấy 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ừ 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ờ 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 phải đánh dấu liên tục trong mọi chế độ ngủ của hệ thống không đòi hỏi phải khởi động lại khi thức dậy.

Thời gian bắt đầu của hệ thống cho 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 các hàm GetWatch khác, bao gồm cả GetWatch_MonotonicMS().

Hàm này dự kiến sẽ an toàn cho luồng trên bất kỳ nền tảng nào sử dụng luồng.

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
)

Hàm dành riêng cho nền tảng để lấy 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ừ thời gian bắt đầu của hệ thống tuỳ ý do nền tảng xác định. Các giá trị do GetWatch_MonotonicHiRes() trả về phải luôn tăng (tức là không bao giờ gói). Tuy nhiên, bộ tính giờ cơ bản không cần 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 GetWatch_MonotonicHiRes() bằng cách sử dụng một bộ tính giờ có độ phân giải cao mà không phải điều chỉnh đồng hồ dần dần (xoay vòng). Trên các nền tảng không có bộ tính giờ như vậy, GetWatch_MonotonicHiRes() có thể trả về cùng một giá trị như GetWatch_Monotonic().

Thời gian bắt đầu của hệ thống cho 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 các hàm GetWatch khác.

Hàm này dự kiến sẽ an toàn cho luồng trên bất kỳ nền tảng nào sử dụng luồng.

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 để lấy 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ừ 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ờ 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 phải đánh dấu liên tục trong mọi chế độ ngủ của hệ thống không đòi hỏi phải khởi động lại khi thức dậy.

Thời gian bắt đầu của hệ thống cho thời gian mà hàm này trả về không bắt buộc phải giống như thời gian bắt đầu của các hàm GetWatch khác..., bao gồm cả GetWatch_Monotonic().

Hàm này dự kiến sẽ an toàn cho luồng trên bất kỳ nền tảng nào sử dụng luồng.

Chi tiết
Trả về
Thời gian đã trôi qua tính bằng mili giây kể từ 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
)

Hàm dành riêng cho nền tảng để lấy thời gian thực (dân sự) 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 của nền tảng cục bộ về thời gian thực hiện tại, được biểu thị dưới dạng một giá trị thời gian Unix được điều chỉnh theo tỷ lệ micrô giây. Đồng hồ cơ bản cần phải tích tắc với tốc độ ít nhất là toàn bộ giây (giá trị 1.000.000), nhưng có thể tích tắc nhanh hơn.

Trên các nền tảng có khả năng theo dõi theo thời gian thực, GetWatch_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ộ hoá với thời gian thực.

Các nền tảng không thể theo dõi theo thời gian thực không được triển khai hàm GetWatch_RealTime(), do đó sẽ buộc các tính năng phụ thuộc vào quyền truy cập theo thời gian thực bị lỗi liên kết theo 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 GetWatch_RealTime() để trả về lỗi WEAVE_SYSTEM_ERROR_NOT_supported.

Hàm này dự kiến sẽ an toàn cho luồng trên bất kỳ nền tảng nào sử dụng luồng.

Chi tiết
Tham số
[out] curTime
Thời gian hiện tại, được biểu thị bằng thời gian Unix được điều chỉnh theo tỷ lệ micrô giây.
Giá trị trả về
WEAVE_SYSTEM_NO_ERROR
Nếu phương thức này thành công.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Liệu nền tảng có khả năng 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 theo thời gian thực.

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

Hàm dành riêng cho nền tảng để lấy thời gian thực (dân sự) 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 của nền tảng cục bộ về thời gian thực hiện tại, được biểu thị bằng một giá trị thời gian Unix được điều chỉnh theo tỷ lệ mili giây.

Hãy xem tài liệu về Getwatch_RealTime() để biết thông tin chi tiết về hành vi dự kiến.

Chi tiết
Tham số
[out] curTime
Thời gian hiện tại, được biểu thị bằng thời gian Unix được điều chỉnh theo tỷ lệ mili giây.
Giá trị trả về
WEAVE_SYSTEM_NO_ERROR
Nếu phương thức này thành công.
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
Liệu nền tảng có khả năng 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 theo thời gian thực.

PostEvent

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

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

Bạn có thể ghi đè giá trị này bằng cách thêm định nghĩa của bộ 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 cùng với đối số được cung cấp cho 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.

Chi tiết
Tham số
[in,out] aLayer
Con trỏ trỏ đến thực thể lớp nơi sự kiện / thông báo đang được đăng.
[in,out] aContext
Dữ liệu bối cảnh cụ thể của nền tảng được chuyển đến phương thức khởi tạo lớp, ::Init.
[in,out] aTarget
Con trỏ trỏ đến đối tượng Layer của hệ thống Weave đang gửi 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, một lỗi cụ thể cho biết lý do không khởi động được.

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

Hàm dành riêng cho nền tảng để đặt thời gian thực (dân sự) hiện tại.

Weave gọi hàm này để thiết lập khái niệm của 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ị dưới dạng giá trị thời gian Unix được điều chỉnh theo tỷ lệ micrô giây.

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

Trên các nền tảng hỗ trợ tính năng theo dõi theo thời gian thực, hàm SetWatch_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 thể theo dõi theo thời gian thực hoặc không cung cấp khả năng đặt thời gian thực không được triển khai hàm SetWatch_RealTime(), do đó buộc các tính năng phụ thuộc vào thời gian liên kết bị lỗi thời gian liên kết. Ngoài ra, các nền tảng đó có thể cung cấp phương thức triển khai SetWatch_RealTime() để trả về lỗi WEAVE_SYSTEM_ERROR_NOT_supported.

Hàm này dự kiến sẽ an toàn cho luồng trên bất kỳ nền tảng nào sử dụng luồng.

Chi tiết
Tham số
[in] newCurTime
Thời gian hiện tại mới, được biểu thị bằng thời gian Unix được điều chỉnh theo tỷ lệ thành micrô giây.
Giá trị trả về
WEAVE_SYSTEM_NO_ERROR
Nếu phương thức này thành công.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Nếu nền tảng không thể theo dõi theo 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à một nội dung hấp dẫn gửi tin nhắn / sự kiện dành riêng cho nền tảng.

Bạn có thể ghi đè giá trị này bằng cách thêm định nghĩa của bộ tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_EVENT_FUNCTIONS.

Chi tiết
Tham số
[in,out] aLayer
Tham chiếu đến thực thể lớp mà các sự kiện / thông báo đang được gửi đi.
[in,out] aContext
Dữ liệu bối cảnh cụ thể của nền tảng được chuyển đến phương thức khởi tạo lớp, ::Init.
[in] aMilliseconds
Số mili giây để đặ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à một hook trước khi khởi chạy hệ thống Weave Layer dành riêng cho nền tảng.

Bạn có thể ghi đè giá trị này bằng cách thêm định nghĩa của bộ tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Chi tiết
Tham số
[in,out] aLayer
Thông tin tham chiếu đến thực thể Layer của hệ thống Weave đang được khởi động.
[in,out] aContext
Dữ liệu bối cảnh cụ thể của nền tảng được chuyển đến 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, một lỗi cụ thể cho biết lý do không khởi động được. 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à một hook đã tắt trước khi hệ thống Weave System Layer dành riêng cho nền tảng.

Bạn có thể ghi đè giá trị này bằng cách thêm định nghĩa của bộ tiền xử lý, WEAVE_SYSTEM_CONFIG_PLATFORM_PROVIDES_XTOR_FUNCTIONS.

Chi tiết
Tham số
[in,out] aLayer
Một con trỏ trỏ đến thực thể Layer của hệ thống Weave đang tắt.
[in,out] aContext
Dữ liệu bối cảnh cụ thể của nền tảng được chuyển tới phương thức khởi tạo lớp, ::Shutdown.
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ông tắt được. Việc trả lại trạng thái không thành công sẽ huỷ quá trình tắt máy.