nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

איטרטור לרשימת כתובות ה-IP של ממשק הרשת של המערכת.

סיכום

להשתמש באובייקטים מהמחלקה הזו כדי לחזור על רשימת כתובות ה-IP של ממשק הרשת של המערכת.

שיטות במופע ספציפי במחלקה הזו לא בטוחות בשרשור; עם זאת, אפשר להשתמש במופעים נפרדים בו-זמנית במספר שרשורים.

במערכות LwIP מרובות שרשורים, המכונות בטוחות לשרשורים ביחס לשרשורים אחרים הניגשים למצב ה-LwIP הגלובלי, בתנאי ש-1) שרשורים אחרים מחזיקים את נעילת הליבה של LwIP תוך שינוי רשימת הרשתות; וגם 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.

התחלת האיטרטור בכתובת הרשת הראשונה. בחלק מהפלטפורמות, ה-constructor הזה עשוי להקצות משאבים שממוחזרים על ידי כלי ההרכבה.

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.

מיחזור המשאבים שהוקצו על ידי ה-constructor.