nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

Il s'agit d'une classe interne à InetLayer qui fournit des API d'assistance pour la résolution DNS (Asynchronous Domain Name System) dans InetLayer.

Résumé

Aucune interface publique n'est disponible pour la couche d'application.

Fonctions publiques

Cancel(DNSResolver & resolver)
Annuler une requête DNS en attente qui peut toujours être active.
EnqueueRequest(DNSResolver & resolver)
Mettez un objet DNSResolver en file d'attente pour la résolution d'adresse IP asynchrone d'un nom d'hôte spécifié.
Init(InetLayer *inet)
Initialiseur explicite pour la classe AsynchronousDNSResolverSockets.
PrepareDNSResolver(DNSResolver & resolver, const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolver::OnResolveCompleteFunct onComplete, void *appState)
Cette méthode prépare un objet DNSResolver avant la résolution asynchrone.
Shutdown(void)
Il s'agit du désinitialiseur explicite de la classe AsyncDNSResolverSockets. Il se charge d'arrêter les threads, et de détruire les variables mutex et sémaphore.

Fonctions publiques

Annuler

INET_ERROR Cancel(
  DNSResolver & resolver
)

Annuler une requête DNS en attente qui peut toujours être active.

Détails
Paramètres
[in] resolver
Référence à l'objet DNSResolver.

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

Mettez un objet DNSResolver en file d'attente pour la résolution d'adresse IP asynchrone d'un nom d'hôte spécifié.

Détails
Paramètres
[in] resolver
Référence à l'objet DNSResolver.
Valeurs renvoyées
INET_NO_ERROR
si une requête DNS a bien été mise en file d'attente.
INET_ERROR_NO_MEMORY
si le pool de résolveurs de couche Inet est saturé.
other
l'erreur de réseau ou de système d'exploitation POSIX appropriée.

Init

INET_ERROR Init(
  InetLayer *inet
)

Initialiseur explicite pour la classe AsynchronousDNSResolverSockets.

Cette opération initialise les variables de mutex et de sémaphore, et crée les threads pour gérer la résolution DNS asynchrone.

Détails
Paramètres
[in] aInet
Un pointeur vers l'objet InetLayer.
Valeurs renvoyées
INET_NO_ERROR
si l'initialisation réussit.
other
l'erreur de réseau ou de système d'exploitation POSIX appropriée.

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
)

Cette méthode prépare un objet DNSResolver avant la résolution asynchrone.

Détails
Paramètres
[in] resolver
Référence à un objet DNSResolver alloué.
[in] hostName
Pointeur vers une chaîne C représentant le nom d'hôte à interroger.
[in] hostNameLen
Longueur de chaîne du nom d'hôte.
[in] options
Valeur entière contrôlant le mode de résolution de l'adresse du nom d'hôte. Les valeurs proviennent de l'énumération #DNSOptions.
[in] maxAddrs
Nombre maximal d'adresses à stocker dans la table DNS.
[in] addrArray
Pointeur vers le tableau DNS.
[in] onComplete
Pointeur vers la fonction de rappel lorsqu'une requête DNS est terminée.
[in] appState
Pointeur vers l'état de l'application à transmettre à onComplete lorsqu'une requête DNS est terminée.
Valeurs renvoyées
INET_NO_ERROR
si une requête DNS est correctement gérée.

Arrêt

INET_ERROR Shutdown(
  void
)

Il s'agit du désinitialiseur explicite de la classe AsyncDNSResolverSockets. Il se charge d'arrêter les threads, et de détruire les variables mutex et sémaphore.

Détails
Valeurs renvoyées
INET_NO_ERROR
si l'arrêt aboutit.
other
l'erreur de réseau ou de système d'exploitation POSIX appropriée.