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 về trạng thái 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/chọn kiểu truyền thống trên việc điều chỉnh 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 sự kiện/thông báo.

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

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 một lớp uỷ quyền 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ẽ huỷ đồng hồ hẹn giờ một lần, bắt đầu từ trước đến hết StartTimer().
DispatchEvent(Event aEvent)
Error
Thao tác này sẽ gửi sự kiện được chỉ định để trường hợp 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ó ảnh hưởng đến vòng lặp sự kiện, chờ đợi trong 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 để 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 phiên bản này đã được đặt 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 (Lớp) của hệ thống Weave.
HandlePlatformTimer(void)
Error
Xử lý sự kiện hết hạn của bộ tính giờ cho 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 đượ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 sự kiện / thông báo thuộc loại được chỉ định với đối số đã 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() xử lý.
ScheduleWork(TimerCompleteFunct aComplete, void *aAppState)
Error
Lên lịch để chạy một hàm có chữ ký giống hệt với TimerCompleteFunct trên luồng Weave ngay khi có thể.
SetPlatformData(void *aPlatformData)
void
Thao tác này sẽ thiết lập dữ liệu nền tảng của riêng ứng dụng được chỉ định 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 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 chuỗi I/O giám sát chỉ số mô tả tệp bằng cách sử dụng hàm select() bằng cách ghi một byte đơn vào đường dẫn thức.

Hàm tĩnh công khai

GetClock_Monotonic(void)
uint64_t
Trả về thời gian đơn điệu của hệ thống theo đơn vị micrô giây.
GetClock_MonotonicHiRes(void)
uint64_t
Trả về thời gian hệ thống đơn điệu (có thể) có độ phân giải cao tính bằng đơn vị micrô giây.
GetClock_MonotonicMS(void)
uint64_t
Trả về thời gian 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 dụng) 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 dụng) 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 về thời gian thực (dân sự) hiện tại cho nền tảng.

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 một lớp uỷ quyền 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 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 có giá trị là NULL

CancelTimer

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

Phương thức này sẽ huỷ đồng hồ hẹn giờ một lần, bắt đầu từ trước đến hết StartTimer().

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

DispatchEvent

Error DispatchEvent(
  Event aEvent
)

Thao tác này sẽ gửi sự kiện được chỉ định để trường hợp này xử lý.

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

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

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ó ảnh hưởng đến vòng lặp sự kiện, chờ đợi trong 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 để xử lý.

Thông tin chi tiế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ởi động không thành công.

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 được chỉ định cho phiên bản này, nếu phiên bản này đã đượ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 thì giá trị 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 (Lớp) của hệ thống Weave.

Thông tin chi tiết
Các tham 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
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 hệ thống không nhận dạng được loại sự kiện này.

HandlePlatformTimer

Error HandlePlatformTimer(
  void
)

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

Lệnh gọi nl::Weave::System::Timer::HandleSavedTimers để xử lý mọi bộ tính 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 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ì sẽ là mã lỗi.

HandleSelectResult

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

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

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

Bắt đầu

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 sự kiện / thông báo thuộc loại được chỉ định với đối số đã 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
Các tham số
[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] 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) là 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 của nền tảng cho biết lý do không đạt.

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() xử lý.

Thông tin chi tiết
Các tham số
[out] aSetSize
Dải 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 các chỉ số mô tả tệp có thể đọc được.
[in] aWriteSet
Con 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
Tham chiếu đến thời gian ngủ tối đa.

ScheduleWork

Error ScheduleWork(
  TimerCompleteFunct aComplete,
  void *aAppState
)

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

Thông tin chi tiết
Các tham số
[in] aComplete
Con trỏ đến một hàm callback sẽ được gọi khi bộ tính giờ này kích hoạt.
[in] aAppState
Con trỏ đến một đối tượng trạng thái ứng dụng sẽ được truyền cho hàm gọi lại làm đối số.
Giá trị trả về
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
Nếu SystemLayer chưa được khởi chạy.
WEAVE_SYSTEM_ERROR_NO_MEMORY
Nếu SystemLayer không thể phân bổ 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 của riêng ứng dụng được chỉ định 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 tham số
[in] aPlatformData
Dữ liệu nền tảng cụ thể của ứng dụ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 sẽ bắt đầu hẹn giờ một lần.

Thông tin chi tiết
Các tham 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 đượ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 bộ tính giờ không bắt đầu được.

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.

WakeSelect

void WakeSelect(
  void
)

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

Hàm tĩnh công khai

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

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

Trả về thời gian hệ thống đơn điệu (có thể) có độ phân giải cao 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ừ 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 luôn tăng dần (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 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.

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 xung nhịp 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 thời gian mà GetClock_MonotonicHiRes() 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 được đảm bảo 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
)

Trả về thời gian 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ừ mộ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 luôn tăng dần (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 sẽ được đảm bảo sẽ liên tục hoạt động trong mọi chế độ ngủ của hệ thống không dẫn đến việc 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ề giá trị đo lường thời gian kể từ khi khởi động cho hệ thố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 GetClock_Monotonic() không bắt buộc phải giống như thời gian của bất kỳ hàm GetClock... nào khác. Do đó, chỉ có thể thực hiện phép tính thời gian tương đối 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 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
)

Trả về thời gian thực (dân dụng) 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 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 đảm bảo 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ể quay 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ộ hoá, GetClock_RealTime() sẽ trả về lỗi WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED.

Trên các nền tảng không có khả năng theo dõi theo thời gian thực, phương thức GetClock_RealTime() có thể không có, dẫn đến lỗi liên kết cho mọi ứng dụng tham chiếu đến phương 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() luôn trả về lỗi WEAVE_SYSTEM_ERROR_NOT_ id.

Hàm này được đảm bảo 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
)

Trả về thời gian thực (dân dụng) 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 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ệ thành mili giây. Đồng hồ cơ bản được đảm bảo 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ể quay 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ộ hoá, GetClock_RealTimeMS() sẽ trả về lỗi WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED.

Trên các nền tảng không có khả năng theo dõi theo thời gian thực, phương thức GetClock_RealTimeMS() có thể không có, dẫn đến lỗi liên kết cho mọi ứng dụng tham chiếu đến phương 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_RealTimeMS() luôn trả về lỗi WEAVE_SYSTEM_ERROR_NOT_ id.

Hàm này được đảm bảo 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 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.

SetClock_RealTime

Error SetClock_RealTime(
  uint64_t newCurTime
)

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

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 cục bộ. 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 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ế những ứ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 thời gian thực, hàm SetClock_RealTime() sẽ trả về lỗi WEAVE_SYSTEM_ERROR_ACCESS_DENIED.

Trên 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 có khả năng đặt theo thời gian thực, hàm SetClock_RealTime() có thể không có, dẫn đến lỗi liên kết cho mọi ứng dụng tham chiếu đến hàm này. 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() luôn trả về lỗi WEAVE_SYSTEM_ERROR_NOT_ id.

Hàm này được đảm bảo 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.