nl::Weave::WeaveServerDelegateBase

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

Classe de base commune pour implémenter des objets délégués de serveur Weave.

Résumé

Héritage

Sous-classes directes connues:
  nl::Weave::Profiles::DeviceControl::DeviceControlDelegate
  nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate
  nl::Weave::Profiles::NetworkProvisioning::NetworkProvisioningDelegate
  nl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegate
  nl::Weave::Profiles::TokenPairing::TokenPairingDelegate
  nl::Weave::Profiles::Vendor::Nestlabs::DropcamLegacyPairing::DropcamLegacyPairingDelegate

Types protégés

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

Fonctions protégées

EnforceAccessControl(ExchangeContext *ec, uint32_t msgProfileId, uint8_t msgType, const WeaveMessageInfo *msgInfo, AccessControlResult & result)
virtual void
Méthode virtuelle permettant de déterminer la stratégie de contrôle d'accès au niveau des messages pour les messages de requête de serveur entrants.
WeaveServerDelegateBase(void)

Types protégés

@69

 @69

AccessControlResult

uint8_t AccessControlResult

Fonctions protégées

EnforceAccessControl

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

Méthode virtuelle permettant de déterminer la stratégie de contrôle d'accès au niveau des messages pour les messages de requête de serveur entrants.

Cette méthode est appelée par l'infrastructure de serveurs Weave pour déterminer si un message de requête entrant doit être accepté et traité normalement, ou si un message de requête entrant doit être rejeté. Les classes déléguées associées aux implémentations de serveurs Weave doivent remplacer cette méthode afin de mettre en œuvre des stratégies de contrôle d'accès appropriées pour leurs protocoles. Les applications peuvent en outre ignorer cette méthode pour accepter des règles personnalisées autres que celles fournies par les implémentations de serveur standards.

Les implémentations de cette méthode doivent renvoyer une valeur de résultat "Accepté" ou "Refusé" en fonction du résultat de l'évaluation de la stratégie de contrôle des accès. Le renvoi d'un résultat Refusé entraîne l'envoi d'un StatusReport au demandeur contenant l'état Common/AccessDenied. Les implémentations de méthodes peuvent également choisir d'envoyer leurs propres réponses, sous la forme d'un rapport d'état ou de tout autre type de message. Dans ce cas, la méthode doit renvoyer un résultat Rejet_RespSent pour signaler qu'une réponse a déjà été envoyée. Enfin, les implémentations peuvent renvoyer la valeur Deny_Silent pour indiquer que la requête doit être rejetée sans envoyer de réponse au demandeur.

Dans les cas d'appel, les classes qui remplacent la méthode EnforceAccessControl() doivent appeler la méthode portant un nom similaire sur leur classe parente immédiate, qu'il s'agisse de la classe WeaveServerDelegateBase ou d'une classe dérivée de cette classe. Les méthodes de remplacement doivent d'abord mettre à jour la valeur du résultat avec leur détermination de la stratégie de contrôle des accès, puis appeler leur classe de base pour prendre sa décision.

Détails
Paramètres
[in] ec
Le ExchangeContext sur lequel le message a été reçu.
[in] msgProfileId
ID de profil du message reçu.
[in] msgType
Type du message reçu.
[in] msgInfo
Structure WeaveMessageInfo contenant des informations sur le message reçu.
[in,out] result
Valeur énumérée décrivant le résultat de l'évaluation de la stratégie de contrôle d'accès pour le message reçu. Lorsque vous entrez dans la méthode, la valeur représente le résultat provisoire au stade actuel du processus d'évaluation. Une fois renvoyé, le résultat devrait représenter l'évaluation finale de la stratégie de contrôle des accès pour le message.

WeaveServerDelegateBase

 WeaveServerDelegateBase(
  void
)