nl:: Inet:: InterfaceIterator
#include <src/inet/InetInterface.h>
시스템 네트워크 인터페이스 목록의 반복자입니다.
요약
이 클래스의 객체를 사용하여 시스템 네트워크 인터페이스 목록을 반복합니다.
이 클래스의 개별 인스턴스에 있는 메서드는 스레드로부터 안전하지 않습니다. 그러나 별도의 인스턴스가 여러 스레드에 의해 동시에 사용될 수 있습니다.
다중 스레드 LwIP 시스템에서 인스턴스는 전역 LwIP 상태에 액세스하는 다른 스레드에 대해 스레드로부터 안전합니다. 단, 다른 스레드가 netif 목록을 변경하는 동안 LwIP 코어 잠금을 유지하고 netif 객체 자체가 소멸되지 않아야 합니다.
소켓 기반 시스템에서는 기본 시스템의 인터페이스가 변경되더라도 반복이 항상 안정적입니다.
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 입니다. 또는 반복기가 목록의 끝을 넘어 배치된 경우 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 값을 반환합니다.