nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

مكرّر لقائمة عناوين 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
تعرض ما إذا كانت واجهة الشبكة المرتبطة بعنوان الواجهة الحالي تتيح البث المتعدد.

وظائف عامة

GetAddress

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.

SupportsMulticast

bool SupportsMulticast(
  void
)

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

التفاصيل
المرتجعات
true إذا كان البث المتعدد متاحًا، أو false إذا لم يكن متاحًا، أو إذا لم يتم وضع المكرر على عنوان واجهة.

~InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

إتلاف كائن InterfaceAddressIterator

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