nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
Ciò consente di accedere a servizi internet, tra cui timer, risoluzione DNS (Domain Name System), trasporto di rete TCP, trasporto di rete UDP e trasporto di rete non elaborato, per un singolo thread.
Riepilogo
Per i socket BSD/POSIX, la notifica di idoneità degli eventi viene gestita tramite descrittori di file e un'implementazione poll / select tradizionale sull'adattamento della piattaforma.
Per LwIP, la notifica di idoneità degli eventi viene gestita tramite eventi / messaggi e hook specifici della piattaforma e del sistema per il sistema di eventi / messaggi.
Costruttori e distruttori |
|
---|---|
InetLayer(void)
Questo è il costruttore predefinito di InetLayer.
|
Tipi pubblici |
|
---|---|
@5{
|
enum Lo stato attuale dell'oggetto InetLayer. |
DNSResolveCompleteFunct
|
typedefDNSResolver::OnResolveCompleteFunct
|
Attributi pubblici |
|
---|---|
State
|
enum nl::Inet::InetLayer::@5
Lo stato attuale dell'oggetto InetLayer.
|
Attributi statici pubblici |
|
---|---|
sInetEventHandlerDelegate
|
Funzioni pubbliche |
|
---|---|
CanEnqueueDroppableEvent(void)
|
bool
|
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
|
void
Annulla qualsiasi query DNS in sospeso (per un callback di completamento corrispondente e lo stato dell'applicazione) che potrebbe essere ancora attiva.
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
Recupera l'identificatore di interfaccia per l'indirizzo IP specificato.
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
Recupera l'indirizzo IPv6 locale del collegamento per un collegamento o un'interfaccia specificati.
|
GetPlatformData(void)
|
void *
Questa operazione restituisce tutti i dati della piattaforma specifici del client assegnati all'istanza, se sono stati impostati in precedenza.
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
Gestire l'I/O di una chiamata selezionata.
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
Questo è l'inizializzatore esplicito di InetLayer.
|
InitQueueLimiter(void)
|
|
MatchLocalIPv6Subnet(const IPAddress & addr)
|
bool
Controlla se esiste una corrispondenza del prefisso tra l'indirizzo IPv6 specificato e uno degli indirizzi IPv6 configurati localmente.
|
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
|
Crea un nuovo oggetto RawEndPoint per una versione e un protocollo IP specifici.
|
NewTCPEndPoint(TCPEndPoint **retEndPoint)
|
Crea un nuovo oggetto TCPEndPoint.
|
NewTunEndPoint(TunEndPoint **retEndPoint)
|
Crea un nuovo oggetto TunEndPoint.
|
NewUDPEndPoint(UDPEndPoint **retEndPoint)
|
Crea un nuovo oggetto UDPEndPoint.
|
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
|
void
Prepara i set di descrittori dei file con cui lavorare
select() . |
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Esegui la risoluzione dell'indirizzo IP di un nome host specificato.
|
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Esegui la risoluzione dell'indirizzo IP di un nome host specificato.
|
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Esegui la risoluzione dell'indirizzo IP di un nome host specificato.
|
SetPlatformData(void *aPlatformData)
|
void
In questo modo, i dati della piattaforma specifici del client specificati vengono impostati sull'istanza per recuperarli in un secondo momento dalla piattaforma client.
|
Shutdown(void)
|
|
SystemLayer(void) const
|
Funzioni statiche pubbliche |
|
---|---|
HandleInetLayerEvent(Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument)
|
Weave::System::Error
|
IsDroppableEvent(Weave::System::EventType aType)
|
bool
|
UpdateSnapshot(nl::Weave::System::Stats::Snapshot & aSnapshot)
|
void
|
Tipi pubblici
@5
@5
Lo stato attuale dell'oggetto InetLayer.
Proprietà | |
---|---|
kState_Initialized
|
Stato inizializzato. |
kState_NotInitialized
|
Stato non inizializzato. |
kState_ShutdownInProgress
|
Stato in cui è stato attivato l'arresto. |
DNSResolveCompleteFunct
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
Attributi pubblici
Stato
enum nl::Inet::InetLayer::@5 State
Lo stato attuale dell'oggetto InetLayer.
[SOLA LETTURA] Stato attuale.
Attributi statici pubblici
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
Funzioni pubbliche
CanEnqueueDroppableEvent
bool CanEnqueueDroppableEvent( void )
CancelResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
Annulla qualsiasi query DNS in sospeso (per un callback di completamento corrispondente e lo stato dell'applicazione) che potrebbe essere ancora attiva.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
Recupera l'identificatore di interfaccia per l'indirizzo IP specificato.
Se non è possibile derivare l'identificatore dell'interfaccia, è impostato su INET_NULL_INTERFACEID.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Restituisce |
INET_NO_ERROR incondizionatamente.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
Recupera l'indirizzo IPv6 locale del collegamento per un collegamento o un'interfaccia specificati.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
GetPlatformData
void * GetPlatformData( void )
Questa operazione restituisce tutti i dati della piattaforma specifici del client assegnati all'istanza, se sono stati impostati in precedenza.
Dettagli | |
---|---|
Restituisce |
Dati della piattaforma specifici del cliente, se già impostati; altrimenti NULL.
|
HandleSelectResult
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
Gestire l'I/O di una chiamata selezionata.
Questo metodo registra l'evento di I/O in attesa in ciascun endpoint attivo e quindi richiama le rispettive funzioni di gestione di I/O per quegli endpoint.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
InetLayer
InetLayer( void )
Questo è il costruttore predefinito di InetLayer.
Esegue un'inizializzazione di base dei membri dei dati; Tuttavia, poiché InetLayer segue un pattern di progettazione di un inizializzatore esplicito, il metodo InetLayer::Init deve essere chiamato correttamente prima di utilizzare l'oggetto.
Init
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
Questo è l'inizializzatore esplicito di InetLayer.
Questa operazione deve essere chiamata e completata correttamente prima di poter utilizzare l'InetLayer.
Il chiamante può fornire un argomento di contesto facoltativo che verrà restituito tramite qualsiasi funzione hook specifica della piattaforma. Per gli adattamenti basati su LwIP, in genere sarà un puntatore alla coda di eventi associata all'istanza InetLayer.
Le piattaforme possono scegliere di asserire INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS nell'intestazione di configurazione specifica della piattaforma e abilitare gli hook Platform::Inetlayer::WillInit e Platform::Inetlayer::DidInit per applicare a InetLayer estensioni dati o personalizzazioni specifiche della piattaforma.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Valori restituiti |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
Controlla se esiste una corrispondenza del prefisso tra l'indirizzo IPv6 specificato e uno degli indirizzi IPv6 configurati localmente.
Dettagli | |||
---|---|---|---|
Parametri |
|
||
Restituisce |
true se viene trovata una corrispondenza riuscita, false in caso contrario.
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
Crea un nuovo oggetto RawEndPoint per una versione e un protocollo IP specifici.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
NewTCPEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
Crea un nuovo oggetto TCPEndPoint.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
Crea un nuovo oggetto TunEndPoint.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
NewUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
Crea un nuovo oggetto UDPEndPoint.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
PrepareSelect
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
Prepara i set di descrittori dei file con cui lavorare select()
.
Dettagli | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Esegui la risoluzione dell'indirizzo IP di un nome host specificato.
Dettagli | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||||||||
Valori restituiti |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Esegui la risoluzione dell'indirizzo IP di un nome host specificato.
Dettagli | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||||||||
Valori restituiti |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Esegui la risoluzione dell'indirizzo IP di un nome host specificato.
Dettagli | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||||||||||
Valori restituiti |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
In questo modo, i dati della piattaforma specifici del client specificati vengono impostati sull'istanza per recuperarli in un secondo momento dalla piattaforma client.
Dettagli | |||
---|---|---|---|
Parametri |
|
Arresto
INET_ERROR Shutdown( void )
Questo è il deinizializzatore esplicito di InetLayer e deve essere chiamato prima di eliminare un'istanza InetLayer creata.
Le piattaforme possono scegliere di asserire INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS nell'intestazione di configurazione specifica della piattaforma e abilitare gli hook Platform::Inetlayer::WillShutdown e Platform::Inetlayer::DidShutdown per effettuare la pulizia delle estensioni dati o delle personalizzazioni specifiche della piattaforma su InetLayer.
Dettagli | |
---|---|
Restituisce |
INET_NO_ERROR in caso di operazione riuscita; in caso contrario, un errore specifico che indica il motivo dell'errore di arresto.
|
SystemLayer
Weave::System::Layer * SystemLayer( void ) const
Funzioni statiche pubbliche
HandleInetLayerEvent
Weave::System::Error HandleInetLayerEvent( Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument )
IsDroppableEvent
bool IsDroppableEvent( Weave::System::EventType aType )