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、イテレータがリストの最後に配置されている場合は 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。またはイテレータがリストの最後に配置されている場合は false

~InterfaceIterator

 ~InterfaceIterator(
  void
)

InterfaceIterator オブジェクトを破棄します。

コンストラクタによって割り当てられたすべてのリソースをリサイクルします。

プロテクト関数

GetFlags

short GetFlags(
  void
)

現在のインターフェースの ifr_flags 値を返します。