nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

Iterator untuk daftar alamat IP antarmuka jaringan sistem.

Ringkasan

Gunakan objek class ini untuk melakukan iterasi daftar alamat IP antarmuka antarmuka jaringan sistem.

Metode pada instance individual class ini tidak aman untuk thread; namun {i>instance<i} terpisah dapat digunakan secara bersamaan oleh beberapa {i>thread<i}.

Pada sistem LwIP multi-thread, instance relatif aman untuk thread lain yang mengakses status LwIP global asalkan: 1) thread lain menahan kunci inti LwIP saat mengubah daftar netif; dan 2) objek netif itu sendiri tidak pernah dihancurkan.

Pada sistem berbasis soket, iterasi selalu stabil meskipun terjadi perubahan pada antarmuka dan/atau alamat sistem yang mendasarinya.

Pada sistem LwIP, iterasi bersifat stabil kecuali dalam kasus ketika antarmuka yang terkait dengan alamat saat ini dihapus, dalam hal ini iterasi dapat berakhir sebelum waktunya.

Konstruktor dan Destruktor

InterfaceAddressIterator(void)
Membuat objek InterfaceAddressIterator.
~InterfaceAddressIterator(void)
Menghancurkan objek InterfaceAddressIterator.

Fungsi publik

GetAddress(void)
Mendapatkan alamat antarmuka saat ini.
GetAddressWithPrefix(IPPrefix & addrWithPrefix)
void
Menampilkan IPPrefix yang berisi alamat dan panjang awalan untuk alamat saat ini.
GetIPv6PrefixLength(void)
uint8_t
Alias yang tidak digunakan lagi untuk GetPrefixLength(void)
GetInterface(void)
InterfaceId
Alias yang tidak digunakan lagi untuk GetInterfaceId(void)
GetInterfaceId(void)
InterfaceId
Menampilkan ID antarmuka jaringan yang terkait dengan alamat antarmuka saat ini.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Dapatkan nama antarmuka jaringan yang dikaitkan dengan alamat antarmuka saat ini.
GetPrefixLength(void)
uint8_t
Mendapatkan awalan jaringan yang terkait dengan alamat antarmuka saat ini.
HasBroadcastAddress(void)
bool
Menampilkan apakah antarmuka jaringan yang terkait dengan alamat antarmuka saat ini memiliki alamat siaran IPv4.
HasCurrent(void)
bool
IsUp(void)
bool
Menampilkan apakah antarmuka jaringan yang terkait dengan alamat antarmuka saat ini aktif.
Next(void)
bool
Maju iterator ke alamat antarmuka berikutnya.
SupportsMulticast(void)
bool
Menampilkan apakah antarmuka jaringan yang terkait dengan alamat antarmuka saat ini mendukung multicast.

Fungsi publik

GetAddress

IPAddress GetAddress(
  void
)

Mendapatkan alamat antarmuka saat ini.

Detail
Hasil
alamat antarmuka saat ini atau IPAddress::Any jika iterator diposisikan di luar akhir daftar alamat.

GetAddressWithPrefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

Menampilkan IPPrefix yang berisi alamat dan panjang awalan untuk alamat saat ini.

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

Alias yang tidak digunakan lagi untuk GetPrefixLength(void)

GetInterface

InterfaceId GetInterface(
  void
)

Alias yang tidak digunakan lagi untuk GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Menampilkan ID antarmuka jaringan yang terkait dengan alamat antarmuka saat ini.

Detail
Hasil
ID antarmuka atau INET_NULL_INTERFACEID jika iterator diposisikan di luar akhir daftar alamat.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Dapatkan nama antarmuka jaringan yang dikaitkan dengan alamat antarmuka saat ini.

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

Detail
Parameter
[in] nameBuf
region memori untuk menulis nama antarmuka
[in] nameBufSize
ukuran wilayah yang dilambangkan dengan nameBuf
Nilai yang Ditampilkan
INET_NO_ERROR
hasil berhasil, nama antarmuka ditulis
INET_ERROR_NO_MEMORY
nama terlalu besar untuk ditulis dalam buffer
INET_ERROR_INCORRECT_STATE
iterator saat ini tidak diposisikan pada alamat antarmuka
other
error sistem atau platform lain

GetPrefixLength

uint8_t GetPrefixLength(
  void
)

Mendapatkan awalan jaringan yang terkait dengan alamat antarmuka saat ini.

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.

Detail
Hasil
awalan jaringan (dalam bit) atau 0 jika iterator diposisikan di luar akhir daftar alamat.

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Menampilkan apakah antarmuka jaringan yang terkait dengan alamat antarmuka saat ini memiliki alamat siaran IPv4.

Detail
Hasil
true jika antarmuka memiliki alamat broadcast, false jika tidak, atau jika iterator tidak diposisikan pada alamat antarmuka.

HasCurrent

bool HasCurrent(
  void
)

InterfaceAddressIterator

 InterfaceAddressIterator(
  void
)

Membuat objek InterfaceAddressIterator.

Memulai iterator pada alamat jaringan pertama. Pada beberapa platform, konstruktor ini dapat mengalokasikan sumber daya yang didaur ulang oleh destruktor.

IsUp

bool IsUp(
  void
)

Menampilkan apakah antarmuka jaringan yang terkait dengan alamat antarmuka saat ini aktif.

Detail
Hasil
true jika antarmuka jaringan saat ini naik, false jika tidak, atau jika iterator tidak diposisikan pada alamat antarmuka.

Berikutnya

bool Next(
  void
)

Maju iterator ke alamat antarmuka berikutnya.

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.

Detail
Hasil
false jika maju setelah melewati bagian akhir, atau true.

SupportsMulticast

bool SupportsMulticast(
  void
)

Menampilkan apakah antarmuka jaringan yang terkait dengan alamat antarmuka saat ini mendukung multicast.

Detail
Hasil
true jika multicast didukung, false jika tidak, atau jika iterator tidak diposisikan pada alamat antarmuka.

~InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

Menghancurkan objek InterfaceAddressIterator.

Mendaur ulang resource apa pun yang dialokasikan oleh konstruktor.