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)
|
typedefvoid(*
نوع وظيفة معالجة حدث استقبال نص الرسالة |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
نوع وظيفة التعامل مع حدث خطأ الاستقبال |
السمات العامة |
|
---|---|
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
الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.
يتم إعداد العناصر في حالة "جاهزة"، ثم المتابعة إلى حالة "مرتبط" بعد الربط بعنوان واجهة محلّية، ثم المتابعة إلى حالة "الاستماع" عندما تكون هناك حالات مواصلة تسجيل معالجة الأحداث لتلقّي رسائل بروتوكول رسائل التحكّم في الإنترنت (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
الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.
يتم إعداد العناصر في حالة "جاهزة"، ثم المتابعة إلى حالة "مرتبط" بعد الربط بعنوان واجهة محلّية، ثم المتابعة إلى حالة "الاستماع" عندما تكون هناك حالات مواصلة تسجيل معالجة الأحداث لتلقّي رسائل بروتوكول رسائل التحكّم في الإنترنت (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 )
إنت
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 الخاصة بالحزمة، تكون "مخفية" في المساحة المحجوزة قبل بدء البيانات في المخزن المؤقت للحزم. وهذا ضروري لأن أحداث طبقة النظام لا تحتوي إلا على وسيطتين فقط، واللذين يُستخدَمان في هذه الحالة لنقل المؤشر إلى نقطة النهاية والمؤشر إلى المخزن المؤقت.
التفاصيل | |||
---|---|---|---|
المَعلمات |
|
||
المرتجعات |
مؤشر إلى معلومات العنوان عند النجاح؛ وإلا، تصبح فارغة إذا لم تكن هناك مساحة كافية في الحزمة لمعلومات العنوان.
|
في معظم الحالات، تعمل خدعة تخزين المعلومات هذه قبل البيانات لأن المخزن المؤقت الأول في رسالة LwIP IP يحتوي على المساحة التي تم استخدامها لعناوين Ethernet/IP/UDP. ومع ذلك، نظرًا للحجم الحالي لبنية IPPacketInfo (40 بايت)، من الممكن ألا تكون هناك مساحة كافية لتخزين البنية مع الحمولة في المخزن المؤقت للحزمة الواحدة. من الناحية العملية، من المفترض أن يحدث ذلك فقط مع حزم IPv4 الكبيرة للغاية التي تصل بدون رأس Ethernet.