nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

مكرّر لقائمة واجهات شبكة النظام.

ملخّص

استخدِم كائنات من هذه الفئة لتكرار قائمة واجهات شبكة النظام.

علمًا بأن الطرق المستخدمة في مثيل فردي من هذه الفئة ليست آمنة لسلاسل المحادثات، ولكن يمكن استخدام مثيلات منفصلة في آنٍ واحد بواسطة سلاسل محادثات متعددة.

في أنظمة LwIP المتعددة السلاسل، تكون المثيلات متوافقة مع سلاسل المحادثات الأخرى التي تصل إلى حالة LwIP العامة بشرط أن تحتفظ سلاسل المحادثات الأخرى بقفل LwIP الأساسي أثناء تبديل قائمة netifs، وأن كائن 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.

SupportsMulticast

bool SupportsMulticast(
  void
)

تعرض ما إذا كانت واجهة الشبكة الحالية تتوافق مع البث المتعدد.

التفاصيل
المرتجعات
true إذا كانت واجهة الشبكة الحالية تتيح البث المتعدد، أو false في حال عدم توافقها، أو إذا كان المكرّر يقع بعد نهاية القائمة.

~InterfaceIterator

 ~InterfaceIterator(
  void
)

إتلاف كائن InterfaceIterator.

لإعادة تدوير أي موارد مخصصة بواسطة الدالة الإنشائية.

الدوال المحمية

GetFlags

short GetFlags(
  void
)

تعرض قيمة ifr_flags للواجهة الحالية.