nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

Sistem ağ arayüzü IP adresleri listesi için yineleyici.

Ö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 tek bir örneğindeki yöntemler iş parçacığı açısından güvenli değildir. Ancak ayrı örnekler, aynı anda birden fazla iş parçacığı tarafından kullanılabilir.

Çok iş parçacıklı LwIP sistemlerinde örnekler, 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 nesnenin kendisi hiçbir zaman yok edilmez.

Yuva tabanlı sistemlerde yineleme, temeldeki sistemin arayüzlerinde ve/veya adreslerinde değişiklik yapılmasına karşın her zaman istikrarlıdır.

Mevcut adresle ilişkili arayüzün kaldırıldığı durumlar dışında LwIP sistemlerinde iterasyon sabittir, aksi takdirde iterasyon bitmeden bitebilir.

Oluşturucular ve Yıkıcılar

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

Kamu işlevleri

GetAddress(void)
Geçerli arayüz adresini al.
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 takma ad kullanımdan kaldırıldı
GetInterface(void)
InterfaceId
GetInterfaceId(void) için takma ad kullanımdan kaldırıldı
GetInterfaceId(void)
InterfaceId
Geçerli arayüz adresiyle ilişkilendirilen ağ arayüzü kimliğini döndürür.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Geçerli arayüz adresiyle ilişkili ağ arayüzünün adını öğrenin.
GetPrefixLength(void)
uint8_t
Geçerli arayüz adresiyle ilişkili ağ ön ekini alır.
HasBroadcastAddress(void)
bool
Mevcut 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şkilendirilen ağ arayüzünün çalışır durumda olup olmadığını döndürür.
Next(void)
bool
Yineleyiciyi 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.

Kamu işlevleri

GetAddress

IPAddress GetAddress(
  void
)

Geçerli arayüz adresini al.

Ayrıntılar
İadeler
geçerli arayüz adresi veya yineleyici adres listesinin sonuna yerleştirilmişse 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 takma ad kullanımdan kaldırıldı

GetInterface

InterfaceId GetInterface(
  void
)

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

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

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

Ayrıntılar
İadeler
yineleyici adres listesinin sonuna yerleştirildiyse arayüz kimliği veya INET_NULL_INTERFACEID.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Geçerli arayüz adresiyle ilişkili ağ arayüzünün adını öğrenin.

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ı yazılacak bellek bölgesi
[in] nameBufSize
nameBuf ile belirtilen bölgenin büyüklüğü
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
yineleyici şu anda bir arayüz adresinde konumlandırılmamış
other
başka bir sistem veya platform hatası

GetPrefixLength

uint8_t GetPrefixLength(
  void
)

Geçerli 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ğ öneki (bit cinsinden) veya yineleyici adres listesinin sonundan daha ilerisine yerleştirilmişse 0.

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Mevcut 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üzün bir yayın adresi varsa true, yoksa false veya yineleyici bir arayüz adresine yerleştirilmemişse.

HasCurrent

bool HasCurrent(
  void
)

InterfaceAddressIterator

 InterfaceAddressIterator(
  void
)

InterfaceAddressIterator nesnesi oluşturur.

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

IsUp

bool IsUp(
  void
)

Geçerli arayüz adresiyle ilişkilendirilen ağ arayüzünün çalışır durumda olup olmadığını döndürür.

Ayrıntılar
İadeler
Geçerli ağ arayüzü çalışıyorsa true, değilse false veya yineleyici bir arayüz adresinde konumlanmamışsa.

Sonraki

bool Next(
  void
)

Yineleyiciyi 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
Son aşamaya ulaşıldıysa false, aksi takdirde true.

SupportsMulticast

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
Çoklu yayın destekleniyorsa true, desteklenmiyorsa veya yineleyici bir arayüz adresine yerleştirilmiş değilse false.

~ArayüzAdresi iterasyonu

 ~InterfaceAddressIterator(
  void
)

Bir InterfaceAddressIterator nesnesini kaldırır.

Oluşturucu tarafından tahsis edilen kaynakları geri dönüştürür.