nl::Inet::InetLayer

#include <src/inet/InetLayer.h>

Bu, tek bir iş parçacığı için zamanlayıcılar, Alan Adı Sistemi (DNS) çözümlemesi, TCP ağ aktarımı, UDP ağ aktarımı ve ham ağ aktarımı da dahil olmak üzere internet hizmetlerine erişim sağlar.

Özet

BSD/POSIX Yuvaları için etkinlik hazırlık bildirimi, dosya tanımlayıcıları ve platform uyarlamasında geleneksel bir anket / seçim uygulaması aracılığıyla işlenir.

LwIP'de etkinlik hazırlık durumu bildirimi, etkinlikler / mesajlar ile etkinlik / mesaj sistemi için platforma ve sisteme özel kancalar aracılığıyla işlenir.

Oluşturucular ve Yıkıcılar

InetLayer(void)
Bu, InetLayer varsayılan oluşturucusudur.

Herkese açık türler

@5{
  kState_NotInitialized = 0,
  kState_Initialized = 1,
  kState_ShutdownInProgress = 2
}
enum
InetLayer nesnesinin mevcut durumu.
DNSResolveCompleteFunct typedef
DNSResolver::OnResolveCompleteFunct

Herkese açık özellikler

State
enum nl::Inet::InetLayer::@5
InetLayer nesnesinin mevcut durumu.

Herkese açık statik özellikler

sInetEventHandlerDelegate

Herkese açık işlevler

CanEnqueueDroppableEvent(void)
bool
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
void
Hâlâ etkin olabilecek tüm bekleyen DNS sorgularını (eşleşen tamamlama geri çağırması ve uygulama durumu için) iptal edin.
DroppableEventDequeued(void)
void
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
Belirtilen IP adresi için arayüz tanımlayıcısını alın.
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
Belirtilen bir bağlantı veya arayüz için bağlantı yerel IPv6 adresini alın.
GetPlatformData(void)
void *
Bu komut, daha önce ayarlanmışsa örneğe atanmış tüm istemciye özel platform verilerini döndürür.
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
void
Belirli bir görüşmede G/Ç işlemini yönetme.
Init(Weave::System::Layer & aSystemLayer, void *aContext)
Bu, InetLayer açık başlatıcısıdır.
InitQueueLimiter(void)
MatchLocalIPv6Subnet(const IPAddress & addr)
bool
Belirtilen IPv6 adresi ile yerel olarak yapılandırılmış IPv6 adreslerinden herhangi biri arasında önek eşleşmesi olup olmadığını kontrol edin.
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
Belirli bir IP sürümü ve protokolü için yeni bir RawEndPoint nesnesi oluşturur.
NewTCPEndPoint(TCPEndPoint **retEndPoint)
Yeni bir TCPEndPoint nesnesi oluşturur.
NewTunEndPoint(TunEndPoint **retEndPoint)
Yeni bir TunEndPoint nesnesi oluşturur.
NewUDPEndPoint(UDPEndPoint **retEndPoint)
Yeni bir UDPEndPoint nesnesi oluşturur.
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
void
select() için kullanılacak dosya tanımlayıcısı gruplarını hazırlayın.
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Belirtilen ana makine adının IP adresi çözümlemesini gerçekleştirin.
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Belirtilen ana makine adının IP adresi çözümlemesini gerçekleştirin.
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Belirtilen ana makine adının IP adresi çözümlemesini gerçekleştirin.
SetPlatformData(void *aPlatformData)
void
Bu işlem, istemciye özel platform verilerini, istemci platformu tarafından daha sonra almak üzere örneğe ayarlar.
Shutdown(void)
Bu, InetLayer'ın açık başlatıcısıdır ve örneklenmiş bir InetLayer örneğinin yok edilmesinden önce çağrılmalıdır.
SystemLayer(void) const

Herkese açık statik işlevler

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

Herkese açık türler

@5

 @5

InetLayer nesnesinin mevcut durumu.

Özellikler
kState_Initialized

Başlatıldı durumu.

kState_NotInitialized

Başlatılmamış durumda.

kState_ShutdownInProgress

Kapatma işleminin tetiklendiği durum.

DNSResolveCompleteFunct

DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct

Herkese açık özellikler

Eyalet

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

InetLayer nesnesinin mevcut durumu.

[SALT OKUNUR] Geçerli durum.

Herkese açık statik özellikler

sInetEventHandlerDelegate

Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate

Herkese açık işlevler

CanEnqueueDroppableEvent

bool CanEnqueueDroppableEvent(
  void
)

CancelResolveHostAddress

void CancelResolveHostAddress(
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Hâlâ etkin olabilecek tüm bekleyen DNS sorgularını (eşleşen tamamlama geri çağırması ve uygulama durumu için) iptal edin.

Ayrıntılar
Parametreler
[in] onComplete
DNS isteği tamamlandığında geri çağırma işlevine yönlendiren bir işaretçi.
[in] appState
Geri çağırma işlevine bağımsız değişken olarak aktarılacak bir uygulama durumu nesnesinin işaretçisi.

DroppableEventDequeued

void DroppableEventDequeued(
  void
)

GetInterfaceFromAddr

INET_ERROR GetInterfaceFromAddr(
  const IPAddress & addr,
  InterfaceId & intfId
)

Belirtilen IP adresi için arayüz tanımlayıcısını alın.

Arayüz tanımlayıcısı türetilemezse INET_NULL_INTERFACEID olarak ayarlanır.

Ayrıntılar
Parametreler
[in] addr
IPAddress nesnesine başvuru.
[out] intfId
Arayüz Kimliği nesnesine referans.
İadeler
Koşulsuz olarak INET_NO_ERROR.

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

Belirtilen bir bağlantı veya arayüz için bağlantı yerel IPv6 adresini alın.

Ayrıntılar
Parametreler
[in] link
Yerel IPv6 adresinin arandığı arayüz.
[out] llAddr
Bağlantı için bağlantının yerel IPv6 adresi.
Değerleri Döndür
INET_ERROR_NOT_IMPLEMENTED
IPv6 desteklenmiyorsa.
INET_ERROR_BAD_ARGS
Bağlantının yerel adresi NULL ise.
INET_ERROR_ADDRESS_NOT_FOUND
Bağlantının yapılandırılmış adresi yoksa
INET_NO_ERROR
Başarıya merhaba.

GetPlatformData

void * GetPlatformData(
  void
)

Bu komut, daha önce ayarlanmışsa örneğe atanmış tüm istemciye özel platform verilerini döndürür.

Ayrıntılar
İadeler
Daha önce ayarlanmışsa müşteriye özel platform verileri; Aksi takdirde, NULL olacaktır.

HandleSelectResult

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

Belirli bir görüşmede G/Ç işlemini yönetme.

Bu yöntem, her etkin uç noktadaki beklemedeki G/Ç etkinliğini kaydeder ve ardından bu uç noktalar için ilgili G/Ç işleme işlevlerini çağırır.

Ayrıntılar
Parametreler
[in] selectRes
Seçimin döndürdüğü değer.
[in] readfds
Okunan dosya tanımlayıcıları grubunun işaretçisi.
[in] writefds
Dosya yazma açıklayıcıları grubunun işaretçisi.
[in] exceptfds
Hatalı dosya tanımlayıcıları grubunu gösteren bir işaretçi.

InetLayer

 InetLayer(
  void
)

Bu, InetLayer varsayılan oluşturucusudur.

Bazı temel veri üyelerini başlatma işlemini gerçekleştirir; bununla birlikte, InetLayer açık bir başlatıcı tasarım kalıbı takip ettiğinden, InetLayer::Init yönteminin nesne kullanılmadan önce başarılı bir şekilde çağrılması gerekir.

Init

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

Bu, InetLayer açık başlatıcısıdır.

InetLayer'ın kullanılabilmesi için bu komutun çağrılması ve başarıyla tamamlanması gerekir.

Çağrıyı yapan, platforma özel kanca işlevleri aracılığıyla geri verilecek isteğe bağlı bir bağlam bağımsız değişkeni sağlayabilir. LwIP tabanlı adaptasyonlar için bu genellikle InetLayer örneğiyle ilişkilendirilmiş etkinlik sırasına bir işaretçi olur.

Platformlar, platforma özgü yapılandırma başlığında INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS öğesini onaylamayı ve platforma özel özelleştirmeleri veya veri uzantılarını InetLayer'a uygulamak için Platform::InetKatman::WillInit ve Platform::InetKatman::DidInit kancalarını etkinleştirmeyi tercih edebilir.

Ayrıntılar
Parametreler
[in] aSystemLayer
Weave System Katmanı'nın gerekli bir örneği zaten başarıyla başlatıldı.
[in] aContext
Platforma özel herhangi bir kanca işlevi aracılığıyla çağrıya geri verilecek isteğe bağlı bir bağlam bağımsız değişkeni.
Değerleri Döndür
INET_ERROR_INCORRECT_STATE
InetLayer yanlış durumda olabilir.
INET_ERROR_NO_MEMORY
Yeni bir zamanlayıcı için bu istek için InetLayer'ın kaynağı tükenirse.
other
Başlatma hatasının nedenini belirten platforma özgü hatalar.
INET_NO_ERROR
Başarıya merhaba.

InitQueueLimiter

INET_ERROR InitQueueLimiter(
  void
)

MatchLocalIPv6Subnet

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

Belirtilen IPv6 adresi ile yerel olarak yapılandırılmış IPv6 adreslerinden herhangi biri arasında önek eşleşmesi olup olmadığını kontrol edin.

Ayrıntılar
Parametreler
[in] addr
Önek eşleşmesini kontrol edilecek IPv6 adresi.
İadeler
başarılı bir eşleşme bulunursa true (doğru), aksi takdirde false (yanlış) değerini alır.

NewRawEndPoint

INET_ERROR NewRawEndPoint(
  IPVersion ipVer,
  IPProtocol ipProto,
  RawEndPoint **retEndPoint
)

Belirli bir IP sürümü ve protokolü için yeni bir RawEndPoint nesnesi oluşturur.

Ayrıntılar
Parametreler
[in] ipVer
IPv4 veya IPv6.
[in] ipProto
IP ailesindeki bir protokol (ör. ICMPv4 veya ICMPv6) içerir.
[in,out] retEndPoint
Nesne oluşturma işleminin tamamlanmasından sonra dönüş parametresi olan RawEndPoint nesnesinin işaretçisine yönlendiren bir işaret. *Oluşturma başarısız olursa retEndPoint NULL olur.
Değerleri Döndür
INET_ERROR_INCORRECT_STATE
InetLayer nesnesi başlatılmadıysa
INET_ERROR_NO_ENDPOINTS
InetLayerRawEndPoint havuzu doluysa ve yeni uç nokta oluşturulamaz.
INET_NO_ERROR
Başarıya merhaba.

NewTCPEndPoint

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

Yeni bir TCPEndPoint nesnesi oluşturur.

Ayrıntılar
Parametreler
[in,out] retEndPoint
Nesne oluşturma işleminin tamamlanmasından sonra döndürülen parametre olan TCPEndPoint nesnesinin işaretçisine işaret eden bir işaret. *Oluşturma başarısız olursa retEndPoint NULL olur.
Değerleri Döndür
INET_ERROR_INCORRECT_STATE
InetLayer nesnesi başlatılmadıysa
INET_ERROR_NO_ENDPOINTS
InetLayerTCPEndPoint havuzu doluysa ve yeni uç nokta oluşturulamaz.
INET_NO_ERROR
Başarıya merhaba.

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

Yeni bir TunEndPoint nesnesi oluşturur.

Ayrıntılar
Parametreler
[in,out] retEndPoint
Nesne oluşturma işleminin tamamlanmasından sonra döndürülen parametre olan TunEndPoint nesnesinin işaretçisine işaret eden bir işaret. *Oluşturma başarısız olursa retEndPoint NULL olur.
Değerleri Döndür
INET_ERROR_INCORRECT_STATE
InetLayer nesnesi başlatılmadıysa
INET_ERROR_NO_ENDPOINTS
InetLayerTunEndPoint havuzu doluysa ve yeni havuz oluşturulamaz.
INET_NO_ERROR
Başarıya merhaba.

NewUDPEndPoint

INET_ERROR NewUDPEndPoint(
  UDPEndPoint **retEndPoint
)

Yeni bir UDPEndPoint nesnesi oluşturur.

Ayrıntılar
Parametreler
[in,out] retEndPoint
Nesne oluşturma işleminin tamamlanmasından sonra döndürme parametresi olan UDPEndPoint nesnesinin işaretçisine işaret eden bir işaret. *Oluşturma başarısız olursa retEndPoint NULL olur.
Değerleri Döndür
INET_ERROR_INCORRECT_STATE
InetLayer nesnesi başlatılmadıysa
INET_ERROR_NO_ENDPOINTS
InetLayerUDPEndPoint havuzu doluysa ve yeni uç nokta oluşturulamaz.
INET_NO_ERROR
Başarıya merhaba.

PrepareSelect

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

select() için kullanılacak dosya tanımlayıcısı gruplarını hazırlayın.

Ayrıntılar
Parametreler
[out] nfds
Dosya tanımlayıcı grubundaki dosya tanımlayıcıları aralığı.
[in] readfds
Okunabilir dosya açıklayıcıları grubunun işaretçisi.
[in] writefds
Yazılabilir dosya açıklayıcıları grubunun işaretçisi.
[in] exceptfds
Hatalı dosya tanımlayıcıları grubunu gösteren bir işaretçi.
[in] sleepTimeTV
Seçimin ne kadar süreyle uyuması gerektiğini belirten bir yapı işaretçisi

ResolveHostAddress

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

Belirtilen ana makine adının IP adresi çözümlemesini gerçekleştirin.

Ayrıntılar
Parametreler
[in] hostName
Sorgulanacak ana makine adını temsil eden, NULL sona ermemiş bir C dizesine işaret eden.
[in] hostNameLen
Ana makine adının dize uzunluğu.
[in] options
Ana makine adı çözümlemesinin nasıl gerçekleştirileceğini kontrol eden bir tam sayı değeri.
                    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
DNS tablosunda depolanacak maksimum adres sayısı.
[in] addrArray
DNS tablosunu gösteren bir işaretçi.
[in] onComplete
DNS isteği tamamlandığında geri çağırma işlevine yönlendiren bir işaretçi.
[in] appState
Bir DNS isteği tamamlandığında onComplete'e geçirilecek uygulama durumuna işaret eden bir işaret.
Değerleri Döndür
INET_NO_ERROR
DNS isteği başarıyla işlenip işlenmez.
INET_ERROR_NO_MEMORY
değerini girin.
INET_ERROR_HOST_NAME_TOO_LONG
istenen ana makine adı çok uzunsa.
INET_ERROR_HOST_NOT_FOUND
.
INET_ERROR_DNS_TRY_AGAIN
bir alan adı sunucusu geçici bir hata göstergesi döndürdüyse; daha sonra tekrar deneyin.
INET_ERROR_DNS_NO_RECOVERY
alan adı sunucusu, düzeltilemeyen bir hata döndürdü.
INET_ERROR_NOT_IMPLEMENTED
temel platformda DNS çözümlemesi etkinleştirilmemişse.
other
Temel DNS çözümleyici uygulaması tarafından döndürülen POSIX ağı veya OS hatası.

ResolveHostAddress

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

Belirtilen ana makine adının IP adresi çözümlemesini gerçekleştirin.

Ayrıntılar
Parametreler
[in] hostName
Sorgulanacak ana makine adını temsil eden, NULL sona ermemiş bir C dizesine işaret eden.
[in] hostNameLen
Ana makine adının dize uzunluğu.
[in] maxAddrs
DNS tablosunda depolanacak maksimum adres sayısı.
[in] addrArray
DNS tablosunu gösteren bir işaretçi.
[in] onComplete
DNS isteği tamamlandığında geri çağırma işlevine yönlendiren bir işaretçi.
[in] appState
Bir DNS isteği tamamlandığında onComplete'e geçirilecek uygulama durumuna işaret eden bir işaret.
Değerleri Döndür
INET_NO_ERROR
DNS isteği başarıyla işlenip işlenmez.
INET_ERROR_NO_MEMORY
değerini girin.
INET_ERROR_HOST_NAME_TOO_LONG
istenen ana makine adı çok uzunsa.
INET_ERROR_HOST_NOT_FOUND
.
INET_ERROR_DNS_TRY_AGAIN
bir alan adı sunucusu geçici bir hata göstergesi döndürdüyse; daha sonra tekrar deneyin.
INET_ERROR_DNS_NO_RECOVERY
alan adı sunucusu, düzeltilemeyen bir hata döndürdü.
INET_ERROR_NOT_IMPLEMENTED
temel platformda DNS çözümlemesi etkinleştirilmemişse.
other
Temel DNS çözümleyici uygulaması tarafından döndürülen POSIX ağı veya OS hatası.

ResolveHostAddress

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

Belirtilen ana makine adının IP adresi çözümlemesini gerçekleştirin.

Ayrıntılar
Parametreler
[in] hostName
Sorgulanacak ana makine adını temsil eden, NULL sonlu C dizesine işaret eden bir işaret.
[in] maxAddrs
DNS tablosunda depolanacak maksimum adres sayısı.
[in] addrArray
DNS tablosunu gösteren bir işaretçi.
[in] onComplete
DNS isteği tamamlandığında geri çağırma işlevine yönlendiren bir işaretçi.
[in] appState
Bir DNS isteği tamamlandığında onComplete'e geçirilecek uygulama durumuna işaret eden bir işaret.
Değerleri Döndür
INET_NO_ERROR
DNS isteği başarıyla işlenip işlenmez.
INET_ERROR_NO_MEMORY
değerini girin.
INET_ERROR_HOST_NAME_TOO_LONG
istenen ana makine adı çok uzunsa.
INET_ERROR_HOST_NOT_FOUND
.
INET_ERROR_DNS_TRY_AGAIN
bir alan adı sunucusu geçici bir hata göstergesi döndürdüyse; daha sonra tekrar deneyin.
INET_ERROR_DNS_NO_RECOVERY
alan adı sunucusu, düzeltilemeyen bir hata döndürdü.
INET_ERROR_NOT_IMPLEMENTED
temel platformda DNS çözümlemesi etkinleştirilmemişse.
other
Temel DNS çözümleyici uygulaması tarafından döndürülen POSIX ağı veya OS hatası.

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

Bu işlem, istemciye özel platform verilerini, istemci platformu tarafından daha sonra almak üzere örneğe ayarlar.

Ayrıntılar
Parametreler
[in] aPlatformData
Ayarlanacak istemciye özel platform verileri.

Kapat

INET_ERROR Shutdown(
  void
)

Bu, InetLayer'ın açık başlatıcısıdır ve örneklenmiş bir InetLayer örneğinin yok edilmesinden önce çağrılmalıdır.

Platformlar, platforma özgü yapılandırma başlığında INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS öğesini onaylamayı ve platforma özel özelleştirmelerin veya veri uzantılarının InetLayer üzerinde temizlenmesini sağlamak için Platform::InetKatman::WillShutdown ve Platform::InetKatman::DidShutdown kancalarını etkinleştirmeyi seçebilir.

Ayrıntılar
İadeler
Başarıda INET_NO_ERROR; aksi takdirde, kapatma hatasının nedenini belirten belirli bir hata mesajı gösterilir.

SystemLayer

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

Herkese açık statik işlevler

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
)