nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

אובייקטים מהמחלקה הזו מייצגים נקודות קצה של פרוטוקול IP שלא ניתנות לדילוג.

סיכום

ירושה

עובר בירושה מ: nl::Inet::EndPointBasis
מחלקות משנה מוכרות ישירות:
  nl::Inet::RawEndPoint
  nl::Inet::UDPEndPoint

סוגים ציבוריים

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
טיפוסים בני מנייה (enum)
מצב דינמי בסיסי של נקודת הקצה הבסיסית.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
טיפוסים בני מנייה (enum)
שידור דגלי אפשרויות ל-method SendMsg.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
סוג הפונקציה לטיפול באירועים של קליטת טקסט בהודעה.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
סוג הפונקציה לטיפול באירועים של שגיאה בקבלה.

מאפיינים ציבוריים

OnMessageReceived
משתמש שקיבל הרשאה לטיפול באירועים של קליטת הודעות בנקודת הקצה (endpoint).
OnReceiveError
מקבל הגישה לפונקציית הטיפול באירועי שגיאה של נקודת הקצה.
mState
enum nl::Inet::IPEndPointBasis::@8
מצב דינמי בסיסי של נקודת הקצה הבסיסית.

מאפיינים מוגנים

mBoundIntfId
InterfaceId

פונקציות ציבוריות

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
הצטרפות לקבוצת Multicast של כתובת IP.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
יציאה מקבוצת Multicast של כתובת IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
מגדירים אם להחזיר את תעבורת הנתונים של כתובת ה-IP בלופ.

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

Bind(IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId)
BindInterface(IPAddressType aAddressType, InterfaceId aInterfaceId)
GetSocket(IPAddressType aAddressType, int aType, int aProtocol)
HandleDataReceived(Weave::System::PacketBuffer *aBuffer)
void
HandlePendingIO(uint16_t aPort)
void
Init(InetLayer *aInetLayer)
void
PrepareIO(void)
SendMsg(const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags)

פונקציות סטטיות ציבוריות

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

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

GetPacketInfo(Weave::System::PacketBuffer *buf)
קבלת פרטי כתובת המקור וכתובת היעד של שכבת LwIP.

סוגים ציבוריים

8@

 @8

מצב דינמי בסיסי של נקודת הקצה הבסיסית.

האובייקטים מאותחלים במצב Ready (מוכן) מצב, ממשיכים אל ה'יעד' אחרי הקישור לכתובת ממשק מקומית, ואז ממשיכים אל "האזנה" כאשר יש להם משכי זמן רשומים לטיפול באירועים עבור קליטה של הודעות ICMP.

הערה: ספירת המצב kBasisState_Closed ממופה ל-kState_Ready מסיבות של תאימות בינארית היסטורית. קיים kState_Closed הקיים כדי לזהות בנפרד את ההבחנה בין 'עדיין לא נפתח' ו'נפתחו בעבר' סגור עכשיו" שהיו קיימים בעבר במדינות kState_Ready ו-kState_Closed.

מאפיינים
kState_Bound

נקודת הקצה קשורה, אבל לא להאזנה.

kState_Closed

נקודת הקצה סגורה, מוכנה לפרסום.

kState_Listening

נקודות קצה (endpoint) מקבלות תרשימים של נתונים.

kState_Ready

נקודת הקצה הופעלה, אבל היא לא פתוחה.

9@

 @9

שידור דגלי אפשרויות ל-method SendMsg.

מאפיינים
kSendFlag_RetainBuffer

אסור להוסיף את ההודעה לתור באופן הרסני.

הוספת עותק לתור.

OnMessageReceivedFunct

void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)

סוג הפונקציה לטיפול באירועים של קליטת טקסט בהודעה.

צריך לספק פונקציה מהסוג הזה למשתמש שהוענקה לך גישה ל-OnMessageReceived כדי לעבד אירועי קבלת טקסט של הודעות ב-endPoint. הערך msg הוא הטקסט של ההודעה שהתקבל מהשולח בכתובת senderAddr.

פרטים
פרמטרים
[in] endPoint
נקודת הקצה שמשויכת לאירוע.
[in] msg
הטקסט של ההודעה שהתקבל.
[in] senderAddr
כתובת ה-IP של השולח.

OnReceiveErrorFunct

void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)

סוג הפונקציה לטיפול באירועים של שגיאה בקבלה.

כדי לעבד אירועי שגיאה בקבלה ב-endPoint, צריך לספק פונקציה מהסוג הזה לאדם שהוענקה לו OnReceiveError. הארגומנט err מספק פרטים ספציפיים לגבי סוג השגיאה.

פרטים
פרמטרים
[in] endPoint
נקודת הקצה שמשויכת לאירוע.
[in] err
הסיבה לשגיאה.

מאפיינים ציבוריים

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

משתמש שקיבל הרשאה לטיפול באירועים של קליטת הודעות בנקודת הקצה (endpoint).

OnReceiveError

OnReceiveErrorFunct OnReceiveError

מקבל הגישה לפונקציית הטיפול באירועי שגיאה של נקודת הקצה.

mState

enum nl::Inet::IPEndPointBasis::@8 mState

מצב דינמי בסיסי של נקודת הקצה הבסיסית.

האובייקטים מאותחלים במצב Ready (מוכן) מצב, ממשיכים אל ה'יעד' אחרי הקישור לכתובת ממשק מקומית, ואז ממשיכים אל "האזנה" כאשר יש להם משכי זמן רשומים לטיפול באירועים עבור קליטה של הודעות ICMP.

הערה: ספירת המצב kBasisState_Closed ממופה ל-kState_Ready מסיבות של תאימות בינארית היסטורית. קיים kState_Closed הקיים כדי לזהות בנפרד את ההבחנה בין 'עדיין לא נפתח' ו'נפתחו בעבר' סגור עכשיו" שהיו קיימים בעבר במדינות kState_Ready ו-kState_Closed.

מאפיינים מוגנים

mBoundIntfId

InterfaceId mBoundIntfId

פונקציות ציבוריות

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

הצטרפות לקבוצת Multicast של כתובת IP.

מצטרפים לנקודת הקצה לקבוצת ה-multicast שסופקה בממשק שצוין.

פרטים
פרמטרים
[in] aInterfaceId
האינדיקטור של ממשק הרשת שיש להוסיף לקבוצה של Multicast
[in] aAddress
בקבוצת Multicast כדי להוסיף את הממשק
מוחזר ערכים
INET_NO_ERROR
הצלחה: קבוצת Multicast הוסרה
INET_ERROR_UNKNOWN_INTERFACE
ממשק רשת לא ידוע, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress אינו kIPAddressType_IPv4 או kIPAddressType_IPv6, או שאינו Multicast
other
שגיאת מערכת או פלטפורמה אחרת

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

יציאה מקבוצת Multicast של כתובת IP.

מסירים את נקודת הקצה מהקבוצה שסופקה על ידי Multicast בממשק שצוין.

פרטים
פרמטרים
[in] aInterfaceId
האינדיקטור של ממשק הרשת שיש להסיר מקבוצת השידורים החיים
[in] aAddress
בקבוצת Multicast כדי להסיר את הממשק
מוחזר ערכים
INET_NO_ERROR
הצלחה: קבוצת Multicast הוסרה
INET_ERROR_UNKNOWN_INTERFACE
ממשק רשת לא ידוע, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress אינו kIPAddressType_IPv4 או kIPAddressType_IPv6, או שאינו Multicast
other
שגיאת מערכת או פלטפורמה אחרת

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

מגדירים אם להחזיר את תעבורת הנתונים של כתובת ה-IP בלופ.

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

פרטים
פרמטרים
[in] aIPVersion
[in] aLoop
מוחזר ערכים
INET_NO_ERROR
הצלחה: קבוצת ההתנהגות בלולאה חוזרת
other
שגיאת מערכת או פלטפורמה אחרת

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

כריכה

INET_ERROR Bind(
  IPAddressType aAddressType,
  IPAddress aAddress,
  uint16_t aPort,
  InterfaceId aInterfaceId
)

BindInterface

INET_ERROR BindInterface(
  IPAddressType aAddressType,
  InterfaceId aInterfaceId
)

GetSocket

INET_ERROR GetSocket(
  IPAddressType aAddressType,
  int aType,
  int aProtocol
)

HandleDataReceived

void HandleDataReceived(
  Weave::System::PacketBuffer *aBuffer
)

HandlePendingIO

void HandlePendingIO(
  uint16_t aPort
)

Init

void Init(
  InetLayer *aInetLayer
)

PrepareIO

SocketEvents PrepareIO(
  void
)

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *aPktInfo,
  Weave::System::PacketBuffer *aBuffer,
  uint16_t aSendFlags
)

פונקציות סטטיות ציבוריות

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

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

GetPacketInfo

IPPacketInfo * GetPacketInfo(
  Weave::System::PacketBuffer *buf
)

קבלת פרטי כתובת המקור וכתובת היעד של שכבת LwIP.

כשמשתמשים במידע של LwIP לגבי החבילה, הוא 'מוסתר' במקום השמור לפני תחילת הנתונים במאגר הנתונים הזמני. הפעולה הזאת נדרשת כי לאירועים של שכבת המערכת יש רק שני ארגומנטים, שבמקרה הזה משמשים להעברת הסמן לנקודת הקצה והסמן למאגר הנתונים הזמני.

פרטים
פרמטרים
[in] aBuffer
מאגר המנות שמכיל את הודעת ה-IP
החזרות
מצביע אל פרטי הכתובת לגבי הצלחה. אחרת, הערך יהיה NULL אם אין מספיק מקום בחבילה לפרטי הכתובת.

ברוב המקרים הטריק הזה של אחסון מידע לפני הנתונים פועל כי מאגר הנתונים הזמני הראשון בהודעת LwIP IP מכיל את הרווח ששימש לכותרות האתרנט/IP/UDP. עם זאת, בהתחשב בגודל הנוכחי של המבנה של IPPacketInfo (40 בייט), ייתכן שאין מספיק מקום לאחסן את המבנה יחד עם המטען הייעודי (Payload) במאגר נתונים זמני אחד. בפועל, זה אמור לקרות רק לגבי חבילות IPv4 גדולות במיוחד שמגיעות ללא כותרת אתרנט.