nl:: اینت:: InterfaceAddressIterator

#include <src/inet/InetInterface.h>

Iterator برای لیست آدرس های IP رابط شبکه سیستم.

خلاصه

از اشیاء این کلاس برای تکرار لیست آدرس های IP رابط شبکه سیستم استفاده کنید.

روش‌های موجود در نمونه‌های فردی این کلاس، ایمن نیستند . با این حال نمونه های جداگانه ممکن است به طور همزمان توسط چندین رشته استفاده شوند.

در سیستم‌های LwIP چند رشته‌ای، نمونه‌ها نسبت به سایر رشته‌هایی که به حالت LwIP جهانی دسترسی دارند، ایمن هستند، مشروط بر اینکه: 1) رشته‌های دیگر قفل هسته LwIP را نگه می‌دارند در حالی که لیست netifs را تغییر می‌دهند. و 2) خود شیء netif هرگز از بین نمی رود.

در سیستم‌های مبتنی بر سوکت، تکرار همیشه در مواجهه با تغییرات در رابط‌ها و/یا آدرس‌های سیستم زیربنایی پایدار است.

در سیستم‌های LwIP، تکرار پایدار است، مگر در مواردی که رابط مرتبط با آدرس فعلی حذف شود، در این صورت تکرار ممکن است پیش از موعد به پایان برسد.

سازندگان و ویرانگرها

InterfaceAddressIterator (void)
یک شی InterfaceAddressIterator می سازد.
~InterfaceAddressIterator (void)
یک شی InterfaceAddressIterator را از بین می برد.

توابع عمومی

GetAddress (void)
آدرس رابط فعلی را دریافت کنید.
GetAddressWithPrefix ( IPPrefix & addrWithPrefix)
void
یک IPPrefix حاوی آدرس و طول پیشوند آدرس فعلی را برمی‌گرداند.
GetIPv6PrefixLength (void)
uint8_t
نام مستعار منسوخ شده برای GetPrefixLength(void)
GetInterface (void)
InterfaceId
نام مستعار منسوخ شده برای GetInterfaceId(void)
GetInterfaceId (void)
InterfaceId
شناسه رابط شبکه مرتبط با آدرس رابط فعلی را برمی‌گرداند.
GetInterfaceName (char *nameBuf, size_t nameBufSize)
نام رابط شبکه مرتبط با آدرس رابط فعلی را دریافت کنید.
GetPrefixLength (void)
uint8_t
پیشوند شبکه مرتبط با آدرس رابط فعلی را دریافت می کند.
HasBroadcastAddress (void)
bool
نشان می دهد که آیا رابط شبکه مرتبط با آدرس رابط فعلی دارای آدرس پخش IPv4 است یا خیر.
HasCurrent (void)
bool
IsUp (void)
bool
نشان می دهد که آیا رابط شبکه مرتبط با آدرس رابط فعلی بالا است یا خیر.
Next (void)
bool
تکرار کننده را به آدرس رابط بعدی منتقل کنید.
SupportsMulticast (void)
bool
نشان می دهد که آیا رابط شبکه مرتبط با آدرس رابط فعلی از چندپخشی پشتیبانی می کند یا خیر.

توابع عمومی

دریافت آدرس

IPAddress GetAddress(
  void
)

آدرس رابط فعلی را دریافت کنید.

جزئیات
برمی گرداند
آدرس واسط فعلی یا IPAddress::Any صورتی که تکرار کننده فراتر از انتهای لیست آدرس قرار گیرد.

GetAddressWithPrefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

یک IPPrefix حاوی آدرس و طول پیشوند آدرس فعلی را برمی‌گرداند.

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

نام مستعار منسوخ شده برای GetPrefixLength(void)

GetInterface

InterfaceId GetInterface(
  void
)

نام مستعار منسوخ شده برای GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

شناسه رابط شبکه مرتبط با آدرس رابط فعلی را برمی‌گرداند.

جزئیات
برمی گرداند
شناسه رابط یا INET_NULL_INTERFACEID در صورتی که تکرار کننده فراتر از انتهای فهرست آدرس قرار گرفته باشد.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

نام رابط شبکه مرتبط با آدرس رابط فعلی را دریافت کنید.

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

جزئیات
پارامترها
[in] nameBuf
منطقه حافظه برای نوشتن نام رابط
[in] nameBufSize
اندازه منطقه که با nameBuf مشخص شده است
ارزش های بازگشتی
INET_NO_ERROR
نتیجه موفقیت آمیز، نام رابط نوشته شده است
INET_ERROR_NO_MEMORY
نام خیلی بزرگ است که در بافر نوشته شود
INET_ERROR_INCORRECT_STATE
تکرار کننده در حال حاضر روی یک آدرس واسط قرار ندارد
other
یک خطای سیستم یا پلتفرم دیگر

GetPrefixLength

uint8_t GetPrefixLength(
  void
)

پیشوند شبکه مرتبط با آدرس رابط فعلی را دریافت می کند.

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.

جزئیات
برمی گرداند
پیشوند شبکه (بر حسب بیت) یا 0 اگر تکرار کننده فراتر از انتهای لیست آدرس قرار گرفته باشد.

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

نشان می دهد که آیا رابط شبکه مرتبط با آدرس رابط فعلی دارای آدرس پخش IPv4 است یا خیر.

جزئیات
برمی گرداند
true اگر اینترفیس دارای آدرس پخش باشد، false اگر نه، یا اگر تکرارکننده در یک آدرس واسط قرار نگیرد.

HasCurrent

bool HasCurrent(
  void
)

InterfaceAddressIterator

 InterfaceAddressIterator(
  void
)

یک شی InterfaceAddressIterator می سازد.

تکرار کننده را از اولین آدرس شبکه شروع می کند. در برخی از پلتفرم‌ها، این سازنده ممکن است منابع بازیافت شده توسط ویرانگر را تخصیص دهد.

IsUp

bool IsUp(
  void
)

نشان می دهد که آیا رابط شبکه مرتبط با آدرس رابط فعلی بالا است یا خیر.

جزئیات
برمی گرداند
true اگر رابط شبکه فعلی بالا باشد، false اگر نه، یا اگر تکرارکننده در یک آدرس رابط قرار نداشته باشد.

بعدی

bool Next(
  void
)

تکرار کننده را به آدرس رابط بعدی منتقل کنید.

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.

جزئیات
برمی گرداند
false اگر فراتر از انتها پیش رفت، در غیر این صورت true .

پشتیبانی از Multicast

bool SupportsMulticast(
  void
)

نشان می دهد که آیا رابط شبکه مرتبط با آدرس رابط فعلی از چندپخشی پشتیبانی می کند یا خیر.

جزئیات
برمی گرداند
true اگر چندپخشی پشتیبانی شود، false اگر نه، یا اگر تکرارکننده در یک آدرس واسط قرار نداشته باشد.

~InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

یک شی InterfaceAddressIterator را از بین می برد.

هر منبع تخصیص یافته توسط سازنده را بازیافت می کند.