透過集合功能整理內容 你可以依據偏好儲存及分類內容。

NL::內網::接口迭代器

#include <src/inet/InetInterface.h>

系統網絡接口列表的迭代器。

概括

使用此類的對象來迭代系統網絡接口列表。

這一類的單個實例方法不是線程安全的;但是,多個線程可以同時使用單獨的實例。

在多線程 LwIP 系統上,實例相對於訪問全局 LwIP 狀態的其他線程是線程安全的,前提是其他線程在更改 netif 列表時持有 LwIP 核心鎖,並且 netif 對象本身永遠不會被破壞。

在基於套接字的系統上,面對底層系統接口的變化,迭代總是穩定的。

在 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
返回當前迭代器位置的網絡接口 ID。
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

數組

struct if_nameindex * mIntfArray

標誌

short mIntfFlags

mintfFlagsCached

bool mIntfFlagsCached

公共職能

獲取接口

InterfaceId GetInterface(
  void
)

對於棄用別名GetInterfaceId(void)

獲取接口 ID

InterfaceId GetInterfaceId(
  void
)

返回當前迭代器位置的網絡接口 ID。

細節
返回值
INET_NULL_INTERFACEID
如果超出列表末尾。
id
當前網絡接口 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對象。

在第一個網絡接口啟動迭代器。在某些平台上,此構造函數可能會分配由析構函數回收的資源。

正在運行

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對象。

回收構造函數分配的任何資源。

受保護的功能

獲取標誌

short GetFlags(
  void
)

返回當前接口的 ifr_flags 值。