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