nl::Weave::WeaveServerDelegateBase

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

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

Résumé

Héritage

Sous-classes directes connues :
  nl::Weave::Profiles::DeviceControl::DeviceControlDelegate
  nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelegate
  nl::Weave::Profiles::NetworkProvisioning::NetworkProvisioningDelegatenl::Weave::Profiles::ServiceProvisioning::ServiceProvisioningDelegatenl::Weave::Profiles::TokenPairing::TokenPairingDelegatenl::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
}
enum
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 rejeté. Les classes déléguées associées aux implémentations de serveurs Weave doivent remplacer cette méthode afin d'implémenter des stratégies de contrôle d'accès appropriées pour leurs protocoles. Les applications peuvent également remplacer 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 devraient renvoyer la valeur "Acceptée" ou "Refusée" en fonction du résultat de l'évaluation des règles de contrôle des accès. Le renvoi du résultat Refusé entraîne l'envoi d'un StatusReport au demandeur contenant l'état Commun/AccessDenied. Les implémentations de méthodes peuvent également choisir d'envoyer leurs propres réponses, sous la forme d'un StatusReport ou de tout autre type de message. Dans ce cas, la méthode doit renvoyer le résultat Rejet_RespSent pour signaler qu'une réponse a déjà été envoyée. Enfin, les implémentations peuvent renvoyer Dismiss_Silent pour indiquer que la requête doit être rejetée sans envoyer de réponse au demandeur.

Les classes qui ignorent la méthode EnforceAccessControl() sont nécessaires dans les cas d'appel pour appeler la méthode portant le même nom 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 d'accès, puis appeler leur classe de base pour la déterminer.

Détails
Paramètres
[in] ec
Contexte ExchangeContext dans 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
Une 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. Lors de l'entrée dans la méthode, la valeur représente le résultat provisoire au stade actuel du processus d'évaluation. Lors du retour, le résultat est censé représenter l'évaluation finale de la stratégie de contrôle d'accès du message.

WeaveServerDelegateBase

 WeaveServerDelegateBase(
  void
)