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
GetInterfaceId
InterfaceId GetInterfaceId( void )
Renvoie l'ID de l'interface réseau à la position actuelle de l'itérateur.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
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 |
|
||||||||
Valeurs renvoyées |
|
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.