nl:: Inet:: InterfaceAddressIterator
#include <src/inet/InetInterface.h>
איטרטור לרשימת כתובות ה-IP של ממשק הרשת של המערכת.
סיכום
משתמשים באובייקטים מהמחלקה הזו כדי לחזור על רשימת כתובות ה-IP של ממשק הרשת של המערכת.
שיטות במופע יחיד של המחלקה הזו לא בטוחות לשרשורים. עם זאת, ניתן להשתמש במופעים נפרדים בו-זמנית במספר שרשורים.
במערכות LwIP עם שרשורים מרובים, המכונות בטוחות לשרשורים ביחס לשרשורים אחרים שניגשים למצב LwIP הגלובלי, בתנאי ש: 1) ב-threads אחרים מחזיקים את נעילת הליבה של 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)
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.
פרטים | |||||||||
---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||
ערכים מוחזרים |
|
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.
ממחזר את כל המשאבים שהוקצו על ידי הבונה.