нл:: Инет:: ИнтерфейсИтератор
#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 для текущего интерфейса.