nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
Dadurch erhalten Sie für einen einzelnen Thread Zugriff auf Internetdienste, einschließlich Timer, DNS-Auflösung (Domain Name System), TCP-Netzwerktransport, UDP-Netzwerktransport und unformatierten Netzwerktransport.
Zusammenfassung
Bei BSD/POSIX-Sockets erfolgt die Benachrichtigung über die Ereignisbereitschaft über Dateideskriptoren und eine traditionelle Implementierung von Abfrage / Auswahl in der Plattformanpassung.
Für LwIP wird die Benachrichtigung zur Ereignisbereitschaft über Ereignisse / Nachrichten und plattform- und systemspezifische Hooks für das Ereignis-/Nachrichtensystem verarbeitet.
Konstruktoren und Zerstörer |
|
---|---|
InetLayer(void)
Dies ist der InetLayer-Standardkonstruktor.
|
Öffentliche Typen |
|
---|---|
@5{
|
enum Der aktuelle Status des InetLayer-Objekts. |
DNSResolveCompleteFunct
|
typedef.DNSResolver::OnResolveCompleteFunct
|
Öffentliche Attribute |
|
---|---|
State
|
enum nl::Inet::InetLayer::@5
Der aktuelle Status des InetLayer-Objekts.
|
Öffentliche statische Attribute |
|
---|---|
sInetEventHandlerDelegate
|
Öffentliche Funktionen |
|
---|---|
CanEnqueueDroppableEvent(void)
|
bool
|
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
|
void
Stornieren Sie alle ausstehenden DNS-Abfragen (für einen übereinstimmenden Abschluss-Callback und einen Anwendungsstatus), die möglicherweise noch aktiv sind.
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
Ruft die Schnittstellenkennung für die angegebene IP-Adresse ab.
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
Hiermit wird die Link-Local-IPv6-Adresse für einen bestimmten Link oder eine angegebene Schnittstelle abgerufen.
|
GetPlatformData(void)
|
void *
Dadurch werden alle clientspezifischen Plattformdaten zurückgegeben, die der Instanz zugewiesen sind, sofern sie zuvor festgelegt wurden.
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
E/A in einem Auswahlaufruf verarbeiten.
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
Dies ist der explizite InetLayer-Initialisierer.
|
InitQueueLimiter(void)
|
|
MatchLocalIPv6Subnet(const IPAddress & addr)
|
bool
Prüfen Sie, ob eine Präfixübereinstimmung zwischen der angegebenen IPv6-Adresse und einer der lokal konfigurierten IPv6-Adressen besteht.
|
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
|
Erstellt ein neues RawEndPoint-Objekt für eine bestimmte IP-Version und ein bestimmtes Protokoll.
|
NewTCPEndPoint(TCPEndPoint **retEndPoint)
|
Erstellt ein neues TCPEndPoint-Objekt.
|
NewTunEndPoint(TunEndPoint **retEndPoint)
|
Erstellt ein neues TunEndPoint-Objekt.
|
NewUDPEndPoint(UDPEndPoint **retEndPoint)
|
Erstellt ein neues UDPEndPoint-Objekt.
|
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
|
void
Bereiten Sie die Gruppen von Dateideskriptoren für
select() vor. |
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Führt eine Auflösung der IP-Adresse eines angegebenen Hostnamens durch.
|
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Führt eine Auflösung der IP-Adresse eines angegebenen Hostnamens durch.
|
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Führt eine Auflösung der IP-Adresse eines angegebenen Hostnamens durch.
|
SetPlatformData(void *aPlatformData)
|
void
Dadurch werden die angegebenen clientspezifischen Plattformdaten für die Instanz festgelegt, damit sie später von der Clientplattform abgerufen werden können.
|
Shutdown(void)
|
|
SystemLayer(void) const
|
Öffentliche statische Funktionen |
|
---|---|
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
|
Öffentliche Typen
@5
@5
Der aktuelle Status des InetLayer-Objekts.
Attribute | |
---|---|
kState_Initialized
|
Status „Initialisiert“. |
kState_NotInitialized
|
Nicht initialisierter Status. |
kState_ShutdownInProgress
|
Status, in dem das Herunterfahren ausgelöst wurde. |
DNSResolveCompleteFunct
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
Öffentliche Attribute
Status
enum nl::Inet::InetLayer::@5 State
Der aktuelle Status des InetLayer-Objekts.
[READ-ONLY] Aktueller Status.
Öffentliche statische Attribute
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
Öffentliche Funktionen
CanEnqueueDroppableEvent
bool CanEnqueueDroppableEvent( void )
CancelResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
Stornieren Sie alle ausstehenden DNS-Abfragen (für einen übereinstimmenden Abschluss-Callback und einen Anwendungsstatus), die möglicherweise noch aktiv sind.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
Ruft die Schnittstellenkennung für die angegebene IP-Adresse ab.
Wenn die Schnittstellenkennung nicht abgeleitet werden kann, ist sie auf INET_NULL_INTERFACEID festgelegt.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabe |
INET_NO_ERROR ohne Bedingungen.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
Hiermit wird die Link-Local-IPv6-Adresse für einen bestimmten Link oder eine angegebene Schnittstelle abgerufen.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
GetPlatformData
void * GetPlatformData( void )
Dadurch werden alle clientspezifischen Plattformdaten zurückgegeben, die der Instanz zugewiesen sind, sofern sie zuvor festgelegt wurden.
Details | |
---|---|
Rückgabe |
Kundenspezifische Plattformdaten, falls bereits festgelegt andernfalls NULL.
|
HandleSelectResult
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
E/A in einem Auswahlaufruf verarbeiten.
Diese Methode registriert das ausstehende E/A-Ereignis an jedem aktiven Endpunkt und ruft dann die entsprechenden E/A-Verarbeitungsfunktionen für diese Endpunkte auf.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
InetLayer
InetLayer( void )
Dies ist der InetLayer-Standardkonstruktor.
Er führt einige grundlegende Datenmitglieder-Initialisierungen durch: Da InetLayer jedoch einem expliziten Initialisierungsdesignmuster folgt, muss die InetLayer::Init-Methode vor der Verwendung des Objekts erfolgreich aufgerufen werden.
Init
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
Dies ist der explizite InetLayer-Initialisierer.
Dies muss aufgerufen und abgeschlossen sein, bevor InetLayer verwendet werden kann.
Der Aufrufer kann ein optionales Kontextargument angeben, das über beliebige plattformspezifische Hook-Funktionen zurückgegeben wird. Bei LwIP-basierten Anpassungen ist dies in der Regel ein Zeiger auf die Ereigniswarteschlange, die der InetLayer-Instanz zugeordnet ist.
Plattformen können INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS in ihrem plattformspezifischen Konfigurationsheader bestätigen und die Hooks „Platform::InetLayer::WillInit“ und „Platform::InetLayer::DidInit“ aktivieren, um plattformspezifische Anpassungen oder Datenerweiterungen an InetLayer vorzunehmen.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
Prüfen Sie, ob eine Präfixübereinstimmung zwischen der angegebenen IPv6-Adresse und einer der lokal konfigurierten IPv6-Adressen besteht.
Details | |||
---|---|---|---|
Parameter |
|
||
Rückgabe |
„true“, wenn eine Übereinstimmung gefunden wird, andernfalls „false“.
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
Erstellt ein neues RawEndPoint-Objekt für eine bestimmte IP-Version und ein bestimmtes Protokoll.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
NewTCPEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
Erstellt ein neues TCPEndPoint-Objekt.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
Erstellt ein neues TunEndPoint-Objekt.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
NewUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
Erstellt ein neues UDPEndPoint-Objekt.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
PrepareSelect
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
Bereiten Sie die Gruppen von Dateideskriptoren für select()
vor.
Details | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Führt eine Auflösung der IP-Adresse eines angegebenen Hostnamens durch.
Details | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||||||
Rückgabewerte |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Führt eine Auflösung der IP-Adresse eines angegebenen Hostnamens durch.
Details | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||||||
Rückgabewerte |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Führt eine Auflösung der IP-Adresse eines angegebenen Hostnamens durch.
Details | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||||||
Rückgabewerte |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
Dadurch werden die angegebenen clientspezifischen Plattformdaten für die Instanz festgelegt, damit sie später von der Clientplattform abgerufen werden können.
Details | |||
---|---|---|---|
Parameter |
|
Herunterfahren
INET_ERROR Shutdown( void )
Dies ist der explizite InetLayer-Deinitialisierer und sollte vor der Entsorgung einer instanziierten InetLayer-Instanz aufgerufen werden.
Plattformen können INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS in ihrem plattformspezifischen Konfigurationsheader bestätigen und die Platform::InetLayer::WillShutdown- und Platform::InetLayer::DidShutdown-Hooks aktivieren, um plattformspezifische Anpassungen oder Datenerweiterungen auf InetLayer zu bereinigen.
Details | |
---|---|
Rückgabe |
INET_NO_ERROR bei Erfolg; Andernfalls ein bestimmter Fehler, der den Grund für das Fehlschlagen des Herunterfahrens angibt.
|
SystemLayer
Weave::System::Layer * SystemLayer( void ) const
Öffentliche statische Funktionen
HandleInetLayerEvent
Weave::System::Error HandleInetLayerEvent( Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument )
IsDroppableEvent
bool IsDroppableEvent( Weave::System::EventType aType )