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 그렇지 않은 경우, 또는 반복기는리스트의 끝을지나 위치하는 경우.

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 값을 반환합니다.