нл:: Инет:: ИнтерфейсИтератор
#include <src/inet/InetInterface.h>Итератор списка сетевых интерфейсов системы.
Краткое содержание
Используйте объекты этого класса для перебора списка системных сетевых интерфейсов.
Методы отдельного экземпляра этого класса не являются потокобезопасными; однако отдельные экземпляры могут использоваться одновременно несколькими потоками.
В многопоточных системах LwIP экземпляры потокобезопасны относительно других потоков, обращающихся к глобальному состоянию LwIP, при условии, что другие потоки удерживают блокировку ядра LwIP при изменении списка нетифов, а сам объект нетифов никогда не уничтожается.
В системах на основе сокетов итерация всегда стабильна, несмотря на изменения в интерфейсах базовой системы.
В системах LwIP итерация стабильна, за исключением случая, когда текущий выбранный интерфейс удаляется из списка, и в этом случае итерация завершается немедленно.
| Конструкторы и деструкторы | |
|---|---|
| InterfaceIterator (void) Создает объект InterfaceIterator . | |
| ~InterfaceIterator (void) Уничтожает объект InterfaceIterator .  | 
| Защищенные атрибуты | |
|---|---|
| mCurIntf | size_t | 
| mCurNetif | struct netif * | 
| mIntfArray | struct if_nameindex * | 
| mIntfFlags | short | 
| mIntfFlagsCached | bool | 
| Общественные функции | |
|---|---|
| GetInterface (void) | InterfaceId Устаревший псевдоним для  GetInterfaceId(void) | 
| GetInterfaceId (void) | InterfaceId Возвращает идентификатор сетевого интерфейса в текущей позиции итератора. | 
| GetInterfaceName (char *nameBuf, size_t nameBufSize) |  Получите имя текущего сетевого интерфейса. | 
| HasBroadcastAddress (void) | bool Возвращает, имеет ли текущий сетевой интерфейс широковещательный адрес. | 
| HasCurrent (void) | bool Проверьте, расположен ли итератор на интерфейсе. | 
| IsUp (void) | bool Возвращает, работает ли текущий сетевой интерфейс. | 
| Next (void) | bool Переместите итератор к следующему сетевому интерфейсу. | 
| SupportsMulticast (void) | bool Возвращает, поддерживает ли текущий сетевой интерфейс многоадресную рассылку.  | 
| Защищенные функции | |
|---|---|
| GetFlags (void) | short Возвращает значение ifr_flags для текущего интерфейса.  | 
Защищенные атрибуты
mCurIntf
size_t mCurIntf
mCurNetif
struct netif * mCurNetif
mIntfArray
struct if_nameindex * mIntfArray
mIntfFlags
short mIntfFlags
mIntfFlagsCached
bool mIntfFlagsCached
Общественные функции
Получитьинтерфейсид
InterfaceId GetInterfaceId( void )
Возвращает идентификатор сетевого интерфейса в текущей позиции итератора.
| Подробности | |||||
|---|---|---|---|---|---|
| Возвращаемые значения | 
 | 
Получить имя интерфейса
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Получите имя текущего сетевого интерфейса.
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
| Подробности | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Параметры | 
 | ||||||||
| Возвращаемые значения | 
 | 
Имеет адрес вещания
bool HasBroadcastAddress( void )
Возвращает, имеет ли текущий сетевой интерфейс широковещательный адрес.
| Подробности | |
|---|---|
| Возврат | true, если текущий сетевой интерфейс имеет широковещательный адрес,falseв противном случае или если итератор расположен за концом списка. | 
Имеет текущий
bool HasCurrent( void )
Проверьте, расположен ли итератор на интерфейсе.
Проверьте, расположен ли итератор по адресу интерфейса.
| Подробности | |
|---|---|
| Возврат | true, если итератор расположен на интерфейсе;false, если он расположен за концом списка интерфейсов. | 
| Возврат | true, если итератор расположен по адресу интерфейса;false, если он расположен за концом списка адресов. | 
ИнтерфейсИтератор
InterfaceIterator( void )
Создает объект InterfaceIterator .
Запускает итератор на первом сетевом интерфейсе. На некоторых платформах этот конструктор может выделять ресурсы, переработанные деструктором.
IsUp
bool IsUp( void )
Возвращает, работает ли текущий сетевой интерфейс.
| Подробности | |
|---|---|
| Возврат | true, если текущий сетевой интерфейс включен,false, если нет или если итератор расположен за концом списка. | 
Следующий
bool Next( void )
Переместите итератор к следующему сетевому интерфейсу.
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.
| Подробности | |
|---|---|
| Возврат | falseесли продвинулось за конец, иначеtrue. | 
Поддерживает многоадресную рассылку
bool SupportsMulticast( void )
Возвращает, поддерживает ли текущий сетевой интерфейс многоадресную рассылку.
| Подробности | |
|---|---|
| Возврат | true, если текущий сетевой интерфейс поддерживает многоадресную рассылку,falseв противном случае или если итератор расположен за концом списка. | 
~Итератор интерфейса
~InterfaceIterator( void )
Уничтожает объект InterfaceIterator .
Перерабатывает любые ресурсы, выделенные конструктором.
Защищенные функции
GetFlags
short GetFlags( void )
Возвращает значение ifr_flags для текущего интерфейса.