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 do rozdzielenia rozróżnienia 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.