nl::Inet::InetLayer

#include <src/inet/InetLayer.h>

Bu ayar, tek bir ileti dizisi için zamanlayıcılar, Alan Adı Sistemi (DNS) çözünürlüğü, TCP ağ aktarımı, UDP ağ aktarımı ve ham ağ aktarımı 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 platforma uyum sağlamada geleneksel anket / seçim uygulaması aracılığıyla işlenir.

LwIP'de etkinlik hazırlık bildirimi, etkinlikler / mesajlar ve etkinlik / mesaj sistemi için platforma ve sisteme özgü kancalar aracılığıyla ele alınır.

İnşaat Ustaları ve Yıkıcılar

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

Herkese açık türler

@5{
  kState_NotInitialized = 0,
  kState_Initialized = 1,
  kState_ShutdownInProgress = 2
}
enum
InetLayer nesnesinin mevcut durumu.
DNSResolveCompleteFunct Tür
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
Etkin olabilecek tüm bekleyen DNS sorgularını (eşleşmeyi tamamlamak için geri çağırma ve başvuru 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 bağlantı veya arayüz için yerel bağlantı IPv6 adresini alın.
GetPlatformData(void)
void *
Bu, daha önce ayarlandıysa, örneğe atanmış istemciye özel platform verilerini döndürür.
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
void
Seçili görüşmeden G/Ç işlemini gerçekleştirin.
Init(Weave::System::Layer & aSystemLayer, void *aContext)
Bu, InetLayer açık başlatıcıdır.
InitQueueLimiter(void)
MatchLocalIPv6Subnet(const IPAddress & addr)
bool
Belirtilen IPv6 adresi ile yerel olarak yapılandırılmış herhangi bir IPv6 adresi arasında bir ön ek 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 çalışacak dosya açıklayıcı 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, müşteriye özel belirtilen platform verilerini daha sonra istemci platformu tarafından alınacak şekilde örneğe ayarlar.
Shutdown(void)
Bu, açık InetLayer açık hava temizleyicidir ve örneklenmiş bir InetLayer örneğinin atılmasından ö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ılmadı durumu.

kState_ShutdownInProgress

Kapatılmanın tetiklendiği durum.

DNSSolutionCompleteFunct

DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct

Herkese açık özellikler

Durum

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

InetLayer nesnesinin mevcut durumu.

[SALT OKUMA] Geçerli durum.

Herkese açık statik özellikler

sInetEventHandlerTemsilcisi

Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate

Herkese açık işlevler

CanEnqueueDroppableEtkinliği

bool CanEnqueueDroppableEvent(
  void
)

çözBarındırıcı Adresini İptal Et

void CancelResolveHostAddress(
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Etkin olabilecek tüm bekleyen DNS sorgularını (eşleşmeyi tamamlamak için geri çağırma ve başvuru durumu için) iptal edin.

Ayrıntılar
Parametreler
[in] onComplete
Bir DNS isteği tamamlandığında geri çağırma işlevinin işaretçisi.
[in] appState
Geri çağırma işlevine bağımsız değişken olarak iletilecek uygulama durumu nesnesinin işaretçisi.

DroppableEventDequeued

void DroppableEventDequeued(
  void
)

GetInterfaceFromAdder

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üretilemiyorsa INET_NULL_INTERFACEID olarak ayarlanır.

Ayrıntılar
Parametreler
[in] addr
IPAddress nesnesine referans.
[out] intfId
arayüz kimliği nesnesine referans.
İadeler
Koşulsuz bir şekilde INET_NO_ERROR.

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

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

Ayrıntılar
Parametreler
[in] link
Bağlantı yerel IPv6 adresinin arandığı arayüz.
[out] llAddr
Bağlantı için yerel IPv6 adresi.
Döndürülen Değerler
INET_ERROR_NOT_IMPLEMENTED
IPv6 desteklenmiyorsa.
INET_ERROR_BAD_ARGS
Bağlantı yerel adresi BOŞ ise.
INET_ERROR_ADDRESS_NOT_FOUND
Bağlantıda herhangi bir adres yoksa.
INET_NO_ERROR
Başarılı.

GetPlatformData

void * GetPlatformData(
  void
)

Bu, daha önce ayarlandıysa, örneğe atanmış istemciye özel platform verilerini döndürür.

Ayrıntılar
İadeler
Daha önce ayarlanmışsa müşteriye özel platform verileri; aksi takdirde BOŞ olacaktır.

Herkese Açık Kullanıcı Seçimi

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

Seçili görüşmeden G/Ç işlemini gerçekleştirin.

Bu yöntem, her etkin uç nokta için 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çili aramanın dönüş değeri.
[in] readfds
Okuma dosyası açıklayıcıları grubuna bir işaretçi.
[in] writefds
Yazma dosyası tanımlayıcıları grubuna işaret eden öğeler.
[in] exceptfds
Hatalı dosya tanımlayıcılar grubuna işaret eder.

InetLayer

 InetLayer(
  void
)

Bu, InetLayer varsayılan oluşturucudur.

Bazı temel veri üyesi başlatma işlemini gerçekleştirir. Ancak, InetLayer açık bir başlatıcı tasarım kalıbını kullandığından, InetLayer::Init yöntemi nesne kullanılmadan önce başarıyla çağrılmalıdır.

Başlangıç

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

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

Inetlayer'ın kullanılabilmesi için önce çağrılması ve başarılı bir şekilde tamamlanması gerekir.

Arayan, platforma özgü herhangi bir kanca işlevi aracılığıyla iletilecek isteğe bağlı bir bağlam bağımsız değişkeni sağlayabilir. LwIP tabanlı uyarlamalar için bu, genellikle InetLayer örneğiyle ilişkilendirilen etkinlik sırasının işaretçisi olur.

Platformlar, platforma özgü yapılandırma başlığında INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS iddiasında bulunabilir ve Platform::InetLayer::WillInit ve Platform::InetLayer::WithInit kancalarını kullanarak platforma özel özelleştirmeleri veya veri uzantılarını InetLayer

Ayrıntılar
Parametreler
[in] aSystemLayer
Gerekli bir Weave Sistem Katmanı örneği başarıyla başlatıldı.
[in] aContext
Platforma özgü herhangi bir kanca işlevi aracılığıyla arayana iletilecek isteğe bağlı bir bağlam bağımsız değişkeni.
Döndürülen Değerler
INET_ERROR_INCORRECT_STATE
Inetlayer yanlış bir durumdaysa.
INET_ERROR_NO_MEMORY
Yeni bir zamanlayıcı için bu isteğin kaynağı InetLayer tarafından kesilir.
other
İlk kullanıma hazırlama hatasının nedenini belirten platforma özgü hatalar.
INET_NO_ERROR
Başarılı.

İnitQueueLimiter

INET_ERROR InitQueueLimiter(
  void
)

MatchLocalIPv6Altnet

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

Belirtilen IPv6 adresi ile yerel olarak yapılandırılmış herhangi bir IPv6 adresi arasında bir ön ek olup olmadığını kontrol edin.

Ayrıntılar
Parametreler
[in] addr
Ön ek eşleşmesini kontrol edecek IPv6 adresi.
İadeler
başarılı bir eşleşme bulunursa true (doğru), kullanmıyorsa false (yanlış) olarak ayarlanı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 ailesi içinde bir protokol (ör. ICMPv4 veya ICMPv6).
[in,out] retEndPoint
Nesne oluşturma işlemi tamamlandığında iade parametresi olan RawEndPoint nesnesinin işaretçisi. *Oluşturma işlemi başarısız olursa rellEndPoint NULL olur.
Döndürülen Değerler
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ılı.

NewTCPEndPoint

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

Yeni bir TCPEndPoint nesnesi oluşturur.

Ayrıntılar
Parametreler
[in,out] retEndPoint
Nesne oluşturma işlemi tamamlandıktan sonra dönüş parametresi olan TCPEndPoint nesnesinin işaretçisi. *Oluşturma işlemi başarısız olursa rellEndPoint NULL olur.
Döndürülen Değerler
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ılı.

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

Yeni bir TunEndPoint nesnesi oluşturur.

Ayrıntılar
Parametreler
[in,out] retEndPoint
Nesne oluşturma işlemi tamamlandığında iade parametresi olan TunEndPoint nesnesinin işaretçisi. *Oluşturma işlemi başarısız olursa rellEndPoint NULL olur.
Döndürülen Değerler
INET_ERROR_INCORRECT_STATE
InetLayer nesnesi başlatılmadıysa.
INET_ERROR_NO_ENDPOINTS
InetLayerTunEndPoint havuzu doluysa ve yeni bir havuz oluşturulamaz.
INET_NO_ERROR
Başarılı.

YeniUDPEndPoint

INET_ERROR NewUDPEndPoint(
  UDPEndPoint **retEndPoint
)

Yeni bir UDPEndPoint nesnesi oluşturur.

Ayrıntılar
Parametreler
[in,out] retEndPoint
Nesne oluşturma işlemi tamamlandıktan sonra dönüş parametresi olan UDPEndPoint nesnesinin işaretçisi. *Oluşturma işlemi başarısız olursa rellEndPoint NULL olur.
Döndürülen Değerler
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ılı.

ChooseSelect

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

select() için çalışacak dosya açıklayıcı gruplarını hazırlayın.

Ayrıntılar
Parametreler
[out] nfds
Dosya tanımlayıcısı kümesindeki dosya tanımlayıcılarının aralığı.
[in] readfds
Okunabilir dosya tanımlayıcılar grubuna işaret eder.
[in] writefds
Yazılabilir dosya tanımlayıcıları grubuna işaretçi.
[in] exceptfds
Hatalı dosya tanımlayıcılar grubuna işaret eder.
[in] sleepTimeTV
Seçimin ne kadar süre beklemesi gerektiğini belirten yapıya işaret eden öğeler

SolutionHostAdresi

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 olmayan bir C dizesine işaretçi.
[in] hostNameLen
Ana makine adının dize uzunluğu.
[in] options
Ana makine adı çözümlemesinin nasıl gerçekleştirildiğ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 tablosuna işaretçi.
[in] onComplete
Bir DNS isteği tamamlandığında geri çağırma işlevinin işaretçisi.
[in] appState
Bir DNS isteği tamamlandığında uygulama durumunun onComplete'e iletileceği uygulama durumunun işaretçisi.
Döndürülen Değerler
INET_NO_ERROR
DNS isteği başarıyla işlenir.
INET_ERROR_NO_MEMORY
Inet katman çözücü havuzu doluysa.
INET_ERROR_HOST_NAME_TOO_LONG
İstenen ana makine adı çok uzunsa.
INET_ERROR_HOST_NOT_FOUND
İstek ana makine adı bir adrese çözümlenemediyse.
INET_ERROR_DNS_TRY_AGAIN
Ad sunucusu geçici bir hata göstergesi döndürdüyse daha sonra tekrar deneyin.
INET_ERROR_DNS_NO_RECOVERY
Alan adı sunucusu, kurtarılamayan bir hata döndürdüyse.
INET_ERROR_NOT_IMPLEMENTED
Temel platformda DNS çözümlemesi etkin değilse.
other
Temel DNS çözümleyici uygulaması tarafından döndürülen POSIX ağ veya işletim sistemi hatası.

SolutionHostAdresi

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 olmayan bir C dizesine işaretçi.
[in] hostNameLen
Ana makine adının dize uzunluğu.
[in] maxAddrs
DNS tablosunda depolanacak maksimum adres sayısı.
[in] addrArray
DNS tablosuna işaretçi.
[in] onComplete
Bir DNS isteği tamamlandığında geri çağırma işlevinin işaretçisi.
[in] appState
Bir DNS isteği tamamlandığında uygulama durumunun onComplete'e iletileceği uygulama durumunun işaretçisi.
Döndürülen Değerler
INET_NO_ERROR
DNS isteği başarıyla işlenir.
INET_ERROR_NO_MEMORY
Inet katman çözücü havuzu doluysa.
INET_ERROR_HOST_NAME_TOO_LONG
İstenen ana makine adı çok uzunsa.
INET_ERROR_HOST_NOT_FOUND
İstek ana makine adı bir adrese çözümlenemediyse.
INET_ERROR_DNS_TRY_AGAIN
Ad sunucusu geçici bir hata göstergesi döndürdüyse daha sonra tekrar deneyin.
INET_ERROR_DNS_NO_RECOVERY
Alan adı sunucusu, kurtarılamayan bir hata döndürdüyse.
INET_ERROR_NOT_IMPLEMENTED
Temel platformda DNS çözümlemesi etkin değilse.
other
Temel DNS çözümleyici uygulaması tarafından döndürülen POSIX ağ veya işletim sistemi hatası.

SolutionHostAdresi

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 sonlandırılmış bir C dizesine işaretçi.
[in] maxAddrs
DNS tablosunda depolanacak maksimum adres sayısı.
[in] addrArray
DNS tablosuna işaretçi.
[in] onComplete
Bir DNS isteği tamamlandığında geri çağırma işlevinin işaretçisi.
[in] appState
Bir DNS isteği tamamlandığında uygulama durumunun onComplete'e iletileceği uygulama durumunun işaretçisi.
Döndürülen Değerler
INET_NO_ERROR
DNS isteği başarıyla işlenir.
INET_ERROR_NO_MEMORY
Inet katman çözücü havuzu doluysa.
INET_ERROR_HOST_NAME_TOO_LONG
İstenen ana makine adı çok uzunsa.
INET_ERROR_HOST_NOT_FOUND
İstek ana makine adı bir adrese çözümlenemediyse.
INET_ERROR_DNS_TRY_AGAIN
Ad sunucusu geçici bir hata göstergesi döndürdüyse daha sonra tekrar deneyin.
INET_ERROR_DNS_NO_RECOVERY
Alan adı sunucusu, kurtarılamayan bir hata döndürdüyse.
INET_ERROR_NOT_IMPLEMENTED
Temel platformda DNS çözümlemesi etkin değilse.
other
Temel DNS çözümleyici uygulaması tarafından döndürülen POSIX ağ veya işletim sistemi hatası.

PlatformPlatform Verileri

void SetPlatformData(
  void *aPlatformData
)

Bu işlem, müşteriye özel belirtilen platform verilerini daha sonra istemci platformu tarafından alınacak şekilde örneğe ayarlar.

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

Kapat

INET_ERROR Shutdown(
  void
)

Bu, açık InetLayer açık hava temizleyicidir ve örneklenmiş bir InetLayer örneğinin atılmasından önce çağrılmalıdır.

Platformlar, platforma özgü yapılandırma başlığında INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS iddiasında bulunabilir ve Platform::InetLayer::WillShutdown ve Platform::InetLayer::ByShutdown kancalarını kullanarak platforma özgü özelleştirmelerin veya veri uzantılarının InetLayer tarafından temizlenmesini sağlayabilir.

Ayrıntılar
İadeler
Başarıyla ilgili INET_NO_ERROR; aksi takdirde, kapatma hatasının nedenini belirten belirli bir hata.

Sistem Katmanı

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
)

IsDroppableEtkinliği

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

Enstantane

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