nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
השירות מספק גישה לשירותי אינטרנט, כולל טיימרים, רזולוציית DNS, תעבורה ברשת TCP, תעבורה רשת UDP והעברת רשת גולמית, לשרשור יחיד.
סיכום
עבור שקעי BSD/POSIX, ההתראה על מוּכנוּת לאירועים מטופלת באמצעות תיאורי קבצים והטמעה רגילה של סקר או בחירה במסגרת ההתאמה של הפלטפורמה.
עבור LwIP, הטיפול בהתראה של מוּכנוּת האירוע מתבצע באמצעות אירועים / הודעות והוקים (hooks) ספציפיים לפלטפורמה ולמערכת עבור מערכת האירועים / הודעות.
בנייה |
|
---|---|
InetLayer(void)
זהו constructor ברירת המחדל InetLayer.
|
סוגים ציבוריים |
|
---|---|
@5{
|
טיפוסים בני מנייה (enum) המצב הנוכחי של האובייקט InetLayer. |
DNSResolveCompleteFunct
|
typedefDNSResolver::OnResolveCompleteFunct
|
מאפיינים ציבוריים |
|
---|---|
State
|
enum nl::Inet::InetLayer::@5
המצב הנוכחי של האובייקט InetLayer.
|
מאפיינים סטטיים ציבוריים |
|
---|---|
sInetEventHandlerDelegate
|
פונקציות ציבוריות |
|
---|---|
CanEnqueueDroppableEvent(void)
|
bool
|
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
|
void
ביטול כל שאילתת DNS שטרם טופלה (לקריאה חוזרת (callback) ומצב אפליקציה תואמים) שעשויות להיות פעילות.
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
מאתרים את מזהה הממשק של כתובת ה-IP שצוינה.
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
מקבלים את כתובת IPv6 המקומית של הקישור עבור קישור או ממשק מסוימים.
|
GetPlatformData(void)
|
void *
הפעולה הזו מחזירה את כל נתוני הפלטפורמה הספציפיים ללקוח שהוקצו למכונה, אם הם הוגדרו בעבר.
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
לטפל בקלט/פלט בשיחה נבחרת.
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
זהו המאתחל הבוטה InetLayer.
|
InitQueueLimiter(void)
|
|
MatchLocalIPv6Subnet(const IPAddress & addr)
|
bool
בודקים אם יש התאמת קידומת בין כתובת ה-IPv6 שצוינה לבין אחת מכתובות ה-IPv6 שהוגדרו באופן מקומי.
|
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
|
יצירת אובייקט RawEndPoint חדש לגרסה ולפרוטוקול של IP ספציפיים.
|
NewTCPEndPoint(TCPEndPoint **retEndPoint)
|
יצירת אובייקט TCPEndPoint חדש.
|
NewTunEndPoint(TunEndPoint **retEndPoint)
|
יצירת אובייקט TunEndPoint חדש.
|
NewUDPEndPoint(UDPEndPoint **retEndPoint)
|
יצירת אובייקט UDPEndPoint חדש.
|
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
|
void
צריך להכין את הקבוצות של מתארי הקבצים כדי לעבוד איתם ב-
select() . |
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
צריך לקבוע את רזולוציית כתובת ה-IP של שם המארח שצוין.
|
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
צריך לקבוע את רזולוציית כתובת ה-IP של שם המארח שצוין.
|
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
צריך לקבוע את רזולוציית כתובת ה-IP של שם המארח שצוין.
|
SetPlatformData(void *aPlatformData)
|
void
הפעולה הזו מגדירה את נתוני הפלטפורמה הספציפיים ללקוח שצוינו למכונה כדי לאחזר מאוחר יותר על ידי פלטפורמת הלקוח.
|
Shutdown(void)
|
|
SystemLayer(void) const
|
פונקציות סטטיות ציבוריות |
|
---|---|
HandleInetLayerEvent(Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument)
|
Weave::System::Error
|
IsDroppableEvent(Weave::System::EventType aType)
|
bool
|
UpdateSnapshot(nl::Weave::System::Stats::Snapshot & aSnapshot)
|
void
|
סוגים ציבוריים
5@
@5
המצב הנוכחי של האובייקט InetLayer.
מאפיינים | |
---|---|
kState_Initialized
|
מצב אתחול. |
kState_NotInitialized
|
מצב לא מאותחל. |
kState_ShutdownInProgress
|
המצב שבו הופעל הכיבוי. |
DNSResolveCompleteFunct
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
מאפיינים ציבוריים
מדינה
enum nl::Inet::InetLayer::@5 State
המצב הנוכחי של האובייקט InetLayer.
[לקריאה בלבד] המצב הנוכחי.
מאפיינים סטטיים ציבוריים
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
פונקציות ציבוריות
CanEnqueueDroppableEvent
bool CanEnqueueDroppableEvent( void )
CancelResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
ביטול כל שאילתת DNS שטרם טופלה (לקריאה חוזרת (callback) ומצב אפליקציה תואמים) שעשויות להיות פעילות.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
מאתרים את מזהה הממשק של כתובת ה-IP שצוינה.
אם אי אפשר לגזור את מזהה הממשק, הוא מוגדר ל-INET_NULL_INTERFACEID.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
||||
החזרות |
INET_NO_ERROR ללא תנאי.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
מקבלים את כתובת IPv6 המקומית של הקישור עבור קישור או ממשק מסוימים.
פרטים | |||||||||
---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||
מוחזר ערכים |
|
GetPlatformData
void * GetPlatformData( void )
הפעולה הזו מחזירה את כל נתוני הפלטפורמה הספציפיים ללקוח שהוקצו למכונה, אם הם הוגדרו בעבר.
פרטים | |
---|---|
החזרות |
נתוני פלטפורמה ספציפיים ללקוח, אם הוגדרו בעבר. אחרת, הערך NULL.
|
HandleSelectResult
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
לטפל בקלט/פלט בשיחה נבחרת.
ה-method הזה רושם את אירוע הקלט/פלט (I/O) שנמצא בהמתנה בכל נקודת קצה פעילה, ואז מפעיל את פונקציות הטיפול המתאימות בקלט/פלט (I/O) באותם נקודות קצה.
פרטים | |||||||||
---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
InetLayer
InetLayer( void )
זהו constructor ברירת המחדל InetLayer.
הוא מבצע אתחול בסיסי של חבר נתונים; עם זאת, מכיוון ש-InetLayer פועלת לפי דפוס עיצוב מפורש של מאתחל, צריך להפעיל בהצלחה את השיטה InetLayer::Init לפני השימוש באובייקט.
Init
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
זהו המאתחל הבוטה InetLayer.
צריך לקרוא את השלב הזה ולהשלים אותו בהצלחה כדי שניתן יהיה להשתמש ב-InetLayer.
מבצע הקריאה החוזרת יכול לספק ארגומנט אופציונלי שיועבר חזרה דרך כל פונקציות הוק (hook) ספציפיות לפלטפורמה. במקרים של התאמות שמבוססות על LwIP, הערך הזה יהיה בדרך כלל מצביע על תור האירועים שמשויך למכונה InetLayer.
הפלטפורמות יכולות לבחור להצהיר על INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS בכותרת התצורה הספציפית לפלטפורמה שלהן ולהפעיל את Platform::InetLayer::WillInit ואת Platform::InetLayer::DidInit hooks כדי להשפיע על התאמות אישיות ספציפיות לפלטפורמה או על תוספי נתונים בשביל InetLayer.
פרטים | |||||||||
---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||
מוחזר ערכים |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
בודקים אם יש התאמת קידומת בין כתובת ה-IPv6 שצוינה לבין אחת מכתובות ה-IPv6 שהוגדרו באופן מקומי.
פרטים | |||
---|---|---|---|
פרמטרים |
|
||
החזרות |
true אם נמצאה התאמה מוצלחת, אחרת כ-false.
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
יצירת אובייקט RawEndPoint חדש לגרסה ולפרוטוקול של IP ספציפיים.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
מוחזר ערכים |
|
NewTCPEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
יצירת אובייקט TCPEndPoint חדש.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
מוחזר ערכים |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
יצירת אובייקט TunEndPoint חדש.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
מוחזר ערכים |
|
NewUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
יצירת אובייקט UDPEndPoint חדש.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
מוחזר ערכים |
|
PrepareSelect
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
צריך להכין את הקבוצות של מתארי הקבצים כדי לעבוד איתם ב-select()
.
פרטים | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
צריך לקבוע את רזולוציית כתובת ה-IP של שם המארח שצוין.
פרטים | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||||||||
מוחזר ערכים |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
צריך לקבוע את רזולוציית כתובת ה-IP של שם המארח שצוין.
פרטים | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||||||||
מוחזר ערכים |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
צריך לקבוע את רזולוציית כתובת ה-IP של שם המארח שצוין.
פרטים | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||||||||
מוחזר ערכים |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
הפעולה הזו מגדירה את נתוני הפלטפורמה הספציפיים ללקוח שצוינו למכונה כדי לאחזר מאוחר יותר על ידי פלטפורמת הלקוח.
פרטים | |||
---|---|---|---|
פרמטרים |
|
כיבוי
INET_ERROR Shutdown( void )
זהו ה-deinitialiייזר הבוטה InetLayer, ויש לקרוא לו לפני השמטת מכונת InetLayer שנוצרת.
הפלטפורמות יכולות לבחור להצהיר על INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS בכותרת התצורה הספציפית לפלטפורמה שלהן ולהפעיל את Platform::InetLayer::WillShutdown ו-Platform::InetLayer::Diddown hooks כדי לבצע ניקוי של התאמות אישיות ספציפיות לפלטפורמה או תוספי נתונים ל-InetLayer.
פרטים | |
---|---|
החזרות |
INET_NO_ERROR להצלחה; אחרת, שגיאה ספציפית שמציינת את הסיבה לכשל בכיבוי.
|
SystemLayer
Weave::System::Layer * SystemLayer( void ) const
פונקציות סטטיות ציבוריות
HandleInetLayerEvent
Weave::System::Error HandleInetLayerEvent( Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument )
IsDroppableEvent
bool IsDroppableEvent( Weave::System::EventType aType )