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 そうでない場合、または反復子がリストの末尾を超えて配置されている場合。 |
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 。 |
マルチキャストをサポート
bool SupportsMulticast( void )
現在のネットワークインターフェイスがマルチキャストをサポートしているかどうかを返します。
詳細 | |
---|---|
戻り値 | true 場合、現在のネットワーク・インタフェース・マルチキャストサポート、 false でない場合、またはイテレータは、リストの終わりを超えて配置されている場合。 |
〜InterfaceIterator
~InterfaceIterator( void )
破棄InterfaceIteratorのオブジェクトを。
コンストラクターによって割り当てられたリソースをリサイクルします。
保護された機能
GetFlags
short GetFlags( void )
現在のインターフェースのifr_flags値を返します。