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
الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.
يتم إعداد العناصر بحالة "&&;;جاهزة&و;;;;للمتابعة", انتقل إلى الحالة "&&;;bound" ; بعد ربطها بعنوان واجهة محلية ثم تابع إلى الحالة "&&;&;;listing" عند تسجيلها تسلسلات للتعامل مع أحداث استقبال رسائل 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
.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلَمات |
|
OnReceivedErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
نوع وظيفة معالجة حدث الاستقبال.
يمكنك توفير وظيفة من هذا النوع لعضو مفوَّض OnReceiveError
لمعالجة أحداث خطأ الاستقبال في endPoint
. تقدم الوسيطة err
تفاصيل محددة حول نوع الخطأ.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
السمات العامة
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
مفوَّض وظيفة معالجة حدث استقبال الرسائل في "نقطة النهاية"
خطأ في الاستلام
OnReceiveErrorFunct OnReceiveError
يتلقّى مفوِّض نقطة النهاية "التعامل مع أحداث الخطأ"
mState
enum nl::Inet::IPEndPointBasis::@8 mState
الحالة الديناميكية الأساسية لنقطة النهاية الأساسية.
يتم إعداد العناصر بحالة "&&;;جاهزة&و;;;;للمتابعة", انتقل إلى الحالة "&&;;bound" ; بعد ربطها بعنوان واجهة محلية ثم تابع إلى الحالة "&&;&;;listing" عند تسجيلها تسلسلات للتعامل مع أحداث استقبال رسائل ICMP.
ملاحظة: يتم ربط تعداد kBasisState_Closed
بالقيمة kState_Ready
لأسباب تتعلّق بالتوافق الثنائي السابق. تهدف kState_Closed
الحالية إلى التمييز بشكلٍ منفصل بين &علامة التبويب التي لم يتم فتحها بعد&و;&وتم افتتاحها سابقًا
وهي مغلقة الآن&وعلى أنّها كانت في السابق في حالتَي kState_Ready
وkState_Closed
.
السمات المحمية
mBoundIntfId
InterfaceId mBoundIntfId
وظائف عامة
الانضمام إلى البث المتعدد
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
الانضمام إلى مجموعة بث IP متعدّد.
ضم نقطة النهاية إلى مجموعة البث المتعدد المُقدَّمة على الواجهة المحددة.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||||
قيم الإرجاع |
|
مغادرة البث المتعدد
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
مغادرة مجموعة بث متعدد لعناوين IP.
إزالة نقطة النهاية من مجموعة البث المتعدد التي تم توفيرها على الواجهة المحددة.
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلَمات |
|
||||||||
قيم الإرجاع |
|
ضبط MultiCastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
يمكنك تحديد ما إذا كان يجب تكرار زيارات البث المتعدد لعناوين IP.
يمكنك تحديد ما إذا كان يجب تكرار زيارات البث المتعدد لعناوين IP أم لا.
التفاصيل | |||||
---|---|---|---|---|---|
المعلَمات |
|
||||
قيم الإرجاع |
|
دوال محمية
تجميع
INET_ERROR Bind( IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId )
التجليد
INET_ERROR BindInterface( IPAddressType aAddressType, InterfaceId aInterfaceId )
GetSocket
INET_ERROR GetSocket( IPAddressType aAddressType, int aType, int aProtocol )
مقبض البيانات المُستلمة
void HandleDataReceived( Weave::System::PacketBuffer *aBuffer )
اسم الحساب في انتظار المراجعة
void HandlePendingIO( uint16_t aPort )
إنيت
void Init( InetLayer *aInetLayer )
التحضير
SocketEvents PrepareIO( void )
إرسال الرسالة
INET_ERROR SendMsg( const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags )
الدوال الثابتة العامة
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
دوال ثابتة محمية
الحصول على معلومات
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
يمكنك الحصول على معلومات عن مصدر عنوان IP ووجهة LwIP.
عند استخدام معلومات LwIP حول الحزمة في 'hidden' في المساحة المحجوزة قبل بدء البيانات في المخزن المؤقت للحزمة. ويُعدّ ذلك ضروريًا لأنّ أحداث طبقة النظام لا تتضمّن سوى وسيطتَين، يتم استخدامهما في هذه الحالة لنقل المؤشر إلى نقطة النهاية والمؤشر إلى المخزن المؤقت.
التفاصيل | |||
---|---|---|---|
المعلَمات |
|
||
المرتجعات |
يشير إلى معلومات العنوان بنجاح، وبخلاف ذلك، فارغ في حال عدم وجود مساحة كافية في الحزمة لمعلومات العنوان.
|
في معظم الحالات، تحتوي هذه الخدعة على تخزين المعلومات قبل عمل البيانات لأن المخزن المؤقت الأول في رسالة IP لـ LwIP يحتوي على المساحة التي تم استخدامها لعناوين إيثرنت/IP/UDP. ومع ذلك، بالنظر إلى الحجم الحالي للبنية IPPacketInfo (40 بايت)، من الممكن عدم وجود مساحة كافية لتخزين البنية مع الحمولة في المخزن المؤقت لحزمة واحدة. عمليًا، يجب أن يحدث ذلك فقط لحِزم IPv4 الكبيرة جدًا التي تصل بدون عنوان إيثرنت.