nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
Cela permet d'accéder aux services Internet, y compris les minuteurs, la résolution DNS (Domain Name System), le transport réseau TCP, le transport réseau UDP et le transport réseau brut, pour un seul thread.
Résumé
Pour les sockets BSD/POSIX, la notification d'aptitude aux événements est gérée via des descripteurs de fichier et une implémentation de sondage / sélection traditionnelle sur l'adaptation de la plate-forme.
Pour le protocole LwIP, la notification de préparation aux événements est gérée via des événements / messages et des hooks spécifiques à la plate-forme et au système pour le système d'événements / de messages.
Constructeurs et destructeurs |
|
---|---|
InetLayer(void)
Il s'agit du constructeur par défaut de InetLayer.
|
Types publics |
|
---|---|
@5{
|
énum État actuel de l'objet InetLayer. |
DNSResolveCompleteFunct
|
typedefDNSResolver::OnResolveCompleteFunct
|
Attributs publics |
|
---|---|
State
|
enum nl::Inet::InetLayer::@5
État actuel de l'objet InetLayer.
|
Attributs statiques publics |
|
---|---|
sInetEventHandlerDelegate
|
Fonctions publiques |
|
---|---|
CanEnqueueDroppableEvent(void)
|
bool
|
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
|
void
Annulez toute requête DNS en attente (pour un rappel de finalisation de la mise en correspondance et l'état de l'application) qui peut être encore active.
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
Permet d'obtenir l'identifiant d'interface pour l'adresse IP spécifiée.
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
Permet d'obtenir l'adresse IPv6 locale de la liaison pour une liaison ou une interface spécifiée.
|
GetPlatformData(void)
|
void *
Renvoie toutes les données de plate-forme spécifiques au client qui ont été attribuées à l'instance, si elles ont été définies précédemment.
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
Gérez les E/S à partir d'un appel sélectionné.
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
Il s'agit de l'initialiseur explicite InetLayer.
|
InitQueueLimiter(void)
|
|
MatchLocalIPv6Subnet(const IPAddress & addr)
|
bool
Vérifiez s'il existe une correspondance de préfixe entre l'adresse IPv6 spécifiée et l'une des adresses IPv6 configurées localement.
|
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
|
Crée un objet RawEndPoint pour une version IP et un protocole spécifiques.
|
NewTCPEndPoint(TCPEndPoint **retEndPoint)
|
Crée un objet TCPEndPoint.
|
NewTunEndPoint(TunEndPoint **retEndPoint)
|
Crée un objet TunEndPoint.
|
NewUDPEndPoint(UDPEndPoint **retEndPoint)
|
Crée un objet UDPEndPoint.
|
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
|
void
Préparez les ensembles de descripteurs de fichier pour
select() . |
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Effectuez une résolution d'adresse IP d'un nom d'hôte spécifié.
|
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Effectuez une résolution d'adresse IP d'un nom d'hôte spécifié.
|
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Effectuez une résolution d'adresse IP d'un nom d'hôte spécifié.
|
SetPlatformData(void *aPlatformData)
|
void
Les données spécifiées de la plate-forme spécifique au client sont alors définies sur l'instance en vue de leur récupération ultérieure par la plate-forme cliente.
|
Shutdown(void)
|
|
SystemLayer(void) const
|
Fonctions statiques publiques |
|
---|---|
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
|
Types publics
@5
@5
État actuel de l'objet InetLayer.
Propriétés | |
---|---|
kState_Initialized
|
État initialisé. |
kState_NotInitialized
|
État non initialisé. |
kState_ShutdownInProgress
|
État dans lequel l'arrêt a été déclenché. |
DNSResolveCompleteFunct
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
Attributs publics
État
enum nl::Inet::InetLayer::@5 State
État actuel de l'objet InetLayer.
[LECTURE SEULE] État actuel.
Attributs statiques publics
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
Fonctions publiques
CanEnqueueDroppableEvent
bool CanEnqueueDroppableEvent( void )
CancelResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
Annulez toute requête DNS en attente (pour un rappel de finalisation de la mise en correspondance et l'état de l'application) qui peut être encore active.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
Permet d'obtenir l'identifiant d'interface pour l'adresse IP spécifiée.
Si l'identifiant d'interface ne peut pas être dérivé, il est défini sur INET_NULL_INTERFACEID.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Renvoie |
INET_NO_ERROR de manière inconditionnelle.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
Permet d'obtenir l'adresse IPv6 locale de la liaison pour une liaison ou une interface spécifiée.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs renvoyées |
|
GetPlatformData
void * GetPlatformData( void )
Renvoie toutes les données de plate-forme spécifiques au client qui ont été attribuées à l'instance, si elles ont été définies précédemment.
Détails | |
---|---|
Renvoie |
Données de plate-forme spécifiques au client, si elles ont été définies au préalable sinon NULL.
|
HandleSelectResult
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
Gérez les E/S à partir d'un appel sélectionné.
Cette méthode enregistre l'événement d'E/S en attente dans chaque point de terminaison actif, puis appelle les fonctions de traitement des E/S correspondantes pour ces points de terminaison.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
InetLayer
InetLayer( void )
Il s'agit du constructeur par défaut de InetLayer.
Il effectue une initialisation de base des membres de données : Toutefois, étant donné que InetLayer suit un modèle de conception d'initialiseur explicite, la méthode InetLayer::Init doit être appelée correctement avant d'utiliser l'objet.
Init
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
Il s'agit de l'initialiseur explicite InetLayer.
Cette opération doit être appelée et terminée correctement avant que la classe InetLayer puisse être utilisée.
L'appelant peut fournir un argument de contexte facultatif qui sera renvoyé via n'importe quelle fonction de hook spécifique à la plate-forme. Pour les adaptations basées sur LwIP, il s'agit généralement d'un pointeur vers la file d'attente d'événements associée à l'instance InetLayer.
Les plates-formes peuvent choisir de déclarer INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS dans leur en-tête de configuration spécifique et d'activer les hooks Platform::InetLayer::WillInit et Platform::InetLayer::DidInit pour appliquer les personnalisations ou les extensions de données spécifiques à la plate-forme sur InetLayer.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs renvoyées |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
Vérifiez s'il existe une correspondance de préfixe entre l'adresse IPv6 spécifiée et l'une des adresses IPv6 configurées localement.
Détails | |||
---|---|---|---|
Paramètres |
|
||
Renvoie |
"true" si une correspondance réussie est trouvée, sinon "false".
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
Crée un objet RawEndPoint pour une version IP et un protocole spécifiques.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
NewTCPEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
Crée un objet TCPEndPoint.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
Crée un objet TunEndPoint.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
NewUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
Crée un objet UDPEndPoint.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
||||||
Valeurs renvoyées |
|
PrepareSelect
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
Préparez les ensembles de descripteurs de fichier pour select()
.
Détails | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Effectuez une résolution d'adresse IP d'un nom d'hôte spécifié.
Détails | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||||||||
Valeurs renvoyées |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Effectuez une résolution d'adresse IP d'un nom d'hôte spécifié.
Détails | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||||||||
Valeurs renvoyées |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Effectuez une résolution d'adresse IP d'un nom d'hôte spécifié.
Détails | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||||||||||
Valeurs renvoyées |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
Les données spécifiées de la plate-forme spécifique au client sont alors définies sur l'instance en vue de leur récupération ultérieure par la plate-forme cliente.
Détails | |||
---|---|---|---|
Paramètres |
|
Arrêt
INET_ERROR Shutdown( void )
Il s'agit du désinitialiseur explicite InetLayer. Il doit être appelé avant de supprimer une instance InetLayer instanciée.
Les plates-formes peuvent choisir de déclarer INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS dans leur en-tête de configuration spécifique et d'activer les hooks Platform::InetLayer::WillShutdown et Platform::InetLayer::DidShutdown pour effectuer le nettoyage des personnalisations ou des extensions de données spécifiques à la plate-forme dans InetLayer.
Détails | |
---|---|
Renvoie |
INET_NO_ERROR en cas de réussite Sinon, une erreur spécifique indiquant la raison de l'échec de l'arrêt.
|
SystemLayer
Weave::System::Layer * SystemLayer( void ) const
Fonctions statiques publiques
HandleInetLayerEvent
Weave::System::Error HandleInetLayerEvent( Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument )
IsDroppableEvent
bool IsDroppableEvent( Weave::System::EventType aType )