Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

nl::Inet::Inet Layer

#include <src/inet/InetLayer.h>

Consente di accedere a servizi Internet, inclusi timer, risoluzione DNS (Domain Name System), trasporto della rete TCP, trasporto della rete UDP e trasporto di rete non elaborato, per un singolo thread.

Riepilogo

Per BSD/POSIX Sockets, la notifica di idoneità all'evento viene gestita tramite descrittori di file e un'implementazione tradizionale di sondaggio / selezione sull'adattamento della piattaforma.

Per LwIP, la notifica di idoneità agli eventi viene gestita tramite eventi / messaggi e hook specifici per piattaforma e sistema per il sistema di eventi / messaggi.

Costruttori e distruttori

InetLayer(void)
Questo è il costruttore predefinito Inet Layer.

Tipi pubblici

@5{
  kState_NotInitialized = 0,
  kState_Initialized = 1,
  kState_ShutdownInProgress = 2
}
enum
Lo stato attuale dell'oggetto Inet Layer.
DNSResolveCompleteFunct tipodef
DNSResolver::OnResolveCompleteFunct

Attributi pubblici

State
enum nl::Inet::InetLayer::@5
Lo stato attuale dell'oggetto Inet Layer.

Attributi statici pubblici

sInetEventHandlerDelegate

Funzioni pubbliche

CanEnqueueDroppableEvent(void)
bool
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
void
Annulla tutte le query DNS in sospeso (per una richiamata di completamento del completamento e uno stato dell'applicazione) 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)
Recupera l'indirizzo IPv6 del link locale per un link o un'interfaccia specificati.
GetPlatformData(void)
void *
Restituisce tutti i dati della piattaforma specifici del client assegnati all'istanza, se sono stati precedentemente impostati.
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
void
Gestisci I/O da una chiamata selezionata.
Init(Weave::System::Layer & aSystemLayer, void *aContext)
Questo è l'inizializzazionetore esplicito Inet Layer.
InitQueueLimiter(void)
MatchLocalIPv6Subnet(const IPAddress & addr)
bool
Verifica se esiste una corrispondenza di 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 di file da utilizzare con select().
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Esegui una 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 una risoluzione dell'indirizzo IP di un nome host specificato.
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Esegui una risoluzione dell'indirizzo IP di un nome host specificato.
SetPlatformData(void *aPlatformData)
void
Imposta i dati specifici della piattaforma specificata sull'istanza per recuperarli in un secondo momento dalla piattaforma client.
Shutdown(void)
Si tratta del deinizializzatore esplicito Inet Layer che deve essere chiamato prima di eliminare un'istanza Inet Layer creata un'istanza.
SystemLayer(void) const

Funzioni pubbliche 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 Inet Layer.

Proprietà
kState_Initialized

Stato inizializzato.

kState_NotInitialized

Stato non inizializzato.

kState_ShutdownInProgress

Stato in cui è stato attivato l'arresto.

Risolvere DNSRisolvere

DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct

Attributi pubblici

Stato

enum nl::Inet::InetLayer::@5 State

Lo stato attuale dell'oggetto Inet Layer.

[sola lettura] Stato attuale.

Attributi statici pubblici

sInetEventHandlerDelegato

Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate

Funzioni pubbliche

EventoCanCanqueueDroppable

bool CanEnqueueDroppableEvent(
  void
)

Annulla capacità host

void CancelResolveHostAddress(
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Annulla tutte le query DNS in sospeso (per una richiamata di completamento del completamento e uno stato dell'applicazione) ancora attive.

Dettagli
Parametri
[in] onComplete
Un puntatore alla funzione di callback quando una richiesta DNS è completata.
[in] appState
Un puntatore a un oggetto di stato dell'applicazione da trasmettere 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 derivare l'identificatore dell'interfaccia, è 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 incondizionatamente.

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

Recupera l'indirizzo IPv6 del link locale per un link o un'interfaccia specificati.

Dettagli
Parametri
[in] link
L'interfaccia per la quale viene cercato l'indirizzo IPv6 del link locale.
[out] llAddr
L'indirizzo IPv6 locale del link per il link.
Valori di ritorno
INET_ERROR_NOT_IMPLEMENTED
Se l'IPv6 non è supportato.
INET_ERROR_BAD_ARGS
Se l'indirizzo locale del link è NULL.
INET_ERROR_ADDRESS_NOT_FOUND
Se non è stato configurato alcun indirizzo per il link.
INET_NO_ERROR
Al successo.

DatiPiattaformaGet

void * GetPlatformData(
  void
)

Restituisce tutti i dati della piattaforma specifici del client assegnati all'istanza, se sono stati precedentemente impostati.

Dettagli
Restituisce
Dati della piattaforma specifici del client, se sono stati impostati in precedenza; altrimenti, NULL.

HandleSelectResult

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

Gestisci I/O da una chiamata selezionata.

Questo metodo registra l'evento I/O in attesa in ogni endpoint attivo e richiama le rispettive funzioni di gestione I/O per tali endpoint.

Dettagli
Parametri
[in] selectRes
Il valore restituito della chiamata selezionata.
[in] readfds
Un puntatore sull'insieme dei descrittori dei file letti.
[in] writefds
Un puntatore sull'insieme dei descrittori di file di scrittura.
[in] exceptfds
Un puntatore sull'insieme dei descrittori di file con errori.

InetLayer

 InetLayer(
  void
)

Questo è il costruttore predefinito Inet Layer.

Esegue un'inizializzazione di base dei membri dei dati; tuttavia, poiché Inet Layer segue un modello di progettazione dell'inizializzazionetore esplicito, il metodo Inet Layer::Init deve essere chiamato correttamente prima di utilizzare l'oggetto.

Iniziale

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

Questo è l'inizializzazionetore esplicito Inet Layer.

Questa funzione deve essere chiamata e completata correttamente prima dell'utilizzo di Inet Layer.

Il chiamante può fornire un argomento di contesto facoltativo che verrà restituito tramite funzioni di hook specifiche della piattaforma. Per gli adattamenti basati su LwIP, in genere si tratta di un puntatore alla coda degli eventi associata all'istanza Inet Layer.

Le piattaforme possono scegliere di rivendicare INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS nell'intestazione di configurazione specifica della piattaforma e attivare gli hook Platform::Inet Layer::WillInit e Platform::Inet Layer::DidInit per eseguire personalizzazioni specifiche della piattaforma o estensioni dei dati in Inet Layer.

Dettagli
Parametri
[in] aSystemLayer
Un'istanza obbligatoria del livello di sistema Weave è già stata inizializzata.
[in] aContext
Un argomento di contesto facoltativo che verrà restituito al chiamante tramite qualsiasi funzione di hook specifica della piattaforma.
Valori di ritorno
INET_ERROR_INCORRECT_STATE
Se l'elemento Inet Layer è in uno stato errato.
INET_ERROR_NO_MEMORY
Se il parametro Inet Layer esaurisce la risorsa per questa richiesta, richiede un nuovo timer.
other
Errori specifici della piattaforma che indicano il motivo dell'errore di inizializzazione.
INET_NO_ERROR
Al successo.

InitQueueLimiter

INET_ERROR InitQueueLimiter(
  void
)

Corrispondenza MatchLocalIPv6

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

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

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

NuovoRawEndPoint

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 indicatore dell'oggetto RawEndPoint, che è un parametro di ritorno al termine della creazione dell'oggetto. *retEndPoint è NULL se la creazione non va a buon fine.
Valori di ritorno
INET_ERROR_INCORRECT_STATE
Se l'oggetto Inet Layer non è inizializzato,
INET_ERROR_NO_ENDPOINTS
Se il pool Inet LayerRawEndPoint è pieno e non è possibile creare nuovi endpoint.
INET_NO_ERROR
Al successo.

Nuovo punto di arrivo TCP

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

Crea un nuovo oggetto TCPEndPoint.

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

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

Crea un nuovo oggetto TunEndPoint.

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

Nuovo endpoint UDP

INET_ERROR NewUDPEndPoint(
  UDPEndPoint **retEndPoint
)

Crea un nuovo oggetto UDPEndPoint.

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

Preparati

void PrepareSelect(
  int & nfds,
  fd_set *readfds,
  fd_set *writefds,
  fd_set *exceptfds,
  struct timeval & sleepTime
)

Prepara i set di descrittori di file da utilizzare con select().

Dettagli
Parametri
[out] nfds
L'intervallo dei descrittori del file nel set di descrittori del file.
[in] readfds
Un puntatore sull'insieme dei descrittori di file leggibili.
[in] writefds
Un puntatore che rimanda all'insieme dei descrittori di file scrivibili.
[in] exceptfds
Un puntatore sull'insieme dei descrittori di file con errori.
[in] sleepTimeTV
Un puntatore a una struttura che specifica quanto deve durare la selezione

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t options,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Esegui una risoluzione dell'indirizzo IP di un nome host specificato.

Dettagli
Parametri
[in] hostName
Un puntatore a una stringa C non terminata con NULL che rappresenta il nome dell'host su cui eseguire la query.
[in] hostNameLen
La lunghezza della stringa del nome host.
[in] options
Un valore intero che determina la modalità di esecuzione della 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 una richiesta DNS è completata.
[in] appState
Un puntatore sullo stato dell'applicazione da trasmettere su OnComplete quando è completata una richiesta DNS.
Valori di ritorno
INET_NO_ERROR
se la richiesta DNS viene gestita correttamente.
INET_ERROR_NO_MEMORY
se il pool del resolver del livello Inet è esaurito.
INET_ERROR_HOST_NAME_TOO_LONG
se il nome host richiesto è troppo lungo.
INET_ERROR_HOST_NOT_FOUND
se il nome host di una richiesta non può essere risolto in 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
POSIX o errore di sistema operativo 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 una risoluzione dell'indirizzo IP di un nome host specificato.

Dettagli
Parametri
[in] hostName
Un puntatore a una stringa C non terminata con NULL che rappresenta il nome dell'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 una richiesta DNS è completata.
[in] appState
Un puntatore sullo stato dell'applicazione da trasmettere su OnComplete quando è completata una richiesta DNS.
Valori di ritorno
INET_NO_ERROR
se la richiesta DNS viene gestita correttamente.
INET_ERROR_NO_MEMORY
se il pool del resolver del livello Inet è esaurito.
INET_ERROR_HOST_NAME_TOO_LONG
se il nome host richiesto è troppo lungo.
INET_ERROR_HOST_NOT_FOUND
se il nome host di una richiesta non può essere risolto in 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
POSIX o errore di sistema operativo restituito dall'implementazione del resolver DNS sottostante.

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Esegui una 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 dell'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 una richiesta DNS è completata.
[in] appState
Un puntatore sullo stato dell'applicazione da trasmettere su OnComplete quando è completata una richiesta DNS.
Valori di ritorno
INET_NO_ERROR
se la richiesta DNS viene gestita correttamente.
INET_ERROR_NO_MEMORY
se il pool del resolver del livello Inet è esaurito.
INET_ERROR_HOST_NAME_TOO_LONG
se il nome host richiesto è troppo lungo.
INET_ERROR_HOST_NOT_FOUND
se il nome host di una richiesta non può essere risolto in 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
POSIX o errore di sistema operativo restituito dall'implementazione del resolver DNS sottostante.

DatiPiattaforma

void SetPlatformData(
  void *aPlatformData
)

Imposta i dati specifici della piattaforma specificata sull'istanza per recuperarli in un secondo momento dalla piattaforma client.

Dettagli
Parametri
[in] aPlatformData
I dati della piattaforma specifici per il client da impostare.

Chiusura

INET_ERROR Shutdown(
  void
)

Si tratta del deinizializzatore esplicito Inet Layer che deve essere chiamato prima di eliminare un'istanza Inet Layer creata un'istanza.

Le piattaforme possono scegliere di rivendicare INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS nell'intestazione di configurazione specifica della piattaforma e attivare gli hook Platform::Inet Layer::WillShutdown e Platform::Inet Layer::DidShutdown per eseguire la pulizia delle personalizzazioni o delle estensioni dei dati specifiche della piattaforma per Inet Layer.

Dettagli
Restituisce
INET_NO_ERROR riuscita; in caso contrario, si tratta di un errore specifico che indica il motivo dell'errore di arresto.

Livello di sistema

Weave::System::Layer * SystemLayer(
  void
) const 

Funzioni pubbliche pubbliche

HandleInetLayerEvent

Weave::System::Error HandleInetLayerEvent(
  Weave::System::Object & aTarget,
  Weave::System::EventType aEventType,
  uintptr_t aArgument
)

Evento IsDroppable

bool IsDroppableEvent(
  Weave::System::EventType aType
)

UpdateSnapshot

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