nl:: Inet:: InterfaceIterator
#include <src/inet/InetInterface.h>
系統網路介面清單的疊代器。
摘要
使用這個類別的物件,疊代系統網路介面清單。
這個類別的個別例項方法「並非」執行緒安全;但多個執行緒可能會同時使用不同的例項。
在多執行緒 LwIP 系統中,與存取全域 LwIP 狀態的其他執行緒相比,執行個體在執行緒安全上,前提是其他執行緒在變動網路清單時持有 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
mIntfArray
struct if_nameindex * mIntfArray
mIntfFlags
short mIntfFlags
mIntfFlagsCached
bool mIntfFlagsCached
公開函式
GetInterfaceId
InterfaceId GetInterfaceId( void )
傳回目前疊代器位置的網路介面 ID。
詳細資料 | |||||
---|---|---|---|---|---|
傳回值 |
|
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
取得目前網路介面的名稱。
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回值 |
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
傳回目前的網路介面是否有廣播位址。
詳細資料 | |
---|---|
傳回 |
如果目前的網路介面有廣播位址,傳回
true ,否則為 false ,或者疊代器位置不在清單結尾處。 |
HasCurrent
bool HasCurrent( void )
測試疊代器是否已放置在介面中。
測試疊代器是否位於介面位址上。
詳細資料 | |
---|---|
傳回 |
true :如果疊代器是放在介面中的位置;如果位置超出介面清單結尾,則為 false 。 |
傳回 |
true :如果疊代器位於介面位址上;如果位置超過地址清單結尾,則為 false 。 |
InterfaceIterator
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 。 |
SupportsMulticast
bool SupportsMulticast( void )
傳回目前的網路介面是否支援多點傳播。
詳細資料 | |
---|---|
傳回 |
如果目前的網路介面支援多點傳送,則為
true ;如果不支援多點傳送,或者疊代器的位置超出清單結尾,則為 false 。 |
受保護的函式
GetFlags
short GetFlags( void )
傳回目前介面的 ifr_flags 值。