nl::Weave::WeaveServerDelegateBase

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

Una classe base comune per l'implementazione degli oggetti delegati del server Weave.

Riepilogo

Eredità

Sottoclassi note direttamente:
  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

Tipi protetti

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

Funzioni protette

EnforceAccessControl(ExchangeContext *ec, uint32_t msgProfileId, uint8_t msgType, const WeaveMessageInfo *msgInfo, AccessControlResult & result)
virtual void
Metodo virtuale per determinare il criterio di controllo dell'accesso a livello di messaggio per i messaggi di richiesta del server in arrivo.
WeaveServerDelegateBase(void)

Tipi protetti

@69

 @69

AccessControlResult

uint8_t AccessControlResult

Funzioni protette

EnforceAccessControl

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

Metodo virtuale per determinare il criterio di controllo dell'accesso a livello di messaggio per i messaggi di richiesta del server in arrivo.

Questo metodo viene chiamato dall'infrastruttura dei server Weave per determinare se un messaggio di richiesta in arrivo deve essere accettato ed elaborato normalmente o rifiutato. Le classi delegati associate alle implementazioni del server Weave devono sostituire questo metodo per implementare criteri di controllo dell'accesso appropriati per i rispettivi protocolli. Le applicazioni possono sostituire ulteriormente questo metodo per supportare norme personalizzate oltre a quelle fornite dalle implementazioni standard del server.

Le implementazioni di questo metodo dovrebbero restituire come risultato Accettato o Rifiutato in base al risultato della valutazione dei criteri di controllo dell'accesso. Se restituisci un risultato rifiutato, al richiedente viene inviato uno StatusReport con lo stato Common/AccessDenied. In alternativa, le implementazioni dei metodi possono scegliere di inviare le proprie risposte, che possono essere uno StatusReport o qualsiasi altro tipo di messaggio. In questo caso, il metodo dovrebbe restituire un risultato di Rifiuta_RespSent per segnalare che è già stata inviata una risposta. Infine, le implementazioni possono restituire Rifiuta_Silent per indicare che la richiesta deve essere rifiutata senza inviare una risposta al richiedente.

Nei casi di chiamata, le classi che eseguono l'override del metodo EnforceAccessControl() devono chiamare il metodo simile alla classe padre immediata, che sia la classe WeaveServerDelegateBase o una classe derivata da quella classe. I metodi di override devono prima aggiornare il valore del risultato con l'indicazione del criterio di controllo dell'accesso, quindi richiamare la classe base per determinarla.

Dettagli
Parametri
[in] ec
Il valore di ExchangeContext su cui è stato ricevuto il messaggio.
[in] msgProfileId
L'ID profilo del messaggio ricevuto.
[in] msgType
Il tipo del messaggio ricevuto.
[in] msgInfo
Una struttura WeaveMessageInfo contenente informazioni sul messaggio ricevuto.
[in,out] result
Un valore enumerato che descrive il risultato della valutazione dei criteri di controllo dell'accesso per il messaggio ricevuto. All'accesso al metodo, il valore rappresenta il risultato provvisorio nel punto corrente del processo di valutazione. Al momento della restituzione, il risultato dovrebbe rappresentare la valutazione finale dei criteri di controllo dell'accesso per il messaggio.

WeaveServerDelegateBase

 WeaveServerDelegateBase(
  void
)