nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
Objekte dieser Klasse stellen nicht instanziierbare IP-Protokollendpunkte dar.
Zusammenfassung
Übernahme
Übernimmt von: nl::Inet::EndPointBasisDirekte bekannte abgeleitete Klassen:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Öffentliche Typen |
|
---|---|
@8{
|
enum Grundlegender dynamischer Zustand des zugrunde liegenden Endpunkts. |
@9{
|
enum Options-Flags für die Methode SendMsg übertragen. |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedef.void(*
Typ der Funktion zur Verarbeitung von Nachrichtentextempfangsereignissen. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedef.void(*
Typ der Verarbeitungsfunktion für Empfangsfehlerereignisse. |
Öffentliche Attribute |
|
---|---|
OnMessageReceived
|
Delegat der Funktion zur Verarbeitung von Nachrichtenempfangsereignissen des Endpunkts.
|
OnReceiveError
|
Delegierter der Funktion für die Verarbeitung von Fehlern im Empfangsfehler des Endpunkts.
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
Grundlegender dynamischer Zustand des zugrunde liegenden Endpunkts.
|
Geschützte Attribute |
|
---|---|
mBoundIntfId
|
InterfaceId
|
Öffentliche Funktionen |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Treten Sie einer IP-Multicast-Gruppe bei.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Verlassen Sie eine IP-Multicast-Gruppe.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Legen Sie fest, ob IP-Multicast-Traffic zurückgeleitet werden soll.
|
Geschützte Funktionen |
|
---|---|
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)
|
Öffentliche statische Funktionen |
|
---|---|
FindNetifFromInterfaceId(InterfaceId aInterfaceId)
|
struct netif *
|
Geschützte statische Funktionen |
|
---|---|
GetPacketInfo(Weave::System::PacketBuffer *buf)
|
Rufen Sie Informationen zur Quell- und Zieladressierung der LwIP-IP-Ebene ab.
|
Öffentliche Typen
8
@8
Grundlegender dynamischer Zustand des zugrunde liegenden Endpunkts.
Objekte werden im Status „ready“ (bereit) initialisiert. weiter zur "Grenze" nach der Bindung an eine lokale Schnittstellenadresse, und fahren Sie dann mit dem wenn Fortsetzungen für die Verarbeitung von Ereignissen zum Empfang von ICMP-Nachrichten registriert sind.
Hinweis:Die Aufzählung kBasisState_Closed
ist aus Gründen der Kompatibilität mit Binärprogrammen kState_Ready
zugeordnet. Die vorhandene kState_Closed
existiert, um die Unterscheidung zwischen „Noch nicht geöffnet“ separat zu erkennen und „zuvor geöffnet
jetzt geschlossen“ die zuvor in den Zuständen kState_Ready
und kState_Closed
vorhanden waren.
Attribute | |
---|---|
kState_Bound
|
Endpunkt gebunden, aber hört nicht zu. |
kState_Closed
|
Endpunkt geschlossen, bereit für Release. |
kState_Listening
|
Endpunkt, der Datagramme empfängt. |
kState_Ready
|
Endpunkt initialisiert, aber nicht geöffnet. |
@9
@9
Options-Flags für die Methode SendMsg
übertragen.
Attribute | |
---|---|
kSendFlag_RetainBuffer
|
Die Nachricht nicht direkt in die Warteschlange stellen. Stellen Sie eine Kopie in die Warteschlange. |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
Typ der Funktion zur Verarbeitung von Nachrichtentextempfangsereignissen.
Stellen Sie dem delegierten Mitglied OnMessageReceived
eine Funktion dieses Typs zur Verfügung, um Empfangsereignisse für Nachrichten in endPoint
zu verarbeiten, wobei msg
der vom Absender um senderAddr
empfangene Nachrichtentext ist.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
Typ der Verarbeitungsfunktion für Empfangsfehlerereignisse.
Stellen Sie dem delegierten OnReceiveError
-Mitglied eine Funktion dieses Typs zur Verfügung, um Empfangsfehlerereignisse in endPoint
zu verarbeiten. Das Argument err
liefert bestimmte Details zum Fehlertyp.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
Öffentliche Attribute
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
Delegat der Funktion zur Verarbeitung von Nachrichtenempfangsereignissen des Endpunkts.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
Delegierter der Funktion für die Verarbeitung von Fehlern im Empfangsfehler des Endpunkts.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
Grundlegender dynamischer Zustand des zugrunde liegenden Endpunkts.
Objekte werden im Status „ready“ (bereit) initialisiert. weiter zur "Grenze" nach der Bindung an eine lokale Schnittstellenadresse, und fahren Sie dann mit dem wenn Fortsetzungen für die Verarbeitung von Ereignissen zum Empfang von ICMP-Nachrichten registriert sind.
Hinweis:Die Aufzählung kBasisState_Closed
ist aus Gründen der Kompatibilität mit Binärprogrammen kState_Ready
zugeordnet. Die vorhandene kState_Closed
existiert, um die Unterscheidung zwischen „Noch nicht geöffnet“ separat zu erkennen und „zuvor geöffnet
jetzt geschlossen“ die zuvor in den Zuständen kState_Ready
und kState_Closed
vorhanden waren.
Geschützte Attribute
mBoundIntfId
InterfaceId mBoundIntfId
Öffentliche Funktionen
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Treten Sie einer IP-Multicast-Gruppe bei.
Verbinden Sie den Endpunkt mit der bereitgestellten Multicast-Gruppe auf der angegebenen Schnittstelle.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Verlassen Sie eine IP-Multicast-Gruppe.
Entfernen Sie den Endpunkt aus der bereitgestellten Multicast-Gruppe auf der angegebenen Schnittstelle.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Legen Sie fest, ob IP-Multicast-Traffic zurückgeleitet werden soll.
Legen Sie fest, ob IP-Multicast-Traffic zu diesem Endpunkt zurückgeleitet werden soll.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
Geschützte Funktionen
Binden
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 )
Öffentliche statische Funktionen
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
Geschützte statische Funktionen
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
Rufen Sie Informationen zur Quell- und Zieladressierung der LwIP-IP-Ebene ab.
Bei Verwendung von LwIP sind Informationen über das Paket „verborgen“ im reservierten Bereich vor dem Start der Daten im Paketzwischenspeicher. Dies ist notwendig, da die Ereignisse der Systemebene nur zwei Argumente haben, die in diesem Fall verwendet werden, um den Zeiger an den Endpunkt und den Zeiger an den Zwischenspeicher zu übergeben.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
einen Zeiger auf die Adressinformationen im Erfolgsfall; Andernfalls NULL, wenn im Paket nicht genügend Speicherplatz für die Adressinformationen vorhanden ist.
|
In den meisten Fällen funktioniert dieser Trick, Informationen vor den Daten zu speichern, da der erste Zwischenspeicher in einer LwIP-IP-Nachricht den für die Ethernet/IP/UDP-Header verwendeten Speicherplatz enthält. Angesichts der aktuellen Größe der IPPacketInfo-Struktur (40 Byte) ist es jedoch möglich, dass nicht genügend Platz vorhanden ist, um die Struktur zusammen mit der Nutzlast in einem einzelnen Paketpuffer zu speichern. In der Praxis sollte dies nur bei extrem großen IPv4-Paketen passieren, die ohne Ethernet-Header ankommen.