nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
Dadurch erhalten Sie Zugriff auf Internetdienste, einschließlich Timern, DNS-Auflösung (Domain Name System), TCP-Netzwerktransport, UDP-Netzwerktransport und unverarbeitetem Netzwerktransport für einen einzelnen Thread.
Zusammenfassung
Bei BSD-/POSIX-Sockets erfolgt die Ereignisbereitschaftsbenachrichtigung über Dateideskriptoren und eine herkömmliche Abfrage / Auswahl-Implementierung in der Plattformanpassung.
Bei LwIP wird die Ereignisbereitschaftsbenachrichtigung über Ereignisse / Nachrichten sowie 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
|
typedefDNSResolver::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 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)
|
Rufen Sie die Link-Local-IPv6-Adresse für einen bestimmten Link oder eine bestimmte Schnittstelle ab.
|
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
Verarbeiten Sie E/A über einen ausgewählten Aufruf.
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
Dies ist der explizite InetLayer-Initialisierer.
|
InitQueueLimiter(void)
|
|
MatchLocalIPv6Subnet(const IPAddress & addr)
|
bool
Prüfen Sie, ob es eine Präfixübereinstimmung zwischen der angegebenen IPv6-Adresse und einer der lokal konfigurierten IPv6-Adressen gibt.
|
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 Dateideskriptoren vor, mit denen
select() arbeiten soll. |
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Führt eine IP-Adressauflösung eines angegebenen Hostnamens durch.
|
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Führt eine IP-Adressauflösung eines angegebenen Hostnamens durch.
|
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Führt eine IP-Adressauflösung 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 initialisiert. |
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 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, wird sie auf INET_NULL_INTERFACEID festgelegt.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabe |
INET_NO_ERROR nicht an.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
Rufen Sie die Link-Local-IPv6-Adresse für einen bestimmten Link oder eine bestimmte Schnittstelle ab.
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 |
Clientspezifische Plattformdaten, falls zuvor festgelegt wurden; andernfalls NULL.
|
HandleSelectResult
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
Verarbeiten Sie E/A über einen ausgewählten Aufruf.
Diese Methode registriert das ausstehende E/A-Ereignis in 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.
Sie führt einige grundlegende Initialisierungen der Datenelemente durch. Da InetLayer jedoch einem expliziten Initialisierungsmuster folgt, muss die Methode InetLayer::Init 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 erfolgreich abgeschlossen werden, bevor InetLayer verwendet werden kann.
Der Aufrufer kann ein optionales Kontextargument angeben, das über alle plattformspezifischen Hook-Funktionen zurückgegeben wird. Bei LwIP-basierten Anpassungen ist dies in der Regel ein Verweis auf die Ereigniswarteschlange, die der InetLayer-Instanz zugeordnet ist.
Plattformen können INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS in ihrem plattformspezifischen Konfigurationsheader festlegen und die Hooks „Platform::InetLayer::WillInit“ und „Platform::InetLayer::DidInit“ aktivieren, um plattformspezifische Anpassungen oder Datenerweiterungen für InetLayer zu erzielen.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
Prüfen Sie, ob es eine Präfixübereinstimmung zwischen der angegebenen IPv6-Adresse und einer der lokal konfigurierten IPv6-Adressen gibt.
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 Dateideskriptoren vor, mit denen select()
arbeiten soll.
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 IP-Adressauflösung 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 IP-Adressauflösung 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 IP-Adressauflösung 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 festlegen und die Hooks „Platform::InetLayer::WillHerunterfahren“ und „Platform::InetLayer::DidHerunterfahren“ aktivieren, um plattformspezifische Anpassungen oder Datenerweiterungen für InetLayer zu bereinigen.
Details | |
---|---|
Rückgabe |
INET_NO_ERROR bei Erfolg, andernfalls ein bestimmter Fehler, der die Ursache für das fehlgeschlagene Herunterfahren 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 )