nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
Obiekty tej klasy reprezentują punkty końcowe protokołu IP, które nie są natychmiastowe.
Podsumowanie
Dziedziczenie
Dziedziczy z: nl::Inet::EndPointBasisBezpośrednie znane podklasy:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Typy publiczne |
|
---|---|
@8{
|
enum | typ wyliczeniowy Podstawowy stan dynamiczny bazowego punktu końcowego. |
@9{
|
enum | typ wyliczeniowy Przesyłaj flagi opcji dla metody SendMsg . |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Typ funkcji obsługi zdarzeń odbioru tekstu wiadomości. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Typ funkcji obsługi zdarzeń błędu odbioru. |
Atrybuty publiczne |
|
---|---|
OnMessageReceived
|
Delegowanie funkcji obsługi zdarzeń odbioru wiadomości punktu końcowego.
|
OnReceiveError
|
Delegacja funkcji obsługi zdarzeń błędów punktu końcowego.
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
Podstawowy stan dynamiczny bazowego punktu końcowego.
|
Atrybuty chronione |
|
---|---|
mBoundIntfId
|
InterfaceId
|
Funkcje publiczne |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Dołącz do grupy multiemisji IP.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Opuść grupę multiemisji IP.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Określ, czy ruch multiemisji IP ma być zapętlony.
|
Funkcje chronione |
|
---|---|
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)
|
Publiczne funkcje statyczne |
|
---|---|
FindNetifFromInterfaceId(InterfaceId aInterfaceId)
|
struct netif *
|
Chronione funkcje statyczne |
|
---|---|
GetPacketInfo(Weave::System::PacketBuffer *buf)
|
Uzyskiwanie informacji o źródle i adresie docelowym warstwy IP LwIP.
|
Typy publiczne
@8
@8
Podstawowy stan dynamiczny bazowego punktu końcowego.
Obiekty są inicjowane w stanie „ready” przejdź do sekcji „wiąż” po utworzeniu powiązania z lokalnym adresem interfejsu, a następnie przejdź do sekcji „nasłuchiwanie” gdy mają zarejestrowane kontynuacje obsługi zdarzeń na potrzeby odbierania wiadomości ICMP.
Uwaga: ze względu na historyczne przyczyny zgodności plików binarnych wyliczenie stanu kBasisState_Closed
jest mapowane na wartość kState_Ready
. Istniejący kState_Closed
istnieje, aby osobno identyfikować różnicę między stanem „Jeszcze nieotwarte” i „wcześniej otwarty
zamknięte” które wcześniej istniały w stanach kState_Ready
i kState_Closed
.
Właściwości | |
---|---|
kState_Bound
|
Punkt końcowy jest powiązany, ale nie nasłuchuje. |
kState_Closed
|
Punkt końcowy jest zamknięty, gotowy do wersji. |
kState_Listening
|
Datagramy odbierające punkt końcowy. |
kState_Ready
|
Punkt końcowy został zainicjowany, ale nie jest otwarty. |
@9
@9
Przesyłaj flagi opcji dla metody SendMsg
.
Właściwości | |
---|---|
kSendFlag_RetainBuffer
|
Nie umieszczaj wiadomości w kolejce w sposób destrukcyjny. Dodaj kopię do kolejki. |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
Typ funkcji obsługi zdarzeń odbioru tekstu wiadomości.
Udostępnij tę funkcję osobie z przekazanym dostępem do OnMessageReceived
, aby umożliwić przetwarzanie zdarzeń odbierania tekstu wiadomości w domenie endPoint
, gdzie msg
to tekst wiadomości otrzymany od nadawcy w domenie senderAddr
.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
Typ funkcji obsługi zdarzeń błędu odbioru.
Zapewnij funkcję tego typu członkowi przedstawiciela OnReceiveError
, aby mógł przetwarzać zdarzenia błędów odbierania w systemie endPoint
. Argument err
zawiera szczegółowe informacje na temat typu błędu.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
Atrybuty publiczne
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
Delegowanie funkcji obsługi zdarzeń odbioru wiadomości punktu końcowego.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
Delegacja funkcji obsługi zdarzeń błędów punktu końcowego.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
Podstawowy stan dynamiczny bazowego punktu końcowego.
Obiekty są inicjowane w stanie „ready” przejdź do sekcji „wiąż” po utworzeniu powiązania z lokalnym adresem interfejsu, a następnie przejdź do sekcji „nasłuchiwanie” gdy mają zarejestrowane kontynuacje obsługi zdarzeń na potrzeby odbierania wiadomości ICMP.
Uwaga: ze względu na historyczne przyczyny zgodności plików binarnych wyliczenie stanu kBasisState_Closed
jest mapowane na wartość kState_Ready
. Istniejący kState_Closed
istnieje, aby osobno identyfikować różnicę między stanem „Jeszcze nieotwarte” i „wcześniej otwarty
zamknięte” które wcześniej istniały w stanach kState_Ready
i kState_Closed
.
Atrybuty chronione
mBoundIntfId
InterfaceId mBoundIntfId
Funkcje publiczne
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Dołącz do grupy multiemisji IP.
Dołącz punkt końcowy do podanej grupy multicast w określonym interfejsie.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Opuść grupę multiemisji IP.
Usuń punkt końcowy z podanej grupy multicast w określonym interfejsie.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Określ, czy ruch multiemisji IP ma być zapętlony.
Określ, czy ruch multiemisji IP ma być zapętlony z powrotem do tego punktu końcowego.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
||||
Zwracane wartości |
|
Funkcje chronione
Powiąż
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 )
Publiczne funkcje statyczne
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
Chronione funkcje statyczne
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
Uzyskiwanie informacji o źródle i adresie docelowym warstwy IP LwIP.
Jeśli informacje o pakiecie LwIP są ukryte, w zarezerwowanej przestrzeni przed rozpoczęciem danych w buforze pakietów. Jest to konieczne, ponieważ zdarzenia warstwy systemowej mają tylko 2 argumenty, które w tym przypadku służą do przekazywania wskaźnika do punktu końcowego i bufora.
Szczegóły | |||
---|---|---|---|
Parametry |
|
||
Zwroty |
wskaźnik do danych adresowych w razie powodzenia; jeśli jest za mało miejsca w pakiecie na informacje adresowe, zwraca wartość NULL.
|
W większości przypadków ta metoda przechowywania informacji przed ich przekazaniem działa, ponieważ pierwszy bufor w wiadomości IP LwIP zawiera miejsce wykorzystane na nagłówki Ethernet/IP/UDP. Jednak ze względu na obecny rozmiar struktury IPPacketInfo (40 bajtów) może się okazać, że nie ma dość miejsca, by przechowywać strukturę wraz z ładunkiem w pojedynczym buforze pakietów. W praktyce powinno się to zdarzyć tylko w przypadku skrajnie dużych pakietów IPv4, które przychodzą bez nagłówka Ethernet.