nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
Gli oggetti di questa classe rappresentano endpoint di protocollo IP non attendibili.
Riepilogo
Eredità
Eredita da: nl::Inet::EndPointBasisSottoclassi note dirette:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Tipi pubblici |
|
---|---|
@8{
|
enum Stato dinamico di base dell'endpoint sottostante. |
@9{
|
enum Flag di opzione di trasmissione per il metodo SendMsg . |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
tipodefvoid(*
Tipo di funzione di gestione degli eventi di ricezione del testo del messaggio. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
tipodefvoid(*
Tipo di funzione di gestione degli eventi di errore di ricezione. |
Attributi pubblici |
|
---|---|
OnMessageReceived
|
La funzione di gestione degli eventi di ricezione dei messaggi dell'endpoint.
|
OnReceiveError
|
L'endpoint riceve una delega per la funzione di gestione degli eventi di errore.
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
Stato dinamico di base dell'endpoint sottostante.
|
Attributi protetti |
|
---|---|
mBoundIntfId
|
InterfaceId
|
Funzioni pubbliche |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Partecipa a un gruppo multicast IP.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Lascia un gruppo multicast IP.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Specifica se il traffico multicast di IP deve essere eseguito in loop.
|
Funzioni protette |
|
---|---|
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)
|
Funzioni pubbliche pubbliche |
|
---|---|
FindNetifFromInterfaceId(InterfaceId aInterfaceId)
|
struct netif *
|
Funzioni statiche protette |
|
---|---|
GetPacketInfo(Weave::System::PacketBuffer *buf)
|
Recupera le informazioni sull'indirizzo di destinazione e sull'origine del livello IP LwIP.
|
Tipi pubblici
@8
@8
Stato dinamico di base dell'endpoint sottostante.
Gli oggetti vengono inizializzati nello stato "pronto", passa allo stato "riportato" dopo l'associazione a un indirizzo di interfaccia locale, quindi passa allo stato "ascolto" quando sono registrate continuazioni per la gestione degli eventi di ricezione dei messaggi ICMP.
Nota: l'enumerazione dello stato kBasisState_Closed
è mappata a kState_Ready
per motivi storici di compatibilità binaria. L'elemento kState_Closed
esistente esiste per identificare separatamente la differenza tra "non ancora aperto" e "precedentemente aperto" ora chiuso in precedenza negli stati di kState_Ready
e kState_Closed
.
Proprietà | |
---|---|
kState_Bound
|
Limite degli endpoint, ma non ascolto. |
kState_Closed
|
Endpoint chiuso, pronto per la release. |
kState_Listening
|
Endpoint che ricevono datagrammi. |
kState_Ready
|
Endpoint inizializzato, ma non aperto. |
@9
@9
Flag di opzione di trasmissione per il metodo SendMsg
.
Proprietà | |
---|---|
kSendFlag_RetainBuffer
|
Non mettere in coda il messaggio direttamente in modo distruttivo. Metti in coda una copia. |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
Tipo di funzione di gestione degli eventi di ricezione del testo del messaggio.
Fornisci una funzione di questo tipo al membro delegato di OnMessageReceived
per l'elaborazione degli eventi di ricezione del messaggio di endPoint
, dove msg
è il testo del messaggio ricevuto dal mittente al numero senderAddr
.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
Tipo di funzione di gestione degli eventi di errore di ricezione.
Fornisci una funzione di questo tipo al membro delegato di OnReceiveError
affinché elabori gli eventi di errore di ricezione su endPoint
. L'argomento err
fornisce dettagli specifici sul tipo di errore.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
Attributi pubblici
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
La funzione di gestione degli eventi di ricezione dei messaggi dell'endpoint.
Errore ricezione
OnReceiveErrorFunct OnReceiveError
L'endpoint riceve una delega per la funzione di gestione degli eventi di errore.
Stato lontano
enum nl::Inet::IPEndPointBasis::@8 mState
Stato dinamico di base dell'endpoint sottostante.
Gli oggetti vengono inizializzati nello stato "pronto", passa allo stato "riportato" dopo l'associazione a un indirizzo di interfaccia locale, quindi passa allo stato "ascolto" quando sono registrate continuazioni per la gestione degli eventi di ricezione dei messaggi ICMP.
Nota: l'enumerazione dello stato kBasisState_Closed
è mappata a kState_Ready
per motivi storici di compatibilità binaria. L'elemento kState_Closed
esistente esiste per identificare separatamente la differenza tra "non ancora aperto" e "precedentemente aperto" ora chiuso in precedenza negli stati di kState_Ready
e kState_Closed
.
Attributi protetti
mBoundIntfId
InterfaceId mBoundIntfId
Funzioni pubbliche
Unisciti a MulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Partecipa a un gruppo multicast IP.
Unisci l'endpoint al gruppo multicast fornito sull'interfaccia specificata.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori di ritorno |
|
AbbandonaGruppoMulticast
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Lascia un gruppo multicast IP.
Rimuovi l'endpoint dal gruppo multicast fornito sull'interfaccia specificata.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori di ritorno |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Specifica se il traffico multicast di IP deve essere eseguito in loop.
Stabilisci se il traffico multicast di IP deve essere loopato a questo endpoint.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori di ritorno |
|
Funzioni protette
Associa
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 )
Iniziale
void Init( InetLayer *aInetLayer )
Preparazione
SocketEvents PrepareIO( void )
Invia messaggio
INET_ERROR SendMsg( const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags )
Funzioni pubbliche pubbliche
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
Funzioni statiche protette
InfoPacket
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
Recupera le informazioni sull'indirizzo di destinazione e sull'origine del livello IP LwIP.
Quando si utilizzano le informazioni LwIP sul pacchetto è 'nascosta' nello spazio riservato prima dell'inizio dei dati nel buffer. Ciò è necessario perché gli eventi del livello di sistema hanno solo due argomenti, che in questo caso vengono utilizzati per comunicare il puntatore al punto finale e il puntatore al buffer.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
Un suggerimento sulle informazioni relative all'indirizzo, altrimenti NULL se non è presente spazio sufficiente nel pacchetto per le informazioni sull'indirizzo.
|
Nella maggior parte dei casi, questo imbroglio di memorizzare informazioni prima che i dati funzionino perché il primo buffer in un messaggio IP LwIP contiene lo spazio utilizzato per le intestazioni Ethernet/IP/UDP. Tuttavia, date le dimensioni attuali della struttura IPPacketInfo (40 byte), è possibile che non ci sia spazio sufficiente per archiviare la struttura insieme al payload in un singolo buffer di pacchetto. In pratica, questo dovrebbe accadere solo per i pacchetti IPv4 molto grandi che arrivano senza un'intestazione Ethernet.