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 للواجهة الحالية.