нл:: Инет:: ИнтерфейсИтератор

#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 GetInterface(
  void
)

Устаревший псевдоним для GetInterfaceId(void)

Получитьинтерфейсид

InterfaceId GetInterfaceId(
  void
)

Возвращает идентификатор сетевого интерфейса в текущей позиции итератора.

Подробности
Возвращаемые значения
INET_NULL_INTERFACEID
если он продвинулся за конец списка.
id
текущий идентификатор сетевого интерфейса.

Получить имя интерфейса

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Получите имя текущего сетевого интерфейса.

Writes the name of the network interface as \c NUL terminated text string
at \c nameBuf.

Подробности
Параметры
[in] nameBuf
область памяти для записи имени интерфейса
[in] nameBufSize
размер региона, обозначенного nameBuf
Возвращаемые значения
INET_NO_ERROR
успешный результат, имя интерфейса записано
INET_ERROR_INCORRECT_STATE
итератор расположен за концом списка
INET_ERROR_NO_MEMORY
имя слишком велико для записи в буфер
other
другая ошибка системы или платформы

Имеет адрес вещания

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