nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

Sistem ağ arayüzü IP adresleri listesinin iterasyonu.

Özet

Sistem ağ arayüzü arayüzü IP adreslerinin listesini yinelemek için bu sınıfın nesnelerini kullanın.

Bu sınıfın tek bir örneğindeki yöntemler iş parçacığı için güvenli değildir; Ancak ayrı örnekler birden çok iş parçacığı tarafından aynı anda kullanılabilir.

Çok iş parçacıklı LwIP sistemlerinde, örnekler şu koşullarla genel LwIP durumuna erişen diğer iş parçacıklarına göre iş parçacığı açısından güvenlidir: 1) Diğer iş parçacıkları, netif listesini değiştirirken LwIP çekirdek kilidini tutar; ve 2) netif nesnelerin kendisi hiçbir zaman yok edilmez.

Yuva tabanlı sistemlerde, iterasyon temel sistemin arayüzlerinde ve/veya adreslerinde yapılan değişiklikler karşısında her zaman sabit kalır.

LwIP sistemlerinde, geçerli adresle ilişkili arayüzün kaldırıldığı durumlar dışında iterasyon sabittir. Bu durumda yineleme erken sona erebilir.

Oluşturucular ve Yıkıcılar

InterfaceAddressIterator(void)
InterfaceAddressIterator nesnesi oluşturur.
~InterfaceAddressIterator(void)
Bir InterfaceAddressIterator nesnesini kaldırır.

Herkese açık işlevler

GetAddress(void)
Geçerli arayüz adresini alın.
GetAddressWithPrefix(IPPrefix & addrWithPrefix)
void
Geçerli adresin adresini ve ön ek uzunluğunu içeren bir IPPrefix döndürür.
GetIPv6PrefixLength(void)
uint8_t
GetPrefixLength(void) için desteği sonlandırıldı
GetInterface(void)
InterfaceId
GetInterfaceId(void) için desteği sonlandırıldı
GetInterfaceId(void)
InterfaceId
Geçerli arayüz adresiyle ilişkilendirilmiş ağ arayüzü kimliğini döndürür.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Mevcut arayüz adresiyle ilişkilendirilmiş ağ arayüzünün adını alın.
GetPrefixLength(void)
uint8_t
Geçerli arayüz adresiyle ilişkilendirilmiş ağ ön ekini alır.
HasBroadcastAddress(void)
bool
Geçerli arayüz adresiyle ilişkili ağ arayüzünün bir IPv4 yayın adresine sahip olup olmadığını döndürür.
HasCurrent(void)
bool
IsUp(void)
bool
Geçerli arayüz adresiyle ilişkilendirilmiş ağ arayüzünün çalışıp çalışmadığını döndürür.
Next(void)
bool
Yinelemeyi bir sonraki arayüz adresine ilerletin.
SupportsMulticast(void)
bool
Geçerli arayüz adresiyle ilişkilendirilmiş ağ arayüzünün çoklu yayını destekleyip desteklemediğini döndürür.

Herkese açık işlevler

GetAddress

IPAddress GetAddress(
  void
)

Geçerli arayüz adresini alın.

Ayrıntılar
İadeler
mevcut arayüz adresi veya yineleme, adres listesinin sonundan öteye konumlandırıldıysa IPAddress::Any.

GetAddressWithPrefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

Geçerli adresin adresini ve ön ek uzunluğunu içeren bir IPPrefix döndürür.

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

GetPrefixLength(void) için desteği sonlandırıldı

GetInterface

InterfaceId GetInterface(
  void
)

GetInterfaceId(void) için desteği sonlandırıldı

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Geçerli arayüz adresiyle ilişkilendirilmiş ağ arayüzü kimliğini döndürür.

Ayrıntılar
İadeler
arayüz kimliği veya yineleme, adres listesinin sonundan sonra konumlandırıldıysa INET_NULL_INTERFACEID.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Mevcut arayüz adresiyle ilişkilendirilmiş ağ arayüzünün adını alın.

Writes the name of the network interface as \c NUL terminated text string
at \c nameBuf.

Ayrıntılar
Parametreler
[in] nameBuf
arayüz adını yazmak için kullanılacak bellek bölgesi
[in] nameBufSize
nameBuf ile belirtilen bölgenin boyutu
Değerleri Döndür
INET_NO_ERROR
başarılı sonuç, arayüz adı yazılmış
INET_ERROR_NO_MEMORY
ad arabelleğe yazılamayacak kadar büyük
INET_ERROR_INCORRECT_STATE
iteratör şu anda bir arayüz adresinde konumlandırılmıyor
other
başka bir sistem veya platform hatası

GetPrefixLength

uint8_t GetPrefixLength(
  void
)

Geçerli arayüz adresiyle ilişkilendirilmiş ağ ön ekini alır.

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.

Ayrıntılar
İadeler
ağ öneki (bit cinsinden) veya iteratör adres listesinin sonundan sonra konumlandırıldıysa 0 değerini alır.

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Geçerli arayüz adresiyle ilişkili ağ arayüzünün bir IPv4 yayın adresine sahip olup olmadığını döndürür.

Ayrıntılar
İadeler
Arayüzde yayın adresi varsa true. Yayın adresi yoksa iteratör, arayüz adresinde konumlandırılmadıysa true.false

HasCurrent

bool HasCurrent(
  void
)

InterfaceAddressIterator

 InterfaceAddressIterator(
  void
)

InterfaceAddressIterator nesnesi oluşturur.

Yineleyiciyi ilk ağ adresinde başlatır. Bazı platformlarda bu kurucu, yıkıcı tarafından geri dönüştürülmüş kaynakları tahsis edebilir.

IsUp

bool IsUp(
  void
)

Geçerli arayüz adresiyle ilişkilendirilmiş ağ arayüzünün çalışıp çalışmadığını döndürür.

Ayrıntılar
İadeler
true geçerli ağ arayüzü açıksa false ya da yineleme bir arayüz adresinde konumlandırılmamışsa.

Sonraki

bool Next(
  void
)

Yinelemeyi bir sonraki arayüz adresine ilerletin.

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.

Ayrıntılar
İadeler
Sondan sonra ileri düzeydeyse false, aksi takdirde true.

SupportsMulticast

bool SupportsMulticast(
  void
)

Geçerli arayüz adresiyle ilişkilendirilmiş ağ arayüzünün çoklu yayını destekleyip desteklemediğini döndürür.

Ayrıntılar
İadeler
true çoklu yayın destekleniyorsa, false desteklenmiyorsa veya yineleme bir arayüz adresinde konumlandırılmadıysa.

~InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

Bir InterfaceAddressIterator nesnesini kaldırır.

Oluşturucu tarafından ayrılan kaynakları geri dönüştürür.