nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

Sistem ağ arayüzü IP adreslerinin listesi için iterasyon.

Özet

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

Bu sınıfın ayrı bir örneğindeki yöntemler ileti dizisi için güvenli değildir; ancak birden fazla ileti dizisi tarafından ayrı örnekler kullanılabilir.

Birden çok ileti dizisine sahip LwIP sistemlerinde, örnekler şu koşullarda küresel LwIP durumuna erişen diğer ileti dizilerine göre ileti dizisi açısından güvenlidir: 1) diğer ileti dizileri, netifs listesini yoksayırken LwIP çekirdek kilidini tutar ve 2) netif nesnesi kendi kendine yok edilmez.

Yuva tabanlı sistemlerde yineleme, alttaki sistemin arayüzlerinde ve/veya adreslerinde yapılan değişiklikler karşısında her zaman sabit olur.

LwIP sistemlerinde, mevcut adresle ilişkili arayüzün kaldırılması haricinde yineleme değişmez. Böyle bir durumda yineleme erken sona erer.

İnşaat Ustaları ve Yıkıcılar

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

Herkese açık işlevler

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

Herkese açık işlevler

Adres Adresi

IPAddress GetAddress(
  void
)

Mevcut arayüz adresini alın.

Ayrıntılar
İadeler
geçerli arayüz adresi veya IPAddress::Any Yineleyici, adres listesinin sonunda bulunuyorsa.

GetAddressWithprefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

Mevcut adres için adres ve ön ek uzunluğunu içeren bir IPPrefix döndürür.

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

GetPrefixLength(void) için takma ad kullanımdan kaldırıldı

Arayüz

InterfaceId GetInterface(
  void
)

GetInterfaceId(void) için takma ad kullanımdan kaldırıldı

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Mevcut arayüz adresiyle ilişkili ağ arayüz kimliğini döndürür.

Ayrıntılar
İadeler
Arayüz, adres listesinin sonundan başka bir yere yerleştirilmişse arayüz kimliği veya INET_NULL_INTERFACEID.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Mevcut arayüz adresiyle ilişkili 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ı yazacak bellek bölgesi
[in] nameBufSize
nameBuf ile belirtilen bölgenin boyutu
Döndürülen Değerler
INET_NO_ERROR
başarılı sonuç, arayüz adı yazıldı
INET_ERROR_NO_MEMORY
ad arabelleğe yazılamayacak kadar büyük
INET_ERROR_INCORRECT_STATE
iterasyon şu anda bir arayüz adresinde bulunmuyor
other
başka bir sistem veya platform hatası

GetPrefixLength

uint8_t GetPrefixLength(
  void
)

Mevcut arayüz adresiyle ilişkili 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ğ ön eki (bit cinsinden) veya iteratör, adres listesinin sonundaki konumlandırılmışsa 0.

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Mevcut arayüz adresiyle ilişkili ağ arayüzünün IPv4 yayın adresi olup olmadığını döndürür.

Ayrıntılar
İadeler
Arayüz bir yayın adresi içeriyorsa true, sahip değilse false veya iteratör bir arayüz adresine yerleştirilmezse.

Mevcut Mevcut

bool HasCurrent(
  void
)

ArabirimAdresİIteratör

 InterfaceAddressIterator(
  void
)

Bir InterfaceAddressIterator nesnesi oluşturur.

Yinelemeyi ilk ağ adresinde başlatır. Bu oluşturucu, bazı platformlarda içerik üretici tarafından geri dönüştürülmüş kaynakları dağıtabilir.

IsUp

bool IsUp(
  void
)

Mevcut arayüz adresiyle ilişkili ağ arayüzünün açık olup olmadığını döndürür.

Ayrıntılar
İadeler
Mevcut ağ arayüzü açıksa true, açıksa false veya iteratör bir arayüz adresine yerleştirilmemişse.

İleri

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
false sonun dışındaysa true.

DesteklerÇokluYayını

bool SupportsMulticast(
  void
)

Mevcut arayüz adresiyle ilişkili 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 iteratör bir arayüz adresine yerleştirilmemişse.

~InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

Bir InterfaceAddressIterator nesnesini kaldırır.

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