nl::Weave::WeaveServerDelegaBase

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

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

Riepilogo

Eredità

Direct known Subclasses:
nl::Weave::Profiles::DeviceControl::DeviceControlDelegate
nl::Weave::Profiles::FabricProvisioning::FabricProvisioningDelega
nl::We:Versione 1:1: una risorsa.

Tipi protetti

@69{
  kAccessControlResult_NotDetermined = 0,
  kAccessControlResult_Accepted = 1,
  kAccessControlResult_Rejected = 2,
  kAccessControlResult_Rejected_RespSent = 3,
  kAccessControlResult_Rejected_Silent = 4
}
enum
AccessControlResult tipodef
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

Risultato AccessControl

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 rifiutato. Le classi delegate associate alle implementazioni del server Weave devono sostituire questo metodo per implementare criteri di controllo dell'accesso appropriati per i relativi protocolli. Le applicazioni potrebbero eseguire ulteriormente l'override di questo metodo per supportare criteri personalizzati oltre a quelli forniti dalle implementazioni server standard.

Le implementazioni di questo metodo dovrebbero restituire il valore del risultato Accettato o Rifiutato in base al risultato della valutazione dei criteri di controllo dell'accesso. Se restituisci un risultato di Richiesta rifiutata, al richiedente viene inviato uno StatusReport contenente lo stato Common/AccessDenied. In alternativa, le implementazioni dei metodi possono scegliere di inviare le proprie risposte, che possono essere un StatusReport o qualsiasi altro tipo di messaggio. In questo caso, il metodo dovrebbe restituire un risultato come Rifiuta_RespSent per segnalare che la risposta è già stata inviata. 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 sono necessarie classi che sostituiscono il metodo EnforceAccessControl(), che deve richiamare il metodo simile alla rispettiva classe principale immediata, ad esempio la classe WeaveServerDelegaBase o una classe derivata da tale classe. Per eseguire il override, i metodi di override devono prima aggiornare il valore del risultato con la loro determinazione del criterio di controllo degli accessi e poi richiamare la classe di base.

Dettagli
Parametri
[in] ec
Il valore ExchangeContext in 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 del criterio di controllo degli accessi per il messaggio ricevuto. Al momento dell'immissione del 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 del criterio di controllo degli accessi per il messaggio.

WeaveServerDelegaBase

 WeaveServerDelegateBase(
  void
)