nl::Weave::System::Layer

#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 trạng thái sẵn sàng của sự kiện được xử lý thông qua phương thức triển khai cuộc thăm dò ý kiến/lựa chọn truyền thống trên nền tảng.

Đối với WEAVE_SYSTEM_CONFIG_USE_LWIP, thông báo trạng thái sẵn sàng của sự kiện được xử lý thông qua các sự kiện / thông báo, cũng như các hook dành riêng cho nền tảng và hệ thống đối với hệ thống thông báo/sự kiện.

Hàm khởi tạo và phá huỷ

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
Thao tác này sẽ thêm uỷ quyền 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 huỷ tính năng hẹn giờ một lần đã 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 để thực thể này xử lý.
DispatchEvents(void)
Error
Đây là một trình bao bọc cú pháp xung quanh một hook dành riêng cho nền tảng có tác động đến vòng lặp sự kiện, chờ 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 chúng đ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 khách được chỉ định cho thực thể đó, nếu đã được thiết lập trước đó.
HandleEvent(Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
Thao tác này sẽ triển khai việc điều phối và xử lý thực tế sự kiện Layer của hệ thống Weave.
HandlePlatformTimer(void)
Error
Xử lý sự kiện hết hạn bộ tính giờ nền tảng.
HandleSelectResult(int aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet)
void
Xử lý I/O từ một lệnh gọi được 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 được chỉ định cùng với đối số được cung cấp vào hàng đợi sự kiện dành riêng cho nền tảng của phiên bản này.
PrepareSelect(int & aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet, struct timeval & aSleepTime)
void
Chuẩn bị bộ chỉ số mô tả tệp để select() làm việc cùng.
ScheduleWork(TimerCompleteFunct aComplete, void *aAppState)
Error
Lên lịch để một hàm có chữ ký giống hệt với TimerCompleteFunct chạy càng sớm càng tốt trên luồng Weave.
SetPlatformData(void *aPlatformData)
void
Thao tác này sẽ thiết lập dữ liệu nền tảng dành riêng cho ứng dụng được chỉ định thành thực thể để nền tảng ứng dụng truy xuất sau.
Shutdown(void)
Error
StartTimer(uint32_t aMilliseconds, TimerCompleteFunct aComplete, void *aAppState)
Error
Phương thức này bắt đầu bộ tính giờ một lần.
State(void) const
LayerState
Thao tác này 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 giám sát chỉ số mô tả tệp bằng cách sử dụ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 của hệ thống đơn điệu theo đơn vị micrô giây.
GetClock_MonotonicHiRes(void)
uint64_t
Trả về thời gian của hệ thống đơn điệu có độ phân giải cao (có thể) tính bằng đơn vị micrô giây.
GetClock_MonotonicMS(void)
uint64_t
Trả về thời gian của hệ thống đơn điệu theo đơn vị mili giây.
GetClock_RealTime(uint64_t & curTime)
Error
Trả về 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
Trả về thời gian thực (dân sự) hiện tại ở định dạng thời gian Unix mili giây.
SetClock_RealTime(uint64_t newCurTime)
Error
Đặt khái niệm của nền tảng về thời gian thực (dân sự) hiện tại.

Loại công khai

EventHandler

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

TimerCompleteFunct

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

Hàm công khai

AddEventHandlerDelegate

Error AddEventHandlerDelegate(
  LwIPEventHandlerDelegate & aDelegate
)

Thao tác này sẽ thêm uỷ quyền 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
Tham số
[in] aDelegate
Cấu trúc uỷ quyền 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
Khi thành công.
WEAVE_SYSTEM_ERROR_BAD_ARGS
Nếu con trỏ hàm chứa trong aDelegate là giá trị NULL

CancelTimer

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

Phương thức này huỷ tính năng hẹn giờ một lần đã bắt đầu trước đó cho đến hết StartTimer().

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

DispatchEvent

Error DispatchEvent(
  Event aEvent
)

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

Việc tách riêng kiểu và đối số từ sự kiện sẽ được xử lý bằng một hook dành riêng cho nền tảng, sau đó gọi lại Layer::HandleEvent để gửi thực tế.

Thông tin chi tiết
Tham số
[in] aEvent
Đối tượng sự kiện dành riêng cho nền tảng cần gửi đi để xử lý.
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.

DispatchEvents

Error DispatchEvents(
  void
)

Đây là một trình bao bọc cú pháp xung quanh một hook dành riêng cho nền tảng có tác động đến vòng lặp sự kiện, chờ 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 chúng đi xử lý.

Thông tin chi tiết
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.

GetPlatformData

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 khách được chỉ định cho thực thể đó, nếu đã được thiết lập 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 thiết lập từ trước; nếu không thì là NULL.

HandleEvent

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

Thao tác này sẽ triển khai việc điều phối và xử lý thực tế sự kiện Layer của hệ thống Weave.

Thông tin chi tiết
Tham số
[in,out] aTarget
Tham chiếu đến đối tượng lớp mà sự kiện nhắm đến.
[in] aEventType
Loại sự kiện / thông báo cần xử lý.
[in] aArgument
Đối số được liên kết với sự kiện / thông báo.
Giá trị trả về
WEAVE_SYSTEM_NO_ERROR
Khi 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 này không nhận dạng được.

HandlePlatformTimer

Error HandlePlatformTimer(
  void
)

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

Gọi nl::Weave::System::Timer::HandleLoadedTimers để xử lý mọi hẹn giờ đã hết hạn. Giả định rằng API này chỉ được gọi khi 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_SYSTEM_NO_ERROR khi thành công, nếu không thì hãy nhập mã lỗi.

HandleSelectResult

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

Xử lý I/O từ một lệnh gọi được chọn.

Phương thức này đăng ký sự kiện I/O đang chờ xử lý trong từng điểm cuối đang hoạt động, sau đó 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
Tham số
[in] aSetSize
Giá trị trả về của lệnh gọi chọn.
[in] aReadSet
Con trỏ đến tập hợp chỉ số mô tả tệp đã đọc.
[in] aWriteSet
Con trỏ đến tập hợp chỉ số mô tả tệp ghi.
[in] aExceptionSet
Con trỏ đến tập hợp chỉ số mô tả tệp có lỗi.

Init

Error Init(
  void *aContext
)

Lớp

 Layer(
  void
)

NewTimer

Error NewTimer(
  Timer *& aTimerPtr
)

PostEvent

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 được chỉ định cùng với đối số được cung cấp vào hàng đợi sự kiện dành riêng cho nền tảng của phiên bản này.

Thông tin chi tiết
Tham số
[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] aEventType
Loại sự kiện cần đăng.
[in,out] aArgument
Đối số được liên kết với sự kiện cần đăng.
Giá trị trả về
WEAVE_SYSTEM_NO_ERROR
Khi thành công.
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Nếu trạng thái của đối tượng Layer (Lớp) không chính xác.
WEAVE_SYSTEM_ERROR_NO_MEMORY
Nếu hàng đợi sự kiện đã đầy.
other
Lỗi cụ thể theo nền tảng được tạo cho biết lý do không thành công.

PrepareSelect

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

Chuẩn bị bộ chỉ số mô tả tệp để select() làm việc cùng.

Thông tin chi tiết
Tham số
[out] aSetSize
Phạm vi của chỉ số mô tả tệp trong tập hợp chỉ số mô tả tệp.
[in] aReadSet
Con trỏ trỏ đến tập hợp chỉ số mô tả tệp có thể đọc được.
[in] aWriteSet
Con trỏ trỏ đến tập hợp chỉ số mô tả tệp có thể ghi.
[in] aExceptionSet
Con trỏ đến tập hợp chỉ số mô tả tệp có lỗi.
[in] aSleepTime
Thông tin tham chiếu đến thời gian ngủ tối đa.

ScheduleWork

Error ScheduleWork(
  TimerCompleteFunct aComplete,
  void *aAppState
)

Lên lịch để một hàm có chữ ký giống hệt với TimerCompleteFunct chạy càng sớm càng tốt trên luồng Weave.

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

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

Thao tác này sẽ thiết lập dữ liệu nền tảng dành riêng cho ứng dụng được chỉ định thành thực thể để nền tảng ứng dụng truy xuất sau.

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

Tắt

Error Shutdown(
  void
)

StartTimer

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

Phương thức này bắt đầu bộ tính giờ một lần.

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

Tiểu bang

LayerState State(
  void
) const 

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

WakeSelect

void WakeSelect(
  void
)

Đánh thức luồng I/O giám sát chỉ số mô tả tệp bằng cách sử dụ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() đang được gọi từ trong HandleSelectResult(), thì bạn có thể bỏ qua việc ghi vào đường ống đánh thức, vì luồng I/O đã được bật. Hơn nữa, chúng ta sẽ không quan tâm việc ghi có không thành công hay không vì lỗi duy nhất có thể xảy ra là đường ống đã đầy. Trong trường hợp đó, luồng gọi được chọn sẽ vẫn được đánh thức.

Hàm tĩnh công khai

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

Trả về thời gian của hệ thống đơn điệu theo đơ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ừ thời gian bắt đầu của hệ thống tuỳ ý do nền tảng xác định. Giá trị được trả về được đảm bảo sẽ tăng không ngừ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 được đảm bảo sẽ hoạt động liên tục trong mọi chế độ ngủ của hệ thống mà không đòi hỏi phải 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 lường thời gian kể từ khi hệ thống khởi động, nhưng các ứng dụng không được dựa vào giá trị này. Ngoài ra, thời gian bắt đầu của hệ thống cho GetClock_Monotonic() không bắt buộc phải giống như thời gian bắt đầu của bất kỳ hàm GetWatch nào khác... Do đó, tính toán thời gian tương đối chỉ có thể được thực hiện trên các giá trị được 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 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
)

Trả về thời gian của hệ thống đơn điệu có độ phân giải cao (có thể) 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 do thời gian bắt đầu của hệ thống tuỳ ý do nền tảng xác định. Giá trị được trả về được đảm bảo sẽ tăng không ngừng (tức là không bao giờ gói) giữa các lần khởi động lại 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ộ hẹn giờ có độ phân giải cao có độ chính xác cao hơn GetClock_Monotonic() và không có sự điều chỉnh đồng hồ dần dần (xoay vòng). Các hệ thống không có bộ tính giờ như vậy có thể chỉ trả về cùng một giá trị như GetClock_Monotonic().

Thời gian bắt đầu của hệ thống đối với thời gian do GetClock_MonotonicHiRes() trả về không bắt buộc phải giống như thời gian của các hàm GetWatch 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 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
)

Trả về thời gian của hệ thống đơn điệu 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ừ thời gian bắt đầu của hệ thống tuỳ ý do nền tảng xác định. Giá trị được trả về được đảm bảo sẽ tăng không ngừ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 được đảm bảo sẽ hoạt động liên tục trong mọi chế độ ngủ của hệ thống mà không đòi hỏi phải 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 lường thời gian kể từ khi hệ thống khởi động, nhưng các ứng dụng không được dựa vào giá trị này. Ngoài ra, thời gian bắt đầu của hệ thống cho GetClock_Monotonic() không bắt buộc phải giống như thời gian bắt đầu của bất kỳ hàm GetWatch nào khác... Do đó, tính toán thời gian tương đối chỉ có thể được thực hiện trên các giá trị được 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ừ 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
)

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

Phương thức này 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ệ theo micrô giây. Đồng hồ cơ bản được đảm bảo sẽ hoạt động với tốc độ ít nhất là toàn bộ giây (giá trị 1.000.000), nhưng trên một số nền tảng có thể đóng nhanh hơn.

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

Trên các nền tảng không thể theo dõi theo thời gian thực, có thể không có phương thức GetClock_RealTime(), dẫn đến lỗi đường liên kết cho mọi ứng dụng tham chiếu đến phương thức này. Ngoài ra, các nền tảng đó có thể cung cấp một phương thức triển khai GetClock_RealTime(). Phương thức này luôn trả về lỗi WEAVE_SYSTEM_ERROR_NOT_TIMEOUT.

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
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
)

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

Phương thức này 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. Đồng hồ cơ bản được đảm bảo sẽ hoạt động với tốc độ ít nhất là toàn bộ giây (giá trị 1.000.000), nhưng trên một số nền tảng có thể đóng nhanh hơn.

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

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

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

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

Đặt khái niệm của nền tảng về thời gian thực (dân sự) hiện tại.

Các ứng dụng có thể 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 bạn đặt, đồng hồ nền tảng cơ bản sẽ đả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ế các ứng dụng hoặc quy trình có thể đặt theo thời gian thực. Nếu phương thức gọi không được phép thay đổi theo thời gian thực, thì hàm SetClock_RealTime() sẽ trả về lỗi WEAVE_SYSTEM_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 cho bất kỳ ứng dụng nào tham chiếu hàm đó. Ngoài ra, các nền tảng đó có thể cung cấp phương thức triển khai SetClock_RealTime(). Phương thức này luôn trả về lỗi WEAVE_SYSTEM_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
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.