nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
وتوفر هذه الخدمة الوصول إلى خدمات الإنترنت، بما في ذلك الموقّتات والتحويل باستخدام نظام أسماء النطاقات (DNS) ونقل شبكة TCP ونقل شبكة UDP ونقل الشبكة الأوليّ في سلسلة محادثات واحدة.
الملخّص
بالنسبة إلى مقابس BSD/POSIX، يتم التعامل مع إشعار جاهزية الحدث من خلال واصفات الملفات واستطلاع تقليدي / اختيار التنفيذ على تكييف النظام الأساسي.
بالنسبة إلى LwIP، يتم التعامل مع إشعار جاهزية الحدث عبر الأحداث / الرسائل والخطوط الجانبية الخاصة بالنظام والنظام لنظام الرسائل / الأحداث.
الماكينات والبناء |
|
---|---|
InetLayer(void)
هذه هي طريقة الإنشاء التلقائية InetLayer.
|
الأنواع المتاحة للجميع |
|
---|---|
@5{
|
تعداد الحالة الحالية للكائن InetLayer. |
DNSResolveCompleteFunct
|
typedefDNSResolver::OnResolveCompleteFunct
|
السمات العامة |
|
---|---|
State
|
enum nl::Inet::InetLayer::@5
الحالة الحالية للكائن InetLayer.
|
السمات الثابتة العلنية |
|
---|---|
sInetEventHandlerDelegate
|
وظائف عامة |
|
---|---|
CanEnqueueDroppableEvent(void)
|
bool
|
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
|
void
ألغِ أي طلب بحث لنظام أسماء النطاقات معلق (لمعاودة الاتصال بإكمال الطلب وحالة التطبيق) قد يظل نشطًا.
|
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
التعامل مع مؤتمر I/O من مكالمة محددة
|
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
|
الولاية التي تم فيها تشغيل الإغلاق. |
DNSSolveCompleteFunct
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
السمات العامة
الولاية
enum nl::Inet::InetLayer::@5 State
الحالة الحالية للكائن InetLayer.
[READ-ONLY] الحالة الحالية
السمات الثابتة العلنية
SInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
وظائف عامة
حدث CanEnqueueDroppable
bool CanEnqueueDroppableEvent( void )
الإلغاء على HostHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
ألغِ أي طلب بحث لنظام أسماء النطاقات معلق (لمعاودة الاتصال بإكمال الطلب وحالة التطبيق) قد يظل نشطًا.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
الحصول على واجهة جديدة
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
احصل على معرّف الواجهة لعنوان IP المحدد.
إذا تعذر اشتقاق معرّف الواجهة، يتم تعيينه على INET_NULL_INTERFACEID.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
المرتجعات |
INET_NO_ERROR بدون شرط.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
احصل على عنوان IPv6 المحلي للرابط للرابط أو الواجهة المحدَّدة.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||||
قيم الإرجاع |
|
الحصول على بيانات النظام الأساسي
void * GetPlatformData( void )
يؤدي هذا إلى عرض أي بيانات نظام أساسي خاصة بالعميل تم تحديدها للمثيل، إذا تم تحديدها من قبل.
التفاصيل | |
---|---|
المرتجعات |
بيانات النظام الأساسي الخاصة بالعميل، إذا تم تحديدها من قبل، أو NULL.
|
نتيجة الحساب
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
التعامل مع مؤتمر I/O من مكالمة محددة
تُسجِّل هذه الطريقة حدث I/O في انتظار المراجعة في كل نقطة نهاية نشطة، ثم تستدعي دوال معالجة الإدخال/الإخراج ذات الصلة لنقاط النهاية هذه.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
طبقة داخلية
InetLayer( void )
هذه هي طريقة الإنشاء التلقائية InetLayer.
إنها تجري بعض الإعداد الأساسي لعضو البيانات، ولكن بما أنّ InetLayer تتّبع نمطًا صريحًا لنمط المُنشئ، يجب استدعاء طريقة InetLayer::Init بنجاح قبل استخدام الكائن.
إنيت
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
هذه هي أداة الإعداد الصريح لـ InetLayer.
يجب استدعاء هذه الخاصية وإكمالها بنجاح قبل استخدام InetLayer.
قد يقدم المتصل وسيطة اختيارية للسياق والتي سيتم تمريرها عبر أي وظائف خطاف خاصة بالنظام الأساسي. بالنسبة إلى عمليات الضبط المستندة إلى LwIP، يكون هذا عادةً مؤشرًا على قائمة انتظار الأحداث المرتبطة بمثيل InetLayer.
قد تختار الأنظمة الأساسية تأكيد INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS في عنوان الضبط الخاص بالنظام الأساسي وتفعيل النظام الأساسي::InetLayer::DoesInit وPlatform::InetLayer::DoesInit هزات التأثير في التخصيصات الخاصة بالنظام الأساسي أو إضافات البيانات إلى InetLayer.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||||
قيم الإرجاع |
|
حد InitQueue
INET_ERROR InitQueueLimiter( void )
مطابقة LocalLocalv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
تحقَّق من وجود تطابق بادئة بين عنوان IPv6 المحدّد وأي من عناوين IPv6 التي تم ضبطها محليًا.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
المرتجعات |
صحيح إذا تم العثور على تطابق ناجح، أو خطأ.
|
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 جديد.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||
قيم الإرجاع |
|
نقطة بداية جديدة
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
تنشئ الكائن UDPEndPoint الجديد.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||
قيم الإرجاع |
|
تحضير التحديد
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
وعليك إعداد مجموعات أدوات وصف الملفات لتعمل select()
معها.
التفاصيل | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
تحليل عنوان المضيف
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
نفِّذ درجة دقة لعنوان IP لاسم المضيف المحدد.
التفاصيل | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||||||||||||
قيم الإرجاع |
|
تحليل عنوان المضيف
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
نفِّذ درجة دقة لعنوان IP لاسم المضيف المحدد.
التفاصيل | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||||||||||||
قيم الإرجاع |
|
تحليل عنوان المضيف
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
نفِّذ درجة دقة لعنوان IP لاسم المضيف المحدد.
التفاصيل | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||||||||||||
قيم الإرجاع |
|
بيانات النظام الأساسي
void SetPlatformData( void *aPlatformData )
يحدّد هذا الإعداد بيانات النظام الأساسي المحدّدة للعميل إلى المثيل المناسب لاسترجاعها لاحقًا من خلال النظام الأساسي للعميل.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
إيقاف التشغيل
INET_ERROR Shutdown( void )
هذا هو مُنشئ InetLayer الصريح ويجب استدعاؤه قبل التخلص من مثيل InetLayer الذي تم إنشاء مثيل له.
قد تختار الأنظمة الأساسية تأكيد INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS في عنوان الإعدادات الخاصة بالنظام الأساسي وتفعيل النظام الأساسي::InetLayer::DoesShutdown وPlatform::InetLayer::DoesShutdown لتتمكّن من إزالة البرامج المخصّصة لعمليات التخصيص أو إضافات البيانات لـ InetLayer.
التفاصيل | |
---|---|
المرتجعات |
INET_NO_ERROR على مستوى النجاح، أو حدث خطأ محدد يشير إلى سبب إخفاق الإغلاق.
|
طبقة النظام
Weave::System::Layer * SystemLayer( void ) const
الدوال الثابتة العامة
حدث HandleInetLayer
Weave::System::Error HandleInetLayerEvent( Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument )
حدث isDroppable
bool IsDroppableEvent( Weave::System::EventType aType )