nl::Inet::InetLayer

#include <src/inet/InetLayer.h>

Ciò consente di accedere ai servizi internet, inclusi 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 tradizionale di tipo poll / select nell'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{
  kState_NotInitialized = 0,
  kState_Initialized = 1,
  kState_ShutdownInProgress = 2
}
enum
Lo stato attuale dell'oggetto InetLayer.
DNSResolveCompleteFunct typedef
DNSResolver::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 uno stato dell'applicazione) che potrebbero essere ancora attive.
DroppableEventDequeued(void)
void
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
Recupera l'identificatore di interfaccia per l'indirizzo IP specificato.
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
Ottieni l'indirizzo IPv6 locale del collegamento di un collegamento o un'interfaccia specifici.
GetPlatformData(void)
void *
Vengono restituiti 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
Gestisci l'I/O di una chiamata selezionata.
Init(Weave::System::Layer & aSystemLayer, void *aContext)
Questo è l'inizializzatore esplicito InetLayer.
InitQueueLimiter(void)
MatchLocalIPv6Subnet(const IPAddress & addr)
bool
Controlla se esiste una corrispondenza di prefisso tra l'indirizzo IPv6 specificato e uno qualsiasi 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 vengono impostati nell'istanza per recuperarli in un secondo momento dalla piattaforma client.
Shutdown(void)
Questo è il deinizializzatore esplicito di InetLayer e deve essere chiamato prima dello smaltimento di un'istanza InetLayer creata un'istanza.
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 lo spegnimento.

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 uno stato dell'applicazione) che potrebbero essere ancora attive.

Dettagli
Parametri
[in] onComplete
Un puntatore alla funzione di callback quando viene completata una richiesta DNS.
[in] appState
Un puntatore a un oggetto di stato dell'applicazione da passare alla funzione di callback come argomento.

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 ricavare l'identificatore dell'interfaccia, viene impostato su INET_NULL_INTERFACEID.

Dettagli
Parametri
[in] addr
Un riferimento all'oggetto IPAddress.
[out] intfId
Un riferimento all'oggetto InterfaceId.
Restituisce
INET_NO_ERROR in modo incondizionato.

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

Ottieni l'indirizzo IPv6 locale del collegamento di un collegamento o un'interfaccia specifici.

Dettagli
Parametri
[in] link
L'interfaccia per la quale viene richiesto l'indirizzo IPv6 locale di collegamento.
[out] llAddr
L'indirizzo IPv6 locale del collegamento per il collegamento.
Valori restituiti
INET_ERROR_NOT_IMPLEMENTED
Se IPv6 non è supportato.
INET_ERROR_BAD_ARGS
Se l'indirizzo locale del link è NULL.
INET_ERROR_ADDRESS_NOT_FOUND
Se il link non presenta alcun indirizzo configurato.
INET_NO_ERROR
In caso di successo.

GetPlatformData

void * GetPlatformData(
  void
)

Vengono restituiti tutti i dati della piattaforma specifici del client assegnati all'istanza, se sono stati impostati in precedenza.

Dettagli
Restituisce
I dati della piattaforma specifici del client, se sono stati impostati in precedenza. In caso contrario, il valore è NULL.

HandleSelectResult

void HandleSelectResult(
  int selectRes,
  fd_set *readfds,
  fd_set *writefds,
  fd_set *exceptfds
)

Gestisci l'I/O di una chiamata selezionata.

Questo metodo registra l'evento I/O in sospeso in ciascun endpoint attivo e quindi richiama le rispettive funzioni di gestione di I/O per questi endpoint.

Dettagli
Parametri
[in] selectRes
Il valore restituito della chiamata select.
[in] readfds
Un puntatore all'insieme di descrittori del file letto.
[in] writefds
Un puntatore all'insieme di descrittori di file di scrittura.
[in] exceptfds
Un puntatore all'insieme di descrittori del file con errori.

InetLayer

 InetLayer(
  void
)

Questo è il costruttore predefinito di InetLayer.

Esegue alcune operazioni di base di inizializzazione dei membri dei dati. Tuttavia, poiché InetLayer segue un pattern di progettazione dell'inizializzazione esplicito, il metodo Inetlayer::Init deve essere chiamato correttamente prima di utilizzare l'oggetto.

Inizia

INET_ERROR Init(
  Weave::System::Layer & aSystemLayer,
  void *aContext
)

Questo è l'inizializzatore esplicito InetLayer.

Questa operazione deve essere chiamata e completata correttamente prima di poter utilizzare InetLayer.

Il chiamante può fornire un argomento di contesto facoltativo che verrà restituito tramite qualsiasi funzione di hook specifica della piattaforma. Per gli adattamenti basati su LwIP, in genere è un puntatore alla coda di eventi associata all'istanza InetLayer.

Le piattaforme possono scegliere di inserire 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 personalizzazioni specifiche della piattaforma o estensioni di dati a InetLayer.

Dettagli
Parametri
[in] aSystemLayer
Un'istanza richiesta del livello di sistema Weave è già stata inizializzata correttamente.
[in] aContext
Un argomento di contesto facoltativo che verrà restituito al chiamante tramite qualsiasi funzione hook specifica della piattaforma.
Valori restituiti
INET_ERROR_INCORRECT_STATE
Se lo stato di InetLayer è errato.
INET_ERROR_NO_MEMORY
Se InetLayer esaurisce la risorsa per questa richiesta di un nuovo timer.
other
Errori specifici della piattaforma che indicano il motivo dell'errore di inizializzazione.
INET_NO_ERROR
In caso di successo.

InitQueueLimiter

INET_ERROR InitQueueLimiter(
  void
)

MatchLocalIPv6Subnet

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

Controlla se esiste una corrispondenza di prefisso tra l'indirizzo IPv6 specificato e uno qualsiasi degli indirizzi IPv6 configurati localmente.

Dettagli
Parametri
[in] addr
L'indirizzo IPv6 per verificare la corrispondenza del prefisso.
Restituisce
true se viene rilevata una corrispondenza riuscita, altrimenti false.

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
[in] ipVer
IPv4 o IPv6.
[in] ipProto
Un protocollo all'interno della famiglia IP (ad esempio, ICMPv4 o ICMPv6).
[in,out] retEndPoint
Un puntatore a un puntatore dell'oggetto RawEndPoint che rappresenta un parametro di ritorno al termine della creazione dell'oggetto. *retEndPoint è NULL se la creazione non va a buon fine.
Valori restituiti
INET_ERROR_INCORRECT_STATE
Se l'oggetto InetLayer non è inizializzato.
INET_ERROR_NO_ENDPOINTS
Se il pool InetLayerRawEndPoint è pieno e non è possibile creare nuovi endpoint.
INET_NO_ERROR
In caso di successo.

NewTCPEndPoint

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

Crea un nuovo oggetto TCPEndPoint.

Dettagli
Parametri
[in,out] retEndPoint
Un puntatore a un puntatore dell'oggetto TCPEndPoint che rappresenta un parametro di ritorno al completamento della creazione dell'oggetto. *retEndPoint è NULL se la creazione non va a buon fine.
Valori restituiti
INET_ERROR_INCORRECT_STATE
Se l'oggetto InetLayer non è inizializzato.
INET_ERROR_NO_ENDPOINTS
Se il pool InetLayerTCPEndPoint è pieno e non è possibile creare nuovi endpoint.
INET_NO_ERROR
In caso di successo.

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

Crea un nuovo oggetto TunEndPoint.

Dettagli
Parametri
[in,out] retEndPoint
Un puntatore a un puntatore dell'oggetto TunEndPoint che rappresenta un parametro di ritorno al termine della creazione dell'oggetto. *retEndPoint è NULL se la creazione non va a buon fine.
Valori restituiti
INET_ERROR_INCORRECT_STATE
Se l'oggetto InetLayer non è inizializzato.
INET_ERROR_NO_ENDPOINTS
Se il pool InetLayerTunEndPoint è pieno e non è possibile crearne di nuovi.
INET_NO_ERROR
In caso di successo.

NewUDPEndPoint

INET_ERROR NewUDPEndPoint(
  UDPEndPoint **retEndPoint
)

Crea un nuovo oggetto UDPEndPoint.

Dettagli
Parametri
[in,out] retEndPoint
Un puntatore a un puntatore dell'oggetto UDPEndPoint che rappresenta un parametro di ritorno al termine della creazione dell'oggetto. *retEndPoint è NULL se la creazione non va a buon fine.
Valori restituiti
INET_ERROR_INCORRECT_STATE
Se l'oggetto InetLayer non è inizializzato.
INET_ERROR_NO_ENDPOINTS
Se il pool InetLayerUDPEndPoint è pieno e non è possibile creare nuovi endpoint.
INET_NO_ERROR
In caso di successo.

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
[out] nfds
L'intervallo di descrittori di file nel set di descrittori di file.
[in] readfds
Un puntatore all'insieme di descrittori di file leggibili.
[in] writefds
Un puntatore all'insieme di descrittori di file scrivibili.
[in] exceptfds
Un puntatore all'insieme di descrittori del file con errori.
[in] sleepTimeTV
Un puntatore a una struttura che specifica la durata della sospensione del componente selezionato

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
[in] hostName
Un puntatore a una stringa C con terminazione NULL che rappresenta il nome host su cui eseguire la query.
[in] hostNameLen
La lunghezza della stringa del nome host.
[in] options
Un valore intero che controlla il modo in cui viene eseguita la risoluzione del nome host.
                    Value should be one of the address family values from the
                    #DNSOptions enumeration:

                    #kDNSOption_AddrFamily_Any
                    #kDNSOption_AddrFamily_IPv4Only
                    #kDNSOption_AddrFamily_IPv6Only
                    #kDNSOption_AddrFamily_IPv4Preferred
                    #kDNSOption_AddrFamily_IPv6Preferred
[in] maxAddrs
Il numero massimo di indirizzi da archiviare nella tabella DNS.
[in] addrArray
Un puntatore alla tabella DNS.
[in] onComplete
Un puntatore alla funzione di callback quando viene completata una richiesta DNS.
[in] appState
Un puntatore allo stato dell'applicazione da passare a onComplete quando viene completata una richiesta DNS.
Valori restituiti
INET_NO_ERROR
se una richiesta DNS viene gestita correttamente.
INET_ERROR_NO_MEMORY
se il pool di resolver del livello Inet è pieno.
INET_ERROR_HOST_NAME_TOO_LONG
se un nome host richiesto è troppo lungo.
INET_ERROR_HOST_NOT_FOUND
se il nome host di una richiesta non può essere risolto con un indirizzo.
INET_ERROR_DNS_TRY_AGAIN
se un server dei nomi ha restituito un'indicazione di errore temporaneo; riprova più tardi.
INET_ERROR_DNS_NO_RECOVERY
se un server dei nomi ha restituito un errore irreversibile.
INET_ERROR_NOT_IMPLEMENTED
se la risoluzione DNS non è abilitata sulla piattaforma sottostante.
other
Errore di rete o di sistema operativo POSIX restituito dall'implementazione del resolver DNS sottostante.

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
[in] hostName
Un puntatore a una stringa C con terminazione NULL che rappresenta il nome host su cui eseguire la query.
[in] hostNameLen
La lunghezza della stringa del nome host.
[in] maxAddrs
Il numero massimo di indirizzi da archiviare nella tabella DNS.
[in] addrArray
Un puntatore alla tabella DNS.
[in] onComplete
Un puntatore alla funzione di callback quando viene completata una richiesta DNS.
[in] appState
Un puntatore allo stato dell'applicazione da passare a onComplete quando viene completata una richiesta DNS.
Valori restituiti
INET_NO_ERROR
se una richiesta DNS viene gestita correttamente.
INET_ERROR_NO_MEMORY
se il pool di resolver del livello Inet è pieno.
INET_ERROR_HOST_NAME_TOO_LONG
se un nome host richiesto è troppo lungo.
INET_ERROR_HOST_NOT_FOUND
se il nome host di una richiesta non può essere risolto con un indirizzo.
INET_ERROR_DNS_TRY_AGAIN
se un server dei nomi ha restituito un'indicazione di errore temporaneo; riprova più tardi.
INET_ERROR_DNS_NO_RECOVERY
se un server dei nomi ha restituito un errore irreversibile.
INET_ERROR_NOT_IMPLEMENTED
se la risoluzione DNS non è abilitata sulla piattaforma sottostante.
other
Errore di rete o di sistema operativo POSIX restituito dall'implementazione del resolver DNS sottostante.

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
[in] hostName
Un puntatore a una stringa C con terminazione NULL che rappresenta il nome host su cui eseguire la query.
[in] maxAddrs
Il numero massimo di indirizzi da archiviare nella tabella DNS.
[in] addrArray
Un puntatore alla tabella DNS.
[in] onComplete
Un puntatore alla funzione di callback quando viene completata una richiesta DNS.
[in] appState
Un puntatore allo stato dell'applicazione da passare a onComplete quando viene completata una richiesta DNS.
Valori restituiti
INET_NO_ERROR
se una richiesta DNS viene gestita correttamente.
INET_ERROR_NO_MEMORY
se il pool di resolver del livello Inet è pieno.
INET_ERROR_HOST_NAME_TOO_LONG
se un nome host richiesto è troppo lungo.
INET_ERROR_HOST_NOT_FOUND
se il nome host di una richiesta non può essere risolto con un indirizzo.
INET_ERROR_DNS_TRY_AGAIN
se un server dei nomi ha restituito un'indicazione di errore temporaneo; riprova più tardi.
INET_ERROR_DNS_NO_RECOVERY
se un server dei nomi ha restituito un errore irreversibile.
INET_ERROR_NOT_IMPLEMENTED
se la risoluzione DNS non è abilitata sulla piattaforma sottostante.
other
Errore di rete o di sistema operativo POSIX restituito dall'implementazione del resolver DNS sottostante.

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

In questo modo, i dati della piattaforma specifici del client vengono impostati nell'istanza per recuperarli in un secondo momento dalla piattaforma client.

Dettagli
Parametri
[in] aPlatformData
I dati della piattaforma specifica del client da impostare.

Arresto

INET_ERROR Shutdown(
  void
)

Questo è il deinizializzatore esplicito di InetLayer e deve essere chiamato prima dello smaltimento di un'istanza InetLayer creata un'istanza.

Le piattaforme possono scegliere di dichiarare 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 eseguire la pulizia delle personalizzazioni specifiche della piattaforma o delle estensioni di dati su InetLayer.

Dettagli
Restituisce
INET_NO_ERROR in caso di esito positivo; in caso contrario, si tratta di 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
)

UpdateSnapshot

void UpdateSnapshot(
  nl::Weave::System::Stats::Snapshot & aSnapshot
)