nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

Si tratta di una classe interna a InetLayer che fornisce API helper per la risoluzione DNS (Async Domain Name System) in InetLayer.

Riepilogo

Non è disponibile alcuna interfaccia pubblica per il livello di applicazione.

Funzioni pubbliche

Cancel(DNSResolver & resolver)
Annulla una query DNS in sospeso che potrebbe essere ancora attiva.
EnqueueRequest(DNSResolver & resolver)
Accoda un oggetto DNSResolver per la risoluzione asincrona dell'indirizzo IP di un nome host specificato.
Init(InetLayer *inet)
L'inizializzatore esplicito per la classe AsyncDNSResolverSockets.
PrepareDNSResolver(DNSResolver & resolver, const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolver::OnResolveCompleteFunct onComplete, void *appState)
Questo metodo prepara un oggetto DNSResolver prima della risoluzione asincrona.
Shutdown(void)
Questo è il deinizializzatore esplicito della classe AsyncDNSResolverSockets che si occupa dell'arresto dei thread e dell'eliminazione delle variabili mutex e semaforo.

Funzioni pubbliche

Annulla

INET_ERROR Cancel(
  DNSResolver & resolver
)

Annulla una query DNS in sospeso che potrebbe essere ancora attiva.

Dettagli
Parametri
[in] resolver
Un riferimento all'oggetto DNSResolver.

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

Accoda un oggetto DNSResolver per la risoluzione asincrona dell'indirizzo IP di un nome host specificato.

Dettagli
Parametri
[in] resolver
Un riferimento all'oggetto DNSResolver.
Valori restituiti
INET_NO_ERROR
se una richiesta DNS è stata inserita correttamente in coda.
INET_ERROR_NO_MEMORY
se il pool di resolver del livello Inet è pieno.
other
POSIX appropriato o errore del sistema operativo.

Inizia

INET_ERROR Init(
  InetLayer *inet
)

L'inizializzatore esplicito per la classe AsyncDNSResolverSockets.

Questo inizializza le variabili mutex e semaforo e crea i thread per la gestione della risoluzione DNS asincrona.

Dettagli
Parametri
[in] aInet
Un puntatore all'oggetto InetLayer.
Valori restituiti
INET_NO_ERROR
se l'inizializzazione ha esito positivo.
other
POSIX appropriato o errore del sistema operativo.

PrepareDNSResolver

INET_ERROR PrepareDNSResolver(
  DNSResolver & resolver,
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t options,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolver::OnResolveCompleteFunct onComplete,
  void *appState
)

Questo metodo prepara un oggetto DNSResolver prima della risoluzione asincrona.

Dettagli
Parametri
[in] resolver
Un riferimento a un oggetto DNSResolver allocato.
[in] hostName
Un puntatore a una stringa C che rappresenta il nome host su cui eseguire la query.
[in] hostNameLen
La lunghezza della stringa del nome host.
[in] options
Un valore intero che controlla il modo in cui viene eseguita la risoluzione dell'indirizzo del nome host. I valori provengono dall'enumerazione #DNSOptions.
[in] maxAddrs
Il numero massimo di indirizzi da archiviare nella tabella DNS.
[in] addrArray
Un puntatore alla tabella DNS.
[in] onComplete
Un puntatore alla funzione di callback quando viene completata una richiesta DNS.
[in] appState
Un puntatore allo stato dell'applicazione da passare a onComplete quando viene completata una richiesta DNS.
Valori restituiti
INET_NO_ERROR
se una richiesta DNS viene gestita correttamente.

Arresto

INET_ERROR Shutdown(
  void
)

Questo è il deinizializzatore esplicito della classe AsyncDNSResolverSockets che si occupa dell'arresto dei thread e dell'eliminazione delle variabili mutex e semaforo.

Dettagli
Valori restituiti
INET_NO_ERROR
se l'arresto va a buon fine.
other
POSIX appropriato o errore del sistema operativo.