nl::Weave::WeaveServerDelegateBase

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

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

Riepilogo

Eredità

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

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 server Weave per determinare se un messaggio di richiesta in entrata deve essere accettato ed elaborato normalmente o essere rifiutato. Le classi delegate associate alle implementazioni del server Weave devono sostituire questo metodo per implementare criteri di controllo dell'accesso appropriati per i loro protocolli. Le applicazioni possono sostituire ulteriormente questo metodo per supportare criteri personalizzati oltre a quelli forniti dalle implementazioni standard dei server.

Le implementazioni di questo metodo dovrebbero restituire il valore Accettato o Rifiutato in base al risultato della valutazione dei criteri di controllo dell'accesso. La restituzione di un risultato di tipo Rifiutato comporta l'invio di un report StatusReport al richiedente con lo stato Common/AccessDenied. In alternativa, le implementazioni del metodo possono scegliere di inviare le proprie risposte, ad esempio 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.

Le classi che eseguono l'override del metodo EnforceAccessControl() sono necessarie nei casi di chiamata per chiamare il metodo con nome simile sulla relativa classe principale immediata, che sia la classe WeaveServerDelegateBase o una classe derivata da quella classe. L'override dei metodi deve prima aggiornare il valore del risultato con la relativa determinazione del criterio di controllo dell'accesso, quindi chiamare la rispettiva classe di base per determinarne il valore.

Dettagli
Parametri
[in] ec
Il valore ExchangeContext per cui è stato ricevuto il messaggio.
[in] msgProfileId
L'ID profilo del messaggio ricevuto.
[in] msgType
Il tipo di 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. Al momento dell'accesso al metodo, il valore rappresenta il risultato provvisorio al momento attuale del processo di valutazione. Alla restituzione, il risultato dovrebbe rappresentare la valutazione finale del criterio di controllo dell'accesso per il messaggio.

WeaveServerDelegateBase

 WeaveServerDelegateBase(
  void
)