nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

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

סיכום

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

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

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

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

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.

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

פונקציות מוגנות

GetFlags

short GetFlags(
  void
)

מחזירה את הערך ifr_flags בממשק הנוכחי.