nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

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

סיכום

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

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

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