nl:: Inet:: InterfaceAddressIterator
#include <src/inet/InetInterface.h>
システム ネットワーク インターフェースの IP アドレスのリストのイテレータ。
概要
このクラスのオブジェクトを使用して、システム ネットワーク インターフェース インターフェースの IP アドレスのリストを反復処理します。
このクラスの個々のインスタンスのメソッドはスレッドセーフではありません。ただし、複数のスレッドが別々のインスタンスを同時に使用することは可能です。
マルチスレッド LwIP システムでは、次の条件を満たす場合、グローバル LwIP 状態にアクセスする他のスレッドと比較して、インスタンスはスレッドセーフになります。1) 他のスレッドが netif のリストを変更している間、LwIP コアロックを保持し、2) netif オブジェクト自体が決して破棄されない
ソケットベースのシステムでは、基盤となるシステムのインターフェースやアドレスが変更されても、反復処理は常に安定しています。
LwIP システムでは、現在のアドレスに関連付けられているインターフェースが削除された場合を除き、反復処理は安定しています。ただし、その場合は反復処理が早期に終了する可能性があります。
コンストラクタとデストラクタ |
|
---|---|
InterfaceAddressIterator(void)
InterfaceAddressIterator オブジェクトを作成します。
|
|
~InterfaceAddressIterator(void)
InterfaceAddressIterator オブジェクトを破棄します。
|
パブリック関数 |
|
---|---|
GetAddress(void)
|
現在のインターフェース アドレスを取得します。
|
GetAddressWithPrefix(IPPrefix & addrWithPrefix)
|
void
現在のアドレスのアドレスとプレフィックス長を含む IPPrefix を返します。
|
GetIPv6PrefixLength(void)
|
uint8_t
GetPrefixLength(void) の非推奨エイリアス |
GetInterface(void)
|
InterfaceId
GetInterfaceId(void) の非推奨エイリアス |
GetInterfaceId(void)
|
InterfaceId
現在のインターフェース アドレスに関連付けられているネットワーク インターフェース ID を返します。
|
GetInterfaceName(char *nameBuf, size_t nameBufSize)
|
現在のインターフェース アドレスに関連付けられているネットワーク インターフェースの名前を取得します。
|
GetPrefixLength(void)
|
uint8_t
現在のインターフェース アドレスに関連付けられているネットワーク プレフィックスを取得します。
|
HasBroadcastAddress(void)
|
bool
現在のインターフェース アドレスに関連付けられたネットワーク インターフェースに IPv4 ブロードキャスト アドレスがあるかどうかを返します。
|
HasCurrent(void)
|
bool
|
IsUp(void)
|
bool
現在のインターフェース アドレスに関連付けられたネットワーク インターフェースが稼働しているかどうかを返します。
|
Next(void)
|
bool
イテレータを次のインターフェース アドレスに進めます。
|
SupportsMulticast(void)
|
bool
現在のインターフェース アドレスに関連付けられたネットワーク インターフェースがマルチキャストをサポートしているかどうかを返します。
|
パブリック関数
GetAddress
IPAddress GetAddress( void )
GetAddressWithPrefix
void GetAddressWithPrefix( IPPrefix & addrWithPrefix )
現在のアドレスのアドレスとプレフィックス長を含む IPPrefix を返します。
GetInterfaceId
InterfaceId GetInterfaceId( void )
現在のインターフェース アドレスに関連付けられているネットワーク インターフェース ID を返します。
詳細 | |
---|---|
戻り値 |
インターフェース ID、または
INET_NULL_INTERFACEID (イテレータがアドレスリストの末尾より後にある場合)。 |
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.
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
GetPrefixLength
uint8_t GetPrefixLength( void )
現在のインターフェース アドレスに関連付けられているネットワーク プレフィックスを取得します。
On LwIP, this method simply returns the hard-coded constant 64. Note Well: the standard subnet prefix on all links other than PPP links is 64 bits. On PPP links and some non-broadcast multipoint access links, the convention is either 127 bits or 128 bits, but it might be something else. On most platforms, the system's interface address structure can represent arbitrary prefix lengths between 0 and 128.
詳細 | |
---|---|
戻り値 |
ネットワーク プレフィックス(ビット単位)。イテレータがアドレスリストの末尾より後ろに配置されている場合は 0。
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
現在のインターフェース アドレスに関連付けられたネットワーク インターフェースに IPv4 ブロードキャスト アドレスがあるかどうかを返します。
詳細 | |
---|---|
戻り値 |
true インターフェースにブロードキャスト アドレスがある場合は false 、そうでない場合、またはイテレータがインターフェース アドレスに配置されていない場合。 |
HasCurrent
bool HasCurrent( void )
InterfaceAddressIterator
InterfaceAddressIterator( void )
InterfaceAddressIterator オブジェクトを作成します。
最初のネットワーク アドレスでイテレータを開始します。プラットフォームによっては、このコンストラクタが、デストラクタによってリサイクルされたリソースを割り当てることがあります。
IsUp
bool IsUp( void )
現在のインターフェース アドレスに関連付けられたネットワーク インターフェースが稼働しているかどうかを返します。
詳細 | |
---|---|
戻り値 |
true 現在のネットワーク インターフェースが稼働中の場合 false 、そうでない場合、またはイテレータがインターフェース アドレスに配置されていない場合。 |
次へ
bool Next( void )
イテレータを次のインターフェース アドレスに進めます。
Advances the iterator to the next interface address or to a position beyond the end of the address list. On LwIP, this method is thread-safe provided that: 1) other threads hold the LwIP core lock while mutating the netif list; and 2) netif objects themselves are never destroyed. Additionally, iteration on LwIP systems will terminate early if the current interface is removed from the list.
詳細 | |
---|---|
戻り値 |
最後より先に進める場合は
false 、それ以外の場合は true です。 |
SupportsMulticast
bool SupportsMulticast( void )
現在のインターフェース アドレスに関連付けられたネットワーク インターフェースがマルチキャストをサポートしているかどうかを返します。
詳細 | |
---|---|
戻り値 |
マルチキャストがサポートされている場合は
true 、サポートされていない場合、またはイテレータがインターフェース アドレスに配置されていない場合は false 。 |
~InterfaceAddressIterator
~InterfaceAddressIterator( void )
InterfaceAddressIterator オブジェクトを破棄します。
コンストラクタによって割り当てられたすべてのリソースをリサイクルします。