nl:: اینت:: InterfaceIterator

#include <src/inet/InetInterface.h>

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

خلاصه

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

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

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

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

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

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

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

ویژگی های محافظت شده

mCurIntf
size_t
mCurNetif
struct netif *
mIntfArray
struct if_nameindex *
mIntfFlags
short
mIntfFlagsCached
bool

توابع عمومی

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

توابع محافظت شده

GetFlags (void)
short
مقدار ifr_flags را برای رابط فعلی برمی‌گرداند.

ویژگی های محافظت شده

mCurIntf

size_t mCurIntf

mCurNetif

struct netif * mCurNetif

mIntfArray

struct if_nameindex * mIntfArray

mIntfFlags

short mIntfFlags

mIntfFlagsCached

bool mIntfFlagsCached

توابع عمومی

GetInterface

InterfaceId GetInterface(
  void
)

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

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

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

جزئیات
ارزش های بازگشتی
INET_NULL_INTERFACEID
اگر فراتر از انتهای لیست پیشرفت کرد.
id
شناسه رابط شبکه فعلی

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_INCORRECT_STATE
تکرار کننده فراتر از انتهای لیست قرار می گیرد
INET_ERROR_NO_MEMORY
نام خیلی بزرگ است که در بافر نوشته شود
other
یک خطای سیستم یا پلتفرم دیگر

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

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

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

HasCurrent

bool HasCurrent(
  void
)

تست کنید که آیا تکرار کننده روی یک رابط قرار دارد یا خیر.

تست کنید که آیا تکرار کننده روی یک آدرس واسط قرار دارد یا خیر.

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

InterfaceIterator

 InterfaceIterator(
  void
)

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

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

IsUp

bool IsUp(
  void
)

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

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

بعدی

bool Next(
  void
)

تکرار کننده را به رابط شبکه بعدی ببرید.

Advances the internal iterator to the next network interface or to a position
beyond the end of the interface list.

On multi-threaded LwIP systems, this method is thread-safe relative to other
threads accessing the global LwIP state provided that: 1) the other threads
hold the LwIP core lock while mutating the list of netifs; and 2) netif objects
themselves are never destroyed.

Iteration is stable in the face of changes to the underlying system's
interfaces, *except* in the case of LwIP systems when the currently selected
interface is removed from the list, which causes iteration to end immediately.

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

پشتیبانی از Multicast

bool SupportsMulticast(
  void
)

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

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

~InterfaceIterator

 ~InterfaceIterator(
  void
)

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

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

توابع محافظت شده

GetFlags

short GetFlags(
  void
)

مقدار ifr_flags را برای رابط فعلی برمی‌گرداند.