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.
Trang này được dịch bởi Cloud Translation API.
Switch to English

nl :: Dệt :: Hồ sơ :: DataManagement_Current :: SubscriptionClient

Tóm lược

Các loại công khai

@130 enum
EventCallback )(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) typedef
void(*
Gọi lại để chuyển các sự kiện đăng ký vào ứng dụng.
EventID {
kEvent_OnSubscriptionTerminated = 1,
kEvent_OnExchangeStart = 2,
kEvent_OnSubscribeRequestPrepareNeeded = 3,
kEvent_OnSubscriptionEstablished = 4,
kEvent_OnNotificationRequest = 5,
kEvent_OnNotificationProcessed = 6,
kEvent_OnEventStreamReceived = 7,
kEvent_OnSubscriptionActivity = 8,
kEvent_OnUpdateComplete = 9,
kEvent_OnNoMorePendingUpdates = 10
}
enum
ResubscribePolicyCallback )(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec) typedef
void(*
Gọi lại để tìm nạp khoảng thời gian chờ trước khi đăng ký lại tiếp theo.

Chức năng tĩnh công khai

DefaultEventHandler ( EventID aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void
DefaultResubscribePolicyCallback (void *const aAppState, ResubscribeParam & aInParam, uint32_t & aOutIntervalMsec)
void
Việc triển khai chính sách mặc định sẽ chọn một khoảng thời gian ngẫu nhiên có độ phân giải mili giây trên một cửa sổ ngày càng tăng, tuân theo trình tự fibonacci tối đa WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX.

Chức năng công cộng

AbortSubscription (void)
void
Hủy đăng ký.
ClearUpdated ( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle)
DisableResubscribe (void)
void
Tắt cơ chế đăng ký lại.
DiscardUpdates ()
void
Thông báo cho SubscriptionClient làm trống tập hợp các TraitPath đang chờ cập nhật và hủy bỏ yêu cầu cập nhật đang diễn ra, nếu có.
EnableResubscribe ( ResubscribePolicyCallback aCallback)
void
Bật đăng ký lại tự động.
EndSubscription (void)
Kết thúc đăng ký.
FlushUpdate ()
Báo hiệu rằng ứng dụng đã hoàn thành việc thay đổi tất cả các TraitUpdatableDataSinks.
FlushUpdate (bool aForce)
Free (void)
void
Giải phóng đối tượng SubscriptionClient này.
GetBinding (void) const
GetLivenessTimeoutMsec (void) const
uint32_t
GetPeerNodeId (void) const
uint64_t
GetSubscriptionId (uint64_t *const apSubscriptionId)
IndicateActivity (void)
void
InitiateCounterSubscription (const uint32_t aLivenessTimeoutSec)
void
InitiateSubscription (void)
void
Định cấu hình SubscriptionClient làm người khởi tạo (trái ngược với người đăng ký phản đối) và đưa đăng ký lên nếu không.
IsCanceling () const
bool
IsEstablished ()
bool
IsEstablishedIdle ()
bool
IsFree ()
bool
IsInProgressOrEstablished ()
bool
IsInResubscribeHoldoff ()
bool
IsRetryEnabled ()
bool
IsTerminated ()
bool
IsUpdatePendingOrInProgress ()
bool
LockUpdateMutex (void)
void
OnCatalogChanged ()
void
Phương thức này sẽ được gọi khi danh mục TraitDataSink đã được sửa đổi.
ResetResubscribe (void)
void
Kích hoạt cơ chế đăng ký lại.
SetLivenessTimeoutMsec (uint32_t val)
void
SetUpdated ( TraitUpdatableDataSink *aDataSink, PropertyPathHandle aPropertyHandle, bool aIsConditional)
SuspendUpdateRetries ()
void
Thông báo cho SubscriptionClient ngừng thử lại các yêu cầu cập nhật.
UnlockUpdateMutex (void)
void

Cấu trúc

nl :: Weave :: Profiles :: DataManagement_Current :: SubscriptionClient :: LastObservedEvent
nl :: Weave :: Profiles :: DataManagement_Current :: SubscriptionClient :: ResubscribeParam

Đoàn thể

nl :: Weave :: Profiles :: DataManagement_Current :: SubscriptionClient :: InEventParam
nl :: Weave :: Profiles :: DataManagement_Current :: SubscriptionClient :: OutEventParam

Các loại công khai

@ 130

 @130

EventCallback

void(* EventCallback)(void *const aAppState, EventID aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)

Gọi lại để chuyển các sự kiện đăng ký vào ứng dụng.

Chi tiết
Thông số
[in] aAppState
Con trỏ trạng thái ứng dụng được đặt trong quá trình khởi chạy SubscriptionClient .
[in] aEvent
Cho biết sự kiện nào đang xảy ra
[in] aInParam
Cấu trúc với các chi tiết bổ sung về sự kiện
[out] aOutParam
Thông tin được ứng dụng chuyển lại

EventID

 EventID
Tính chất
kEvent_OnEventStreamReceived

Được tạo khi SubscriptionEngine gặp một dòng sự kiện trong thông báo NotificationRequest.

Ứng dụng có thể gọi EndSubscription () , AbortSubscription () hoặc Free () tại thời điểm này.

kEvent_OnExchangeStart

Được tạo sau khi liên kết đã được chuẩn bị và ExchangeContext đã được thiết lập nhưng trước khi bất kỳ thông báo nào được gửi đi.

Đây là cơ hội cuối cùng để ứng dụng điều chỉnh cài đặt ExchangeContext , mEC hợp lệ và có thể được điều chỉnh cho cài đặt thời gian chờ. Ứng dụng không được chạm vào các trường khác trong máy khách và không được đóng ExchangeContext .

kEvent_OnNoMorePendingUpdates

Sự kiện biểu thị rằng tất cả các đường dẫn trong tập hợp cập nhật đã được xử lý bởi trình ngang hàng và không cần cập nhật thêm đường dẫn nào nữa.

kEvent_OnNotificationProcessed

Được tạo khi SubscriptionEngine hoàn thành việc tiếp tục thông báo NotificationRequest.

Ứng dụng có thể gọi EndSubscription () , AbortSubscription () hoặc Free () tại thời điểm này.

kEvent_OnNotificationRequest

Được tạo trên một khoản thu của một NotificationRequest.

Ứng dụng có thể gọi EndSubscription () , AbortSubscription () hoặc Free () tại thời điểm này.

kEvent_OnSubscribeRequestPrepareNeeded

Được gửi khi công cụ sẵn sàng gửi SubscribeRequest.

Ứng dụng dự kiến ​​sẽ điền vào các đường dẫn mà nó muốn đăng ký.

kEvent_OnSubscriptionActivity

Một sự kiện chỉ ra hoạt động đăng ký.

Nó được tạo bất cứ khi nào khách hàng nhận được chỉ báo về hoạt động đăng ký; điều này bao gồm việc thiết lập đăng ký thành công, nhận NotificationRequest hoặc nhận báo cáo trạng thái phản hồi thông báo SubscribeConfirm.

kEvent_OnSubscriptionEstablished

Được tạo khi đăng ký thành công.

Ứng dụng có thể gọi EndSubscription () , AbortSubscription () hoặc Free () tại thời điểm này.

kEvent_OnSubscriptionTerminated

Đánh dấu sự kết thúc của đăng ký này.

Các tham số được gửi đến nl :: Weave :: Profiles :: DataManagement_Current :: SubscriptionClient :: EventCallback sẽ cho biết liệu việc đăng ký lại có được tự động thực hiện hay không.

Trong cuộc gọi trình xử lý sự kiện, trạng thái của máy khách sẽ bị Terminated . Nếu không thử lại, trạng thái của máy khách sẽ chuyển sang Initialized khi trình xử lý sự kiện trả về. Nếu không, trạng thái sẽ chuyển sang ResubscribeHoldoff và nỗ lực sẽ được thực hiện để thiết lập lại đăng ký sau thời gian tạm ngưng.

Ứng dụng có thể gọi AbortSubscription () hoặc Free () trong trạng thái này.

Các thông số được gửi cũng sẽ bao gồm một mã lỗi cho biết lý do kết thúc đăng ký.

Đăng ký có thể đã bị chấm dứt vì một số lý do (thiếu WRM ACK, cấp phát ExchangeContext không thành công, hết thời gian phản hồi, ...) Một số mã lỗi có thể do ứng dụng tạo ra:

Mã lỗi Ý nghĩa
WEAVE_ERROR_INVALID_MESSAGE_TYPE Một tin nhắn không nhận dạng được nhận được.
WEAVE_ERROR_TIMEOUT Không nhận được ack hoặc kiểm tra độ sống không thành công.
WEAVE_ERROR_INCORRECT_STATE Tin nhắn được nhận trong trạng thái không mong muốn.
WEAVE_ERROR_STATUS_REPORT_RECEIVED Một báo cáo trạng thái được nhận.
WEAVE_ERROR_INVALID_ARGUMENT Các trường yêu cầu đăng ký không hợp lệ.

kEvent_OnUpdateComplete

Sự kiện biểu thị việc cập nhật hoàn thành.

Các thông số sự kiện sẽ cho biết việc cập nhật một đường dẫn đặc điểm cụ thể đã thành công hay thất bại.

ResubscribePolicyCallback

void(* ResubscribePolicyCallback)(void *const aAppState, ResubscribeParam &aInParam, uint32_t &aOutIntervalMsec)

Gọi lại để tìm nạp khoảng thời gian chờ trước khi đăng ký lại tiếp theo.

Ứng dụng được phép hủy bỏ / miễn phí trong chức năng này nếu họ đã quyết định từ bỏ việc đăng ký lại.

Chi tiết
Thông số
[in] aAppState
Con trỏ trạng thái ứng dụng được đặt trong quá trình khởi chạy SubscriptionClient .
[in] aInParam
Cấu trúc với các chi tiết bổ sung về việc thử lại
[out] aOutIntervalMsec
Thời gian tính bằng mili giây để đợi trước khi thử lại lần sau

Chức năng tĩnh công khai

DefaultEventHandler

void DefaultEventHandler(
  EventID aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

DefaultResubscribePolicyCallback

void DefaultResubscribePolicyCallback(
  void *const aAppState,
  ResubscribeParam & aInParam,
  uint32_t & aOutIntervalMsec
)

Việc triển khai chính sách mặc định sẽ chọn một khoảng thời gian ngẫu nhiên có độ phân giải mili giây trên một cửa sổ ngày càng tăng, tuân theo trình tự fibonacci tối đa WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX.

Trung bình của thời gian chờ ngẫu nhiên sau WDM_RESUBSCRIBE_MAX_FIBONACCI_STEP_INDEX sẽ là khoảng một giờ. Khi số lần thử lại đặt lại thành 0, trình tự bắt đầu lại từ đầu.

Chức năng công cộng

AbortSubscription

void AbortSubscription(
  void
)

Hủy đăng ký.

Hủy đăng ký khách hàng.

Ngay lập tức ngừng chấp nhận tất cả lưu lượng liên quan đến đăng ký và giải phóng tất cả các tài nguyên liên lạc cơ bản. Bản thân đối tượng SubscriptionClient vẫn hợp lệ và có thể được sử dụng lại.

Chấm dứt ứng dụng khách khi kết thúc đăng ký mà không cần thông báo cho nhà xuất bản đăng ký và không gửi sự kiện OnSubscriptionTerminated cho trình xử lý sự kiện của ứng dụng. Nếu có đăng ký chung, đăng ký tại quầy cũng bị chấm dứt.

Khi gọi AbortSubscription () , đối tượng SubscriptionClient đi vào trạng thái Đã kết Terminated . Khi quá trình kết thúc hoàn tất, đối tượng sẽ chuyển sang trạng thái Initialized . Cả hai quá trình chuyển đổi diễn ra đồng bộ trong lệnh gọi AbortSubscription () .

Sau khi AbortSubscription () trả về, đối tượng SubscriptionClient có thể được sử dụng để bắt đầu một đăng ký khác hoặc nó có thể được giải phóng bằng cách gọi phương thức Free () .

ClearUpdated

WEAVE_ERROR ClearUpdated(
  TraitUpdatableDataSink *aDataSink,
  PropertyPathHandle aPropertyHandle
)

DisableResubscribe

void DisableResubscribe(
  void
)

Tắt cơ chế đăng ký lại.

Điều này sẽ hủy bỏ nếu đăng ký lại đang chờ xử lý.

DiscardUpdates

void DiscardUpdates()

Thông báo cho SubscriptionClient làm trống tập hợp các TraitPath đang chờ cập nhật và hủy bỏ yêu cầu cập nhật đang diễn ra, nếu có.

Phương thức này có thể được gọi từ bất kỳ lệnh gọi lại nào.

EnableResubscribe

void EnableResubscribe(
  ResubscribePolicyCallback aCallback
)

Bật đăng ký lại tự động.

Đính kèm một lệnh gọi lại để chỉ định thời gian thử lại tiếp theo nếu không thành công.

Chi tiết
Thông số
[in] aCallback
Gọi lại tùy chọn để tìm nạp khoảng thời gian chờ trước khi thử lại sau khi bị lỗi. Nếu NULL sử dụng một chính sách mặc định.

EndSubscription

WEAVE_ERROR EndSubscription(
  void
)

Kết thúc đăng ký.

Kết thúc một cách duyên dáng đăng ký của khách hàng.

Khi tùy chọn thời gian biên dịch WDM_ENABLE_SUBSCRIPTION_CANCEL được bật, hãy kết thúc đăng ký một cách duyên dáng bằng cách gửi CancelRequest đến đồng đẳng. Các tài nguyên liên quan đến đăng ký được giải phóng khi phản hồi từ đồng nghiệp hoặc thời gian chờ. Khi tùy chọn bị vô hiệu hóa, cuộc gọi tương đương với AbortSubscription () .

Kết thúc một cách duyên dáng khi khách hàng kết thúc đăng ký. Nếu hỗ trợ hủy đăng ký được bật, thông báo SubscribeCancelRequest sẽ được gửi đến nhà xuất bản đăng ký và hệ thống sẽ chờ phản hồi trước khi chấm dứt đăng ký; nếu không, đăng ký sẽ bị chấm dứt ngay lập tức theo cách tương tự như AbortSubscription () . Nếu có đăng ký chung, đăng ký tại quầy cũng bị chấm dứt.

Trong khi đang chờ phản hồi cho một SubscribeCancelRequest, SubscriptionClient sẽ chuyển sang trạng thái Canceling .

Khi quá trình kết thúc bắt đầu, đối tượng SubscriptionClient sẽ đi vào trạng thái Đã kết Terminated và sự kiện OnSubscriptionTerminated được gửi đến trình xử lý sự kiện của ứng dụng. Lưu ý rằng, nếu hỗ trợ hủy không được bật, trình xử lý sự kiện có thể được gọi đồng bộ trong lệnh gọi tới EndSubscription () .

Sau khi trình xử lý sự kiện của ứng dụng trả về, đối tượng SubscriptionClient sẽ chuyển sang trạng thái Initialized . Tại thời điểm này, đối tượng SubscriptionClient có thể được sử dụng để bắt đầu một gói đăng ký khác hoặc nó có thể được giải phóng bằng cách gọi phương thức Free () .

FlushUpdate

WEAVE_ERROR FlushUpdate()

Báo hiệu rằng ứng dụng đã hoàn thành việc thay đổi tất cả các TraitUpdatableDataSinks.

Trừ khi quá trình trao đổi cập nhật trước đó đang diễn ra, khách hàng sẽ lấy tất cả dữ liệu được đánh dấu là đã cập nhật và gửi cho người phản hồi trong một yêu cầu cập nhật. Phương thức này có thể được gọi từ bất kỳ luồng nào.

Chi tiết
Thông số
[in] aForce
Nếu đúng, bản cập nhật sẽ được gửi ngay lập tức ngay cả khi việc thử lại đã được lên lịch trong tương lai. Tham số này được coi là sai theo mặc định.
Lợi nhuận
WEAVE_NO_ERROR trong trường hợp thành công; mã WEAVE_ERROR khác trong trường hợp không thành công.

FlushUpdate

WEAVE_ERROR FlushUpdate(
  bool aForce
)

Miễn phí

void Free(
  void
)

Giải phóng đối tượng SubscriptionClient này.

Giải phóng một đối tượng SubscriptionClient .

Gọi AbortSubscription () nếu cần và giải phóng số tiền trên đối tượng SubscriptionClient này. Trong cách sử dụng chính xác, điều này sẽ cho phép đối tượng được trả về nhóm đối tượng

Giải phóng đối tượng SubscriptionClient . Nếu một đăng ký đang hoạt động hoặc đang trong quá trình xử lý, thì đăng ký đó sẽ bị chấm dứt ngay lập tức theo cách tương tự như cách gọi AbortSubscription () . Nếu có bất kỳ yêu cầu cập nhật nào đang diễn ra, chúng sẽ bị hủy tương tự.

Ứng dụng có trách nhiệm gọi Free () chính xác một lần trong suốt thời gian tồn tại của đối tượng SubscriptionClient . Sau khi Free () được gọi, không có tham chiếu nào được thực hiện tới đối tượng.

GetBinding

Binding * GetBinding(
  void
) const 

GetLivenessTimeoutMsec

uint32_t GetLivenessTimeoutMsec(
  void
) const 

GetPeerNodeId

uint64_t GetPeerNodeId(
  void
) const 

GetSubscriptionId

WEAVE_ERROR GetSubscriptionId(
  uint64_t *const apSubscriptionId
)

IndicateActivity

void IndicateActivity(
  void
)

InitiateCounterSubscription

void InitiateCounterSubscription(
  const uint32_t aLivenessTimeoutSec
)

InitiateSubscription

void InitiateSubscription(
  void
)

Định cấu hình SubscriptionClient làm người khởi tạo (trái ngược với người đăng ký phản đối) và đưa đăng ký lên nếu không.

IsCanceling

bool IsCanceling() const 

Được thành lập

bool IsEstablished()

IsEstablishedIdle

bool IsEstablishedIdle()

Là miễn phí

bool IsFree()

IsInProgressOrEstablished

bool IsInProgressOrEstablished()

IsInResubscribeHoldoff

bool IsInResubscribeHoldoff()

IsRetryEnabled

bool IsRetryEnabled()

Bị chấm dứt

bool IsTerminated()

IsUpdatePendingOrInProgress

bool IsUpdatePendingOrInProgress()

LockUpdateMutex

void LockUpdateMutex(
  void
)

OnCatalogChanged

void OnCatalogChanged()

Phương thức này sẽ được gọi khi danh mục TraitDataSink đã được sửa đổi.

ResetResubscribe

void ResetResubscribe(
  void
)

Kích hoạt cơ chế đăng ký lại.

Điều này sẽ bắt đầu thử lại ngay lập tức

SetLivenessTimeoutMsec

void SetLivenessTimeoutMsec(
  uint32_t val
)

SetUpdated

WEAVE_ERROR SetUpdated(
  TraitUpdatableDataSink *aDataSink,
  PropertyPathHandle aPropertyHandle,
  bool aIsConditional
)

SuspendUpdateRetries

void SuspendUpdateRetries()

Thông báo cho SubscriptionClient ngừng thử lại các yêu cầu cập nhật.

Cho phép ứng dụng tạm ngừng cập nhật trong một khoảng thời gian mà không loại bỏ tất cả siêu dữ liệu. Cập nhật và thử lại sẽ được tiếp tục khi FlushUpdate được gọi. Khi được gọi để tạm ngừng cập nhật trong khi cập nhật đang được thực hiện, bản cập nhật sẽ không bị hủy nhưng trong trường hợp không thành công, nó sẽ không được thử lại cho đến khi FlushUpdate được gọi lại.

UnlockUpdateMutex

void UnlockUpdateMutex(
  void
)