nl::Weave::WeaveServerDelegateBase

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

用于实现 Weave 服务器委托对象的通用基类。

摘要

继承

直接已知子类:
  nl::Weave::Profiles::DeviceControl::DeviceControlDelegatenl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate nl::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 服务器实现相关联的委托类必须替换此方法,才能为其协议实现适当的访问控制政策。除了标准服务器实现所提供的政策之外,应用还可以进一步覆盖此方法,以支持自定义政策。

此方法的实现应根据访问权限控制政策评估的结果返回“已接受”或“已拒绝”的结果值。如果返回“已拒绝”的结果,则系统会向请求者发送包含 Common/AccessDenied 状态的 StatusReport。或者,方法实现可以选择发送自己的响应,响应可以是 StatusReport 或任何其他类型的消息。在这种情况下,方法应返回 Reject_RespSent 的结果,以示响应已发送。最后,实现可以返回 Reject_Silent 来指示应拒绝请求,而不向请求者发送响应。

在调用案例中,需要覆盖 EnforceAccessControl() 方法的类,才能在其直接父类(WeaveServerDelegateBase 类或派生自该类的类)上调用名称相似的方法。替换方法应首先根据对访问控制政策的确定来更新结果值,然后调用其基类来做出确定。

具体说明
参数
[in] ec
接收邮件的 ExchangeContext
[in] msgProfileId
所收到消息的个人资料 ID。
[in] msgType
所收到消息的消息类型。
[in] msgInfo
WeaveMessageInfo 结构,包含有关所收到消息的信息。
[in,out] result
一个枚举值,用于描述收到的消息的访问权限控制政策评估结果。进入该方法后,该值表示当前评估流程中的暂定结果。返回后,结果应表示对消息的访问权限控制政策的最终评估。

WeaveServerDelegateBase

 WeaveServerDelegateBase(
  void
)