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
תפקידים ציבוריים
GetInterfaceId
InterfaceId GetInterfaceId( void )
מחזירה את מזהה ממשק הרשת במיקום האיטרטור הנוכחי.
פרטים | |||||
---|---|---|---|---|---|
ערכים מוחזרים |
|
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.
פרטים | |||||||||
---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||
ערכים מוחזרים |
|
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 לממשק הנוכחי.