nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

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

Résumé

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

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

Sur les systèmes LwIP multithread, les instances sont sécurisées par rapport aux autres threads qui accèdent à l'état LwIP global, à condition que les autres threads conservent le verrouillage de base LwIP tout en modifiant la liste des netifs, et que l'objet netif 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 d'interface réseau à la position actuelle de l'itérateur.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Permet d'obtenir le nom de l'interface réseau actuelle.
HasBroadcastAddress(void)
bool
Indique si l'interface réseau actuelle possède une adresse de broadcast.
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 passer 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 d'interface réseau à la position actuelle de l'itérateur.

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

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Permet d'obtenir 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 mémoire pour écrire le nom de l'interface
[in] nameBufSize
taille de la région indiquée par nameBuf
Valeurs de retour
INET_NO_ERROR
un résultat positif, le 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
une autre erreur système ou de plate-forme

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

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

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 placé sur une adresse d'interface.

Détails
Renvoie
true si l'itérateur est positionné sur une interface ; false s'il se trouve au-delà de la fin de la liste d'interfaces.
Renvoie
true si l'itérateur est positionné sur une adresse d'interface ; false s'il se trouve 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 active, false si ce n'est pas le cas ou si l'itérateur est placé au-delà de la fin de la liste.

Suivant

bool Next(
  void
)

Faire passer 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 avancé 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.