nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

Itérateur de la liste des interfaces réseau du système

Résumé

Utilisez les objets de cette classe pour itérer la liste des interfaces réseau du système.

Les méthodes appliquées à une instance individuelle de cette classe ne sont pas thread-safe. mais des instances distinctes peuvent être utilisées simultanément par plusieurs threads.

Sur les systèmes LwIP multithread, les instances sont thread-safe par rapport aux autres threads qui accèdent à l'état LwIP global, à condition que les autres threads conservent le verrou de base LwIP tout en modifiant la liste des Netifs, et que l'objet Netif eux-mêmes ne soit jamais détruit.

Sur les systèmes basés sur des sockets, l'itération est toujours stable face aux modifications apportées aux interfaces du système sous-jacent.

Sur les systèmes LwIP, l'itération est stable, sauf si l'interface actuellement sélectionnée est supprimée de la liste, auquel cas l'itération se termine immédiatement.

Constructeurs et destructeurs

InterfaceIterator(void)
Construit un objet InterfaceIterator.
~InterfaceIterator(void)
Détruit un objet InterfaceIterator.

Attributs protégés

mCurIntf
size_t
mCurNetif
struct netif *
mIntfArray
struct if_nameindex *
mIntfFlags
short
mIntfFlagsCached
bool

Fonctions publiques

GetInterface(void)
InterfaceId
Alias obsolète pour GetInterfaceId(void)
GetInterfaceId(void)
InterfaceId
Renvoie l'ID de l'interface réseau à la position actuelle de l'itérateur.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Obtenez le nom de l'interface réseau actuelle.
HasBroadcastAddress(void)
bool
Indique si l'interface réseau actuelle possède une adresse de diffusion.
HasCurrent(void)
bool
Vérifiez si l'itérateur est positionné sur une interface.
IsUp(void)
bool
Indique si l'interface réseau actuelle est opérationnelle.
Next(void)
bool
Faire avancer l'itérateur à l'interface réseau suivante.
SupportsMulticast(void)
bool
Indique si l'interface réseau actuelle est compatible avec la multidiffusion.

Fonctions protégées

GetFlags(void)
short
Renvoie la valeur ifr_flags pour l'interface actuelle.

Attributs protégés

mCurIntf

size_t mCurIntf

mCurNetif

struct netif * mCurNetif

mIntfArray

struct if_nameindex * mIntfArray

mIntfFlags

short mIntfFlags

mIntfFlagsCached

bool mIntfFlagsCached

Fonctions publiques

GetInterface

InterfaceId GetInterface(
  void
)

Alias obsolète pour GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Renvoie l'ID de l'interface réseau à la position actuelle de l'itérateur.

Détails
Valeurs renvoyées
INET_NULL_INTERFACEID
si elle est avancée au-delà de la fin de la liste.
id
l'ID de l'interface réseau actuelle.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Obtenez le nom de l'interface réseau actuelle.

Writes the name of the network interface as \c NUL terminated text string
at \c nameBuf.

Détails
Paramètres
[in] nameBuf
de la mémoire pour écrire le nom de l'interface
[in] nameBufSize
taille de la région indiquée par nameBuf
Valeurs renvoyées
INET_NO_ERROR
résultat réussi, nom de l'interface écrit
INET_ERROR_INCORRECT_STATE
l'itérateur est placé au-delà de la fin de la liste
INET_ERROR_NO_MEMORY
le nom est trop volumineux pour être écrit dans la mémoire tampon
other
autre erreur système ou plate-forme

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Indique si l'interface réseau actuelle possède une adresse de diffusion.

Détails
Renvoie
true si l'interface réseau actuelle possède une adresse de diffusion, false dans le cas contraire, ou si l'itérateur est placé au-delà de la fin de la liste.

HasCurrent

bool HasCurrent(
  void
)

Vérifiez si l'itérateur est positionné sur une interface.

Vérifiez si l'itérateur est positionné sur une adresse d'interface.

Détails
Renvoie
true si l'itérateur est positionné sur une interface ; false s'il est placé au-delà de la fin de la liste des interfaces.
Renvoie
true si l'itérateur est positionné sur une adresse d'interface ; false s'il est placé au-delà de la fin de la liste d'adresses.

InterfaceIterator

 InterfaceIterator(
  void
)

Construit un objet InterfaceIterator.

Démarre l'itérateur au niveau de la première interface réseau. Sur certaines plates-formes, ce constructeur peut allouer des ressources recyclées par le destructeur.

IsUp

bool IsUp(
  void
)

Indique si l'interface réseau actuelle est opérationnelle.

Détails
Renvoie
true si l'interface réseau actuelle est opérationnelle, false dans le cas contraire ou si l'itérateur est positionné au-delà de la fin de la liste.

Suivant

bool Next(
  void
)

Faire avancer l'itérateur à l'interface réseau suivante.

Advances the internal iterator to the next network interface or to a position
beyond the end of the interface list.

On multi-threaded LwIP systems, this method is thread-safe relative to other
threads accessing the global LwIP state provided that: 1) the other threads
hold the LwIP core lock while mutating the list of netifs; and 2) netif objects
themselves are never destroyed.

Iteration is stable in the face of changes to the underlying system's
interfaces, *except* in the case of LwIP systems when the currently selected
interface is removed from the list, which causes iteration to end immediately.

Détails
Renvoie
false si elle est avancée au-delà de la fin, sinon true.

SupportsMulticast

bool SupportsMulticast(
  void
)

Indique si l'interface réseau actuelle est compatible avec la multidiffusion.

Détails
Renvoie
true si l'interface réseau actuelle est compatible avec la multidiffusion, false dans le cas contraire, ou si l'itérateur est placé au-delà de la fin de la liste.

~InterfaceIterator

 ~InterfaceIterator(
  void
)

Détruit un objet InterfaceIterator.

Recycle toutes les ressources allouées par le constructeur.

Fonctions protégées

GetFlags

short GetFlags(
  void
)

Renvoie la valeur ifr_flags pour l'interface actuelle.