nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
تمثّل الكائنات من هذه الفئة نقاط نهاية غير قابلة للاستعانة ببروتوكول IP.
ملخّص
الاكتساب
يتم اكتسابه من: nl::Inet::EndPointBasisالفئات الفرعية المعروفة المباشرة:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
الأنواع العامة |
|
---|---|
@8{
|
تعداد الحالة الديناميكية الأساسية لنقطة النهاية الأساسية. |
@9{
|
تعداد إرسال علامات الخيارات لطريقة SendMsg . |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
تعريف الكتابةvoid(*
نوع وظيفة معالجة حدث استقبال نص الرسالة. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
تعريف الكتابةvoid(*
نوع وظيفة معالجة حدث خطأ الاستقبال. |
السمات العامة |
|
---|---|
OnMessageReceived
|
تفويض وظيفة معالجة حدث استلام رسالة نقطة النهاية
|
OnReceiveError
|
تفويض وظيفة معالجة حدث الخطأ في نقطة النهاية.
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.
|
السمات المحمية |
|
---|---|
mBoundIntfId
|
InterfaceId
|
وظائف عامة |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
انضم إلى مجموعة بث متعدّد عناوين IP.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
مغادرة مجموعة بث متعدّد عناوين 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)
|
الحصول على معلومات عن مصدر طبقة IP لبروتوكول LwIP وعن الوجهة
|
الأنواع العامة
8
@8
الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.
يتم إعداد العناصر في حالة "جاهز" انتقل إلى علامة التبويب "bound" بعد الربط بعنوان واجهة محلية، ثم انتقِل إلى زر "الاستماع" عند تسجيل عمليات الاستمرار لمعالجة الأحداث لاستقبال رسائل بروتوكول رسائل التحكّم في الإنترنت (ICMP).
ملاحظة: يتم ربط التعداد على مستوى الحالة kBasisState_Closed
بـ kState_Ready
لأسباب سابقة تتعلّق بالتوافق الثنائي. تهدف kState_Closed
الحالية إلى تحديد الفرق بين "لم يتم فتحه بعد" بشكل منفصل. و"سبق أن تم فتحها
مغلق الآن" التي كانت متوفّرة سابقًا في الحالتين kState_Ready
وkState_Closed
.
أماكن إقامة | |
---|---|
kState_Bound
|
تم تضمين نقطة النهاية، ولكن لا يمكن الاستماع إليها. |
kState_Closed
|
تم إغلاق نقطة النهاية وأصبحت جاهزة للإصدار. |
kState_Listening
|
نقطة نهاية تتلقى مخططات البيانات. |
kState_Ready
|
تم إعداد نقطة النهاية، ولكن لم يتم فتحها. |
9@
@9
إرسال علامات الخيارات لطريقة SendMsg
.
أماكن إقامة | |
---|---|
kSendFlag_RetainBuffer
|
عدم التسبب في تلف الرسالة مباشرةً في قائمة الانتظار. ضَع نسخة في قائمة المحتوى التالي. |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
نوع وظيفة معالجة حدث استقبال نص الرسالة.
توفير وظيفة من هذا النوع للعضو المفوَّض في OnMessageReceived
لمعالجة أحداث استلام الرسائل النصية في endPoint
حيث يكون msg
هو نص الرسالة المُستلَمة من المُرسِل على senderAddr
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
نوع وظيفة معالجة حدث خطأ الاستقبال.
يتم توفير وظيفة من هذا النوع للعضو المفوَّض في OnReceiveError
لمعالجة أحداث خطأ الاستقبال في endPoint
. توفّر الوسيطة err
تفاصيل محدّدة حول نوع الخطأ.
التفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
السمات العامة
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
تفويض وظيفة معالجة حدث استلام رسالة نقطة النهاية
mState
enum nl::Inet::IPEndPointBasis::@8 mState
الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.
يتم إعداد العناصر في حالة "جاهز" انتقل إلى علامة التبويب "bound" بعد الربط بعنوان واجهة محلية، ثم انتقِل إلى زر "الاستماع" عند تسجيل عمليات الاستمرار لمعالجة الأحداث لاستقبال رسائل بروتوكول رسائل التحكّم في الإنترنت (ICMP).
ملاحظة: يتم ربط التعداد على مستوى الحالة kBasisState_Closed
بـ kState_Ready
لأسباب سابقة تتعلّق بالتوافق الثنائي. تهدف kState_Closed
الحالية إلى تحديد الفرق بين "لم يتم فتحه بعد" بشكل منفصل. و"سبق أن تم فتحها
مغلق الآن" التي كانت متوفّرة سابقًا في الحالتين kState_Ready
وkState_Closed
.
السمات المحمية
mBoundIntfId
InterfaceId mBoundIntfId
وظائف عامة
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
انضم إلى مجموعة بث متعدّد عناوين IP.
انضم إلى نقطة النهاية في مجموعة البث المتعدد المقدّمة على الواجهة المحددة.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلمات |
|
||||||||
قيم الإرجاع |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
مغادرة مجموعة بث متعدّد عناوين IP.
إزالة نقطة النهاية من مجموعة البث المتعدد المقدّمة على الواجهة المحددة
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلمات |
|
||||||||
قيم الإرجاع |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
يمكنك تحديد ما إذا كان يجب تكرار حركة بيانات البث المتعدد لعناوين IP مرة أخرى.
حدِّد ما إذا كان يجب تكرار حركة بيانات البث المتعدد لعناوين IP إلى نقطة النهاية هذه أم لا.
التفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
||||
قيم الإرجاع |
|
الدوال المحمية
الارتباط
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 )
الحصول على معلومات عن مصدر طبقة IP لبروتوكول LwIP وعن الوجهة
"مخفية" عند استخدام معلومات LwIP حول الحزمة في المساحة المحجوزة قبل بدء البيانات في المخزن المؤقت للحزم. وهذا أمر ضروري لأن أحداث طبقة النظام لا تحتوي إلا على وسيطتين، ويتم استخدامهما في هذه الحالة لنقل المؤشر إلى نقطة النهاية والمؤشر إلى المخزن المؤقت.
التفاصيل | |||
---|---|---|---|
المعلمات |
|
||
المرتجعات |
مؤشر إلى معلومات العنوان عند النجاح بخلاف ذلك، NULL إذا لم تكن هناك مساحة كافية في الحزمة لمعلومات العنوان.
|
في معظم الحالات، هذه الخدعة الخاصة بتخزين المعلومات قبل نجاح البيانات تعمل لأن المخزن المؤقت الأول في رسالة IP LwIP يحتوي على المساحة المستخدمة لعناوين Ethernet/IP/UDP. ومع ذلك، ونظرًا للحجم الحالي لبنية IPPacketInfo (40 بايت)، قد لا تكون هناك مساحة كافية لتخزين البنية مع الحمولة في مخزن تخزين مؤقت واحد للحزمة. من الناحية العملية، من المفترض أن يحدث هذا فقط لحزم IPv4 الكبيرة جدًا التي تصل بدون رأس Ethernet.