nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
Gli oggetti di questa classe rappresentano endpoint del protocollo IP non dimostrabili.
Riepilogo
Eredità
Eredita da: nl::Inet::EndPointBasisSottoclassi note direttamente:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Tipi pubblici |
|
---|---|
@8{
|
enum Stato dinamico di base dell'endpoint sottostante. |
@9{
|
enum Trasmetti flag di opzione per il metodo SendMsg . |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Tipo di funzione di gestione dell'evento di ricezione del testo del messaggio. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Tipo di funzione di gestione degli eventi di errore di ricezione. |
Attributi pubblici |
|
---|---|
OnMessageReceived
|
Il delegato della funzione di gestione dell'evento di ricezione dei messaggi dell'endpoint.
|
OnReceiveError
|
Il delegato della funzione di gestione degli eventi di errore di ricezione dell'endpoint.
|
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)
|
Abbandona un gruppo multicast IP.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Consente di impostare se il traffico multicast IP deve essere sottoposto a loopback.
|
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 statiche pubbliche |
|
---|---|
FindNetifFromInterfaceId(InterfaceId aInterfaceId)
|
struct netif *
|
Funzioni statiche protette |
|
---|---|
GetPacketInfo(Weave::System::PacketBuffer *buf)
|
Ottieni informazioni sugli indirizzi di origine e di destinazione del livello IP LwIP.
|
Tipi pubblici
@8
@8
Stato dinamico di base dell'endpoint sottostante.
Gli oggetti sono inizializzati nel campo lo stato precedente, procedi al "bound" dopo l'associazione a un indirizzo di interfaccia locale, quindi passa alla fase di "ascolto" se hanno continuazioni registrate per la gestione degli eventi per la ricezione di messaggi ICMP.
Nota: l'enumerazione dello stato kBasisState_Closed
è mappata a kState_Ready
per motivi storici di compatibilità binaria. L'elemento kState_Closed
esistente serve a identificare separatamente la distinzione tra "non ancora aperto" e "aperti in precedenza
chiuso" esistenti negli stati kState_Ready
e kState_Closed
.
Proprietà | |
---|---|
kState_Bound
|
Endpoint vincolato, ma non in ascolto. |
kState_Closed
|
Endpoint chiuso, pronto per il rilascio. |
kState_Listening
|
Endpoint che riceve datagrammi. |
kState_Ready
|
Endpoint inizializzato, ma non aperto. |
@9
@9
Trasmetti flag di opzione per il metodo SendMsg
.
Proprietà | |
---|---|
kSendFlag_RetainBuffer
|
Non mettere in coda direttamente il messaggio in modo distruttivo. Mettere in coda una copia. |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
Tipo di funzione di gestione dell'evento di ricezione del testo del messaggio.
Fornisci una funzione di questo tipo al membro delegato di OnMessageReceived
per elaborare gli eventi di ricezione del testo del messaggio il giorno endPoint
, dove msg
è il testo del messaggio ricevuto dal mittente all'indirizzo 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
per elaborare 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
Il delegato della funzione di gestione dell'evento di ricezione dei messaggi dell'endpoint.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
Il delegato della funzione di gestione degli eventi di errore di ricezione dell'endpoint.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
Stato dinamico di base dell'endpoint sottostante.
Gli oggetti sono inizializzati nel campo lo stato precedente, procedi al "bound" dopo l'associazione a un indirizzo di interfaccia locale, quindi passa alla fase di "ascolto" se hanno continuazioni registrate per la gestione degli eventi per la ricezione di messaggi ICMP.
Nota: l'enumerazione dello stato kBasisState_Closed
è mappata a kState_Ready
per motivi storici di compatibilità binaria. L'elemento kState_Closed
esistente serve a identificare separatamente la distinzione tra "non ancora aperto" e "aperti in precedenza
chiuso" esistenti negli stati kState_Ready
e kState_Closed
.
Attributi protetti
mBoundIntfId
InterfaceId mBoundIntfId
Funzioni pubbliche
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Partecipa a un gruppo multicast IP.
Unisci l'endpoint al gruppo multicast fornito nell'interfaccia specificata.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Abbandona un gruppo multicast IP.
Rimuovi l'endpoint dal gruppo multicast fornito nell'interfaccia specificata.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Consente di impostare se il traffico multicast IP deve essere sottoposto a loopback.
Imposta se il traffico multicast IP deve essere ripetuto o meno in questo endpoint.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
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 )
Init
void Init( InetLayer *aInetLayer )
PrepareIO
SocketEvents PrepareIO( void )
SendMsg
INET_ERROR SendMsg( const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags )
Funzioni statiche pubbliche
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
Funzioni statiche protette
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
Ottieni informazioni sugli indirizzi di origine e di destinazione del livello IP LwIP.
Quando si utilizzano le informazioni LwIP sul pacchetto sono "nascoste" nello spazio riservato prima dell'inizio dei dati nel buffer dei pacchetti. Questo è necessario perché gli eventi del livello di sistema hanno solo due argomenti, che in questo caso vengono utilizzati per trasmettere il puntatore al punto finale e il puntatore al buffer.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
un puntatore alle informazioni sull'indirizzo
se il cliente ha successo; altrimenti NULL se non c'è spazio sufficiente nel pacchetto per le informazioni sull'indirizzo.
|
Nella maggior parte dei casi questo trucco di memorizzare le informazioni prima che i dati funzioni perché il primo buffer di 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 pacchetti. In pratica, questo dovrebbe verificarsi solo per i pacchetti IPv4 molto grandi che arrivano senza un'intestazione Ethernet.