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 jaringan sistem.

Metode pada setiap instance class ini tidak aman untuk thread; namun, instance terpisah dapat digunakan secara bersamaan oleh beberapa thread.

Pada sistem LwIP multi-thread, instance bersifat thread-safe relatif terhadap thread lain yang mengakses status LwIP global asalkan: 1) thread lain memegang kunci inti LwIP saat memutasikan daftar netif; dan 2) objek netif itu sendiri tidak pernah dihancurkan.

Pada sistem berbasis soket, iterasi selalu stabil meskipun ada perubahan pada antarmuka dan/atau alamat sistem pokok.

Pada sistem LwIP, iterasi bersifat stabil kecuali jika 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 panjang alamat dan awalan untuk alamat saat ini.
GetIPv6PrefixLength(void)
uint8_t
Alias tidak digunakan lagi untuk GetPrefixLength(void)
GetInterface(void)
InterfaceId
Alias tidak digunakan lagi untuk GetInterfaceId(void)
GetInterfaceId(void)
InterfaceId
Menampilkan ID antarmuka jaringan yang dikaitkan dengan alamat antarmuka saat ini.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Mendapatkan 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 dikaitkan dengan alamat antarmuka saat ini memiliki alamat broadcast IPv4.
HasCurrent(void)
bool
IsUp(void)
bool
Menampilkan apakah antarmuka jaringan yang dikaitkan dengan alamat antarmuka saat ini sudah naik.
Next(void)
bool
Melanjutkan iterator ke alamat antarmuka berikutnya.
SupportsMulticast(void)
bool
Menampilkan apakah antarmuka jaringan yang dikaitkan 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 bagian akhir daftar alamat.

GetAddressWithPrefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

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

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

Alias tidak digunakan lagi untuk GetPrefixLength(void)

GetInterface

InterfaceId GetInterface(
  void
)

Alias tidak digunakan lagi untuk GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

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

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

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Mendapatkan 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 Pengembalian
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 bagian akhir daftar alamat.

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Menampilkan apakah antarmuka jaringan yang dikaitkan dengan alamat antarmuka saat ini memiliki alamat broadcast IPv4.

Detail
Hasil
true jika antarmuka memiliki alamat siaran, 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 resource yang didaur ulang oleh destruktor.

IsUp

bool IsUp(
  void
)

Menampilkan apakah antarmuka jaringan yang dikaitkan dengan alamat antarmuka saat ini sudah naik.

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

Berikutnya

bool Next(
  void
)

Melanjutkan 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 lanjutan ada di luar akhir, jika tidak true.

SupportsMulticast

bool SupportsMulticast(
  void
)

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

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

~InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

Menghancurkan objek InterfaceAddressIterator.

Mendaur ulang resource apa pun yang dialokasikan oleh konstruktor.