nl::Weave::WeaveServerDelegateBase

#include <src/lib/core/WeaveServerBase.h>

實作 Weave 伺服器委派物件的常見基礎類別。

摘要

繼承

Direct Known Subclasses:
  nl::Weave::Profiles::DeviceControl::DeviceControlDelegate
  nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegatenl::Weave::Profiles::NetworkProvisioning::NetworkProvisioningDelegatenl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegatenl::Weave::Profiles::TokenPairing::TokenPairingDelegatenl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingDelegate

受保護的類型

@69{
  kAccessControlResult_NotDetermined = 0,
  kAccessControlResult_Accepted = 1,
  kAccessControlResult_Rejected = 2,
  kAccessControlResult_Rejected_RespSent = 3,
  kAccessControlResult_Rejected_Silent = 4
}
列舉
AccessControlResult typedef
uint8_t

受保護的函式

EnforceAccessControl(ExchangeContext *ec, uint32_t msgProfileId, uint8_t msgType, const WeaveMessageInfo *msgInfo, AccessControlResult & result)
virtual void
這個虛擬方法可以決定傳入伺服器要求訊息的訊息層級存取權控管政策。
WeaveServerDelegateBase(void)

受保護的類型

@69

 @69

AccessControlResult

uint8_t AccessControlResult

受保護的函式

EnforceAccessControl

virtual void EnforceAccessControl(
  ExchangeContext *ec,
  uint32_t msgProfileId,
  uint8_t msgType,
  const WeaveMessageInfo *msgInfo,
  AccessControlResult & result
)

這個虛擬方法可以決定傳入伺服器要求訊息的訊息層級存取權控管政策。

Weave 伺服器基礎架構會呼叫這個方法,判斷應正常接受並處理傳入要求訊息,或是遭到拒絕。與 Weave 伺服器實作相關聯的委派類別必須覆寫這個方法,才能針對其通訊協定實作適當的存取權控管政策。為了支援標準伺服器實作以外的自訂政策,應用程式可以進一步覆寫這個方法。

此方法實作時,會根據存取權控管政策的評估結果,傳回「已接受」或「已拒絕」的結果值。如果傳回「已拒絕」結果,會將 StatusReport 傳送給要求者,其狀態會顯示為「Common/AccessDenied」。另一種導入方法則可選擇傳送自己的回應,例如 StatusReport 或任何其他類型的訊息。在這種情況下,這個方法應傳回 拒絕_RespSent 的結果,以表示回應已送出。最後,實作可以傳回 拒絕_Silent,指出應拒絕要求,而不需傳送回應給要求者。

在呼叫案例中,您必須覆寫 EnforceAccessControl() 方法的類別,才能對其立即父項類別呼叫類似名稱的方法、WeaveServerDelegateBase 類別,或是由該類別衍生的類別。覆寫方法必須先依據上述的存取權控管政策更新結果值,然後再呼叫其基礎類別以做出判斷。

詳細說明
參數
[in] ec
接收訊息的 ExchangeContext
[in] msgProfileId
所接收訊息的設定檔 ID。
[in] msgType
接收訊息的訊息類型。
[in] msgInfo
包含接收訊息相關資訊的 WeaveMessageInfo 結構。
[in,out] result
列舉值,說明收到訊息的存取權控管政策評估結果。進入方法時,此值代表評估程序目前時間點的暫定結果。傳回後,結果應代表郵件的存取權控管政策最終評估。

WeaveServerDelegateBase

 WeaveServerDelegateBase(
  void
)