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

パブリック関数

GetInterface

InterfaceId GetInterface(
  void
)

GetInterfaceId(void) の非推奨のエイリアス

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

現在のイテレータ位置のネットワーク インターフェース ID を返します。

詳細
戻り値
INET_NULL_INTERFACEID
リストの最後の方よりも先に進んでいる場合は
id
現在のネットワーク インターフェース 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.

詳細
パラメータ
[in] nameBuf
インターフェース名を書き込みます。
[in] nameBufSize
nameBuf で示されるリージョンのサイズ
戻り値
INET_NO_ERROR
成功の結果、インターフェース名の書き込み
INET_ERROR_INCORRECT_STATE
イテレータがリストの最後にあります
INET_ERROR_NO_MEMORY
名前が大きすぎてバッファに書き込めません
other
別のシステムエラーまたはプラットフォーム エラー

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 値を返します。