nl:: Inet:: InterfaceIterator
#include <src/inet/InetInterface.h>
システム ネットワーク インターフェースのリストのイテレータ。
概要
このクラスのオブジェクトを使用して、システム ネットワーク インターフェースのリストを反復処理します。
このクラスの個々のインスタンスのメソッドはスレッドセーフではありません。ただし、別々のインスタンスを複数のスレッドで同時に使用することはできます。
マルチスレッド LwIP システムでは、他のスレッドが netif のリストを変更している間、LwIP コアロックを保持し、その netif オブジェクト自体が破棄されることがない限り、インスタンスはグローバル 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
現在のイテレータ位置のネットワーク インターフェース 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 、またはイテレータがリストの末尾を超えている場合は 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 サポートされていない場合、またはイテレータがリストの最後に配置されている場合 |
~InterfaceIterator
~InterfaceIterator( void )
InterfaceIterator オブジェクトを破棄します。
コンストラクタによって割り当てられたすべてのリソースをリサイクルします。
プロテクト関数
GetFlags
short GetFlags( void )
現在のインターフェースの ifr_flags 値を返します。