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::Dệt::Hệ thống::Lớp

#include <src/system/SystemLayer.h>

This provides access to timers according to the configured event handling model.

Tóm tắt

Đối với WEAVE_SYSTEM_CONFIG_USE_SOCKETS, thông báo về sự sẵn sàng của sự kiện được xử lý thông qua cách triển khai cuộc thăm dò ý kiến/cách lựa chọn truyền thống trên nền tảng thích ứng.

Đối với WEAVE_SYSTEM_CONFIG_USE_LWIP, thông báo về trạng thái sẵn sàng của sự kiện được xử lý thông qua các sự kiện/tin nhắn và các mối liên kết cụ thể theo nền tảng và hệ thống cho hệ thống sự kiện/thông báo.

Hàm dựng và hàm phá hủy

Layer(void)

Loại công khai

EventHandler)(Object &aTarget, EventType aEventType, uintptr_t aArgument) typedef
Error(*
TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError) typedef
void(*

Hàm công khai

AddEventHandlerDelegate(LwIPEventHandlerDelegate & aDelegate)
Error
Điều này sẽ thêm một đại biểu của trình xử lý sự kiện vào lớp hệ thống để mở rộng khả năng xử lý các sự kiện LwIP.
CancelTimer(TimerCompleteFunct aOnComplete, void *aAppState)
void
Phương thức này sẽ hủy lịch hẹn giờ một lần, được bắt đầu trước đó cho đến hết StartTimer().
DispatchEvent(Event aEvent)
Error
Thao tác này sẽ gửi sự kiện đã chỉ định để xử lý bản sao này.
DispatchEvents(void)
Error
Đây là một trình bao bọc cú pháp xung quanh một móc cụ thể cho nền tảng nhằm tác động đến một vòng lặp sự kiện, đợi một hàng đợi phục vụ phiên bản này, kéo các sự kiện ra khỏi hàng đợi đó rồi gửi đi để xử lý.
GetPlatformData(void) const
void *
Thao tác này sẽ trả về mọi dữ liệu nền tảng dành riêng cho ứng dụng được chỉ định cho phiên bản này, nếu dữ liệu đã được đặt trước đó.
HandleEvent(Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
Thao tác này sẽ triển khai quá trình gửi và xử lý sự kiện Lớp Hệ thống dệt.
HandlePlatformTimer(void)
Error
Xử lý sự kiện hết hạn bộ tính giờ trong nền tảng.
HandleSelectResult(int aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet)
void
Xử lý I/O trong một cuộc gọi đã chọn.
Init(void *aContext)
Error
NewTimer(Timer *& aTimerPtr)
Error
PostEvent(Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
Thao tác này sẽ đăng một sự kiện / thông báo thuộc loại đã chỉ định cùng với đối số được cung cấp cho hàng đợi sự kiện dành riêng cho nền tảng này.
PrepareSelect(int & aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet, struct timeval & aSleepTime)
void
Chuẩn bị tập hợp các nhãn mô tả tệp để select() hoạt động.
ScheduleWork(TimerCompleteFunct aComplete, void *aAppState)
Error
Lên lịch một hàm có chữ ký giống với TimerCompleteFunct để chạy ngay khi có thể trên chuỗi Weave.
SetPlatformData(void *aPlatformData)
void
Thao tác này sẽ đặt dữ liệu của nền tảng dành riêng cho ứng dụng thành phiên bản để nền tảng ứng dụng truy xuất sau này.
Shutdown(void)
Error
StartTimer(uint32_t aMilliseconds, TimerCompleteFunct aComplete, void *aAppState)
Error
Phương thức này sẽ bắt đầu đồng hồ hẹn giờ một lần.
State(void) const
LayerState
Thao tác này sẽ trả về trạng thái hiện tại của đối tượng lớp.
WakeSelect(void)
void
Đánh thức luồng I/O theo dõi các nhãn mô tả tệp bằng select() bằng cách ghi một byte duy nhất vào đường dẫn đánh thức.

Hàm tĩnh công khai

GetClock_Monotonic(void)
uint64_t
Trả về thời gian một hệ đơn vị tính bằng đơn vị micrô giây.
GetClock_MonotonicHiRes(void)
uint64_t
Trả về thời gian hệ thống đơn sắc có độ phân giải cao (có khả năng) tính bằng đơn vị micrô giây.
GetClock_MonotonicMS(void)
uint64_t
Trả về thời gian hệ thống đơn âm theo đơn vị mili giây.
GetClock_RealTime(uint64_t & curTime)
Error
Trả về thời gian thực (civil) hiện tại ở định dạng thời gian Unix giây.
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
Trả về thời gian thực (tivil) hiện tại theo định dạng thời gian Unix mili giây.
SetClock_RealTime(uint64_t newCurTime)
Error
Thiết lập khái niệm nền tảng về thời gian thực (tiệc) hiện tại.

Loại công khai

Trình xử lý sự kiện

Error(* EventHandler)(Object &aTarget, EventType aEventType, uintptr_t aArgument)

Bộ đếm giờ

void(* TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError)

Hàm công khai

AddEventHandlerDelegate

Error AddEventHandlerDelegate(
  LwIPEventHandlerDelegate & aDelegate
)

Điều này sẽ thêm một đại biểu của trình xử lý sự kiện vào lớp hệ thống để mở rộng khả năng xử lý các sự kiện LwIP.

Thông tin chi tiết
Các thông số
[in] aDelegate
Cấu trúc đại biểu của trình xử lý sự kiện LwIP chưa được khởi tạo
Giá trị trả về
WEAVE_SYSTEM_NO_ERROR
Thành công!
WEAVE_SYSTEM_ERROR_BAD_ARGS
Nếu con trỏ hàm chứa trong aDelegate là NULL

Hẹn giờ hủy

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

Phương thức này sẽ hủy lịch hẹn giờ một lần, được bắt đầu trước đó cho đến hết StartTimer().

Thông tin chi tiết
Các thông số
[in] aOnComplete
Con trỏ đến hàm callback dùng trong lệnh gọi StartTimer().
[in] aAppState
Con trỏ đến đối tượng trạng thái của ứng dụng dùng để gọi StartTimer().

Sự kiện điều phối

Error DispatchEvent(
  Event aEvent
)

Thao tác này sẽ gửi sự kiện đã chỉ định để xử lý bản sao này.

Việc tách biệt loại và đối số của sự kiện khỏi sự kiện được xử lý bằng một hook dành riêng cho nền tảng, sau đó sẽ gọi lại cho Lớp::HandleEvent để gửi đi.

Thông tin chi tiết
Các thông số
[in] aEvent
Đối tượng sự kiện dành riêng cho nền tảng để gửi đi để xử lý.
Trả về
WEAVE_FRAME_NO_ERROR thành công; nếu không, lỗi cụ thể cho biết lý do lỗi khởi tạo.

Sự kiện điều phối

Error DispatchEvents(
  void
)

Đây là một trình bao bọc cú pháp xung quanh một móc cụ thể cho nền tảng nhằm tác động đến một vòng lặp sự kiện, đợi một hàng đợi phục vụ phiên bản này, kéo các sự kiện ra khỏi hàng đợi đó rồi gửi đi để xử lý.

Thông tin chi tiết
Trả về
WEAVE_FRAME_NO_ERROR trên thành công; nếu không, lỗi cụ thể cho biết lý do lỗi khởi tạo.

Lấy dữ liệu nền tảng

void * GetPlatformData(
  void
) const 

Thao tác này sẽ trả về mọi dữ liệu nền tảng dành riêng cho ứng dụng được chỉ định cho phiên bản này, nếu dữ liệu đã được đặt trước đó.

Thông tin chi tiết
Trả về
Dữ liệu nền tảng dành riêng cho ứng dụng, nếu đã được đặt trước đó; nếu không, sẽ là NULL.

Tên người dùng

Error HandleEvent(
  Object & aTarget,
  EventType aEventType,
  uintptr_t aArgument
)

Thao tác này sẽ triển khai quá trình gửi và xử lý sự kiện Lớp Hệ thống dệt.

Thông tin chi tiết
Các thông số
[in,out] aTarget
Tham chiếu đến đối tượng lớp mà sự kiện được nhắm mục tiêu.
[in] aEventType
Loại sự kiện / thông báo cần xử lý.
[in] aArgument
Đối số liên kết với sự kiện / thông báo.
Giá trị trả về
WEAVE_SYSTEM_NO_ERROR
Thành công!
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Nếu trạng thái của đối tượng Inetlayer không chính xác.
WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
Nếu loại sự kiện không nhận dạng được.

Thời gian xử lý nền tảng

Error HandlePlatformTimer(
  void
)

Xử lý sự kiện hết hạn bộ tính giờ trong nền tảng.

Cuộc gọi nl::Weave::System::Timer::HandleDurationTimers để xử lý bất kỳ đồng hồ hẹn giờ nào đã hết hạn. Giả định rằng API này chỉ được gọi khi đang ở trên luồng sở hữu đối tượng Lớp của Hệ thống Weave.

Thông tin chi tiết
Trả về
WEAVE_FRAME_NO_ERROR thành công, mã lỗi nếu không.

Xử lý chọn kết quả

void HandleSelectResult(
  int aSetSize,
  fd_set *aReadSet,
  fd_set *aWriteSet,
  fd_set *aExceptionSet
)

Xử lý I/O trong một cuộc gọi đã chọn.

Phương thức này đăng ký sự kiện I/O đang chờ xử lý trong mỗi điểm cuối đang hoạt động rồi gọi các hàm xử lý I/O tương ứng cho các điểm cuối đó.

Thông tin chi tiết
Các thông số
[in] aSetSize
Giá trị trả về của lệnh gọi chọn.
[in] aReadSet
Con trỏ đến tập hợp các nhãn mô tả tệp đã đọc.
[in] aWriteSet
Con trỏ đến tập hợp các nhãn mô tả tệp.
[in] aExceptionSet
Con trỏ đến tập hợp các nhãn mô tả tệp bị lỗi.

Số nguyên

Error Init(
  void *aContext
)

Lớp

 Layer(
  void
)

Thời gian mới

Error NewTimer(
  Timer *& aTimerPtr
)

Sau sự kiện

Error PostEvent(
  Object & aTarget,
  EventType aEventType,
  uintptr_t aArgument
)

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

Thông tin chi tiết
Các thông số
[in,out] aTarget
Con trỏ đến đối tượng Lớp của hệ thống Weave tạo yêu cầu bài đăng.
[in] aEventType
Loại sự kiện cần đăng.
[in,out] aArgument
Đối số liên kết với sự kiện để đăng.
Giá trị trả về
WEAVE_SYSTEM_NO_ERROR
Thành công!
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Nếu trạng thái của đối tượng Lớp không chính xác.
WEAVE_SYSTEM_ERROR_NO_MEMORY
Nếu hàng đợi sự kiện đã đầy.
other
Đã tạo lỗi riêng theo nền tảng cho biết lý do lỗi.

Chuẩn bị chọn

void PrepareSelect(
  int & aSetSize,
  fd_set *aReadSet,
  fd_set *aWriteSet,
  fd_set *aExceptionSet,
  struct timeval & aSleepTime
)

Chuẩn bị tập hợp các nhãn mô tả tệp để select() hoạt động.

Thông tin chi tiết
Các thông số
[out] aSetSize
Phạm vi của trình mô tả tệp trong bộ mô tả tệp.
[in] aReadSet
Con trỏ đến tập hợp các nhãn mô tả tệp dễ đọc.
[in] aWriteSet
Con trỏ đến tập hợp các nhãn mô tả tệp có thể ghi.
[in] aExceptionSet
Con trỏ đến tập hợp các nhãn mô tả tệp bị lỗi.
[in] aSleepTime
Tham chiếu đến thời gian ngủ tối đa.

Lịch làm việc

Error ScheduleWork(
  TimerCompleteFunct aComplete,
  void *aAppState
)

Lên lịch một hàm có chữ ký giống với TimerCompleteFunct để chạy ngay khi có thể trên chuỗi Weave.

Thông tin chi tiết
Các thông số
[in] aComplete
Con trỏ đến hàm gọi lại để gọi khi bộ tính giờ này kích hoạt.
[in] aAppState
Con trỏ đến đối tượng trạng thái ứng dụng để chuyển đến hàm callback dưới dạng đối số.
Giá trị trả về
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Nếu Lớp hệ thống chưa được khởi tạo.
WEAVE_SYSTEM_ERROR_NO_MEMORY
Nếu Lớp hệ thống không thể phân bổ bộ tính giờ mới.
WEAVE_SYSTEM_NO_ERROR
Thành công!

Đặt dữ liệu nền tảng

void SetPlatformData(
  void *aPlatformData
)

Thao tác này sẽ đặt dữ liệu của nền tảng dành riêng cho ứng dụng thành phiên bản để nền tảng ứng dụng truy xuất sau này.

Thông tin chi tiết
Các thông số
[in] aPlatformData
Dữ liệu nền tảng dành riêng cho khách hàng được đặt.

Tắt

Error Shutdown(
  void
)

Thời gian bắt đầu

Error StartTimer(
  uint32_t aMilliseconds,
  TimerCompleteFunct aComplete,
  void *aAppState
)

Phương thức này sẽ bắt đầu đồng hồ hẹn giờ một lần.

Thông tin chi tiết
Các thông số
[in] aMilliseconds
Thời gian hết hạn tính bằng mili giây.
[in] aComplete
Con trỏ đến hàm được gọi khi bộ tính giờ hết hạn.
[in] aAppState
Con trỏ đến đối tượng trạng thái ứng dụng dùng khi bộ tính giờ hết hạn.
Trả về
WEAVE_FRAME_NO_ERROR Khi thành công.
Trả về
WEAVE_FRAME_ERROR_NO_MEMORY Nếu không thể đặt đồng hồ hẹn giờ.
Trả về
Giá trị khác cho biết không thể bắt đầu hẹn giờ.

Tiểu bang

LayerState State(
  void
) const 

Thao tác này sẽ trả về trạng thái hiện tại của đối tượng lớp.

Mở máy từ xa

void WakeSelect(
  void
)

Đánh thức luồng I/O theo dõi các nhãn mô tả tệp bằng select() bằng cách ghi một byte duy nhất vào đường dẫn đánh thức.

Lưu ý: Nếu WakeSelect() được gọi từ trong HandleSelectResult(), thì bạn có thể bỏ qua nội dung ghi vào kênh đánh thức, vì chuỗi I/O đã hoạt động. Hơn nữa, chúng tôi không quan tâm đến việc lượt ghi này có bị lỗi hay không vì khả năng hợp lý duy nhất là đường ống đã đầy, trong trường hợp đó, chuỗi gọi chọn sẽ vẫn hoạt động.

Hàm tĩnh công khai

GetClock_Monotonic (GetClock_Monotonic)

uint64_t GetClock_Monotonic(
  void
)

Trả về thời gian một hệ đơn vị tính bằng đơn vị micrô giây.

Hàm này trả về thời gian đã trôi qua tính bằng micrô giây kể từ một kỷ nguyên tùy ý, được nền tảng xác định. Giá trị được trả về được đảm bảo sẽ không ngừng tăng lên (tức là không bao giờ bị gói) giữa các lần khởi động lại của hệ thống. Ngoài ra, nguồn thời gian cơ bản được đảm bảo đánh dấu liên tục trong mọi chế độ ngủ của hệ thống không yêu cầu khởi động lại khi thức dậy.

Mặc dù một số nền tảng có thể chọn trả về một giá trị đo thời gian kể từ khi khởi động hệ thống, nhưng các ứng dụng không phải sử dụng giá trị này. Ngoài ra, kỷ nguyên cho GetClock_Monotonic() không bắt buộc phải giống với kỷ nguyên của bất kỳ hàm GetClock nào khác.... Do đó, việc tính toán thời gian tương đối chỉ có thể thực hiện được trên các giá trị do cùng một hàm trả về.

Hàm này được đảm bảo an toàn cho luồng trên bất kỳ nền tảng nào sử dụng 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 kỷ nguyên tùy ý do nền tảng xác định.

GetClock_MonotonicHiRes (Quảng cáo của GetClock_MonotonicHiRes)

uint64_t GetClock_MonotonicHiRes(
  void
)

Trả về thời gian hệ thống đơn sắc có độ phân giải cao (có khả năng) tính bằng đơn vị micrô giây.

Hàm này trả về thời gian đã trôi qua tính bằng micrô giây kể từ một kỷ nguyên tùy ý, được nền tảng xác định. Giá trị được trả về được đảm bảo sẽ không ngừng tăng lên (tức là không bao giờ bị gói) giữa các lần khởi động lại của hệ thống. 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.

Một số nền tảng có thể triển khai GetClock_MonotonicHiRes() bằng cách sử dụng bộ tính giờ có độ phân giải cao có độ chính xác cao hơn GetClock_Monotonic() và không phải điều chỉnh đồng hồ dần dần (lái bằng). Những hệ thống không có bộ tính giờ đó có thể chỉ trả về cùng một giá trị như GetClock_Monotonic().

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

Hàm này được đảm bảo an toàn cho luồng trên bất kỳ nền tảng nào sử dụng 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 kỷ nguyên tùy ý do nền tảng xác định.

GetClock_MonotonicMS (Quảng cáo tìm kiếm động)

uint64_t GetClock_MonotonicMS(
  void
)

Trả về thời gian hệ thống đơn âm theo đơn vị mili giây.

Hàm này trả về thời gian đã trôi qua tính bằng mili giây kể từ một kỷ nguyên tùy ý, được nền tảng xác định. Giá trị được trả về được đảm bảo sẽ không ngừng tăng lên (tức là không bao giờ bị gói) giữa các lần khởi động lại của hệ thống. Ngoài ra, nguồn thời gian cơ bản được đảm bảo đánh dấu liên tục trong mọi chế độ ngủ của hệ thống không yêu cầu khởi động lại khi thức dậy.

Mặc dù một số nền tảng có thể chọn trả về một giá trị đo thời gian kể từ khi khởi động hệ thống, nhưng các ứng dụng không phải sử dụng giá trị này. Ngoài ra, kỷ nguyên cho GetClock_Monotonic() không bắt buộc phải giống với kỷ nguyên của bất kỳ hàm GetClock nào khác.... Do đó, việc tính toán thời gian tương đối chỉ có thể thực hiện được trên các giá trị do cùng một hàm trả về.

Hàm này được đảm bảo an toàn cho luồng trên bất kỳ nền tảng nào sử dụng 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 thời điểm bắt đầu tùy ý do nền tảng xác định.

GetClock_RealTime

Error GetClock_RealTime(
  uint64_t & curTime
)

Trả về thời gian thực (civil) hiện tại ở định dạng thời gian Unix giây.

Phương thức này trả về khái niệm thời gian thực hiện tại của nền tảng địa phương, được biểu thị dưới dạng giá trị thời gian Unix được tính tỷ lệ theo micrô giây. Đồng hồ cơ bản được đảm bảo đánh dấu với tốc độ ít nhất là cả giây (giá trị 1.000.000), nhưng trên một số nền tảng có thể đánh dấu nhanh hơn.

Nếu nền tảng cơ bản có thể theo dõi theo thời gian thực, nhưng hệ thống hiện chưa được đồng bộ hóa, thì GetClock_RealTime() sẽ trả về lỗi WEAVE_FRAME_ERROR_REAL_TIME_NOT_SYNCED.

Trên các nền tảng không thể theo dõi thời gian thực, phương thức GetClock_RealTime() có thể bị thiếu, dẫn đến lỗi liên kết đối với bất kỳ ứng dụng nào tham chiếu phương thức đó. Ngoài ra, các nền tảng này có thể cung cấp phương thức triển khai GetClock_RealTime() mà sẽ luôn trả về lỗi WEAVE_FRAME_ERROR_NOT_supported.

Hàm này được đảm bảo an toàn cho luồng trên bất kỳ nền tảng nào sử dụng luồng.

Thông tin chi tiết
Các thông số
[out] curTime
Thời gian hiện tại, được biểu thị dưới dạng thời gian Unix ở tỷ lệ 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ộ hóa.
#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 (Thời gian thực)

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

Trả về thời gian thực (tivil) hiện tại theo định dạng thời gian Unix mili giây.

Phương thức này trả về khái niệm thời gian thực hiện tại của nền tảng địa phương, được biểu thị dưới dạng giá trị thời gian Unix được tính theo mili giây. Đồng hồ cơ bản được đảm bảo đánh dấu với tốc độ ít nhất là cả giây (giá trị 1.000.000), nhưng trên một số nền tảng có thể đánh dấu nhanh hơn.

Nếu nền tảng cơ bản có thể theo dõi theo thời gian thực, nhưng hệ thống hiện chưa được đồng bộ hóa, thì GetClock_RealTimeMS() sẽ trả về lỗi WEAVE_NETWORK_ERROR_REAL_TIME_NOT_SYNCED.

Trên các nền tảng không thể theo dõi thời gian thực, phương thức GetClock_RealTimeMS() có thể không xuất hiện, dẫn đến lỗi liên kết đối với bất kỳ ứng dụng nào tham chiếu đến phương thức đó. Ngoài ra, các nền tảng này có thể cung cấp phương thức triển khai GetClock_RealTimeMS() sẽ luôn trả về lỗi WEAVE_ENGINE_ERROR_NOT_PROVIDER.

Hàm này được đảm bảo an toàn cho luồng trên bất kỳ nền tảng nào sử dụng luồng.

Thông tin chi tiết
Các thông số
[out] curTime
Thời gian hiện tại, được biểu thị dưới dạng thời gian Unix theo tỷ lệ 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ộ hóa.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
Nếu nền tảng không thể theo dõi theo thời gian thực.

Đặt thời gian thực khóa

Error SetClock_RealTime(
  uint64_t newCurTime
)

Thiết lập khái niệm nền tảng về thời gian thực (tiệc) hiện tại.

Các ứng dụng có thể gọi hàm này để đặt khái niệm về thời gian thực hiện tại của nền tảng địa phương. Thời gian hiện tại mới được biểu thị dưới dạng giá trị thời gian Unix được tính tỷ lệ theo micrô giây.

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

Một số nền tảng có thể hạn chế những ứng dụng hoặc quy trình có thể đặt theo thời gian thực. Nếu người gọi không được phép thay đổi thời gian thực, hàm SetClock_RealTime() sẽ trả về lỗi WEAVE_FRAME_ERROR_ACCESS_DENIED.

Trên 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, hàm SetClock_RealTime() có thể bị thiếu, dẫn đến lỗi liên kết đối với bất kỳ ứng dụng nào tham chiếu hàm đó. Ngoài ra, các nền tảng này có thể cung cấp phương thức triển khai SetClock_RealTime() luôn trả về lỗi WEAVE_FRAME_ERROR_NOT_SUPPORT.

Hàm này được đảm bảo an toàn cho luồng trên bất kỳ nền tảng nào sử dụng luồng.

Thông tin chi tiết
Các thông số
[in] newCurTime
Thời gian mới hiện tại, được biểu thị dưới dạng thời gian Unix theo tỷ lệ phần trăm tính theo 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 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.