nl::Inet::InetLayer

#include <src/inet/InetLayer.h>

Bu ayar, tek bir iş parçacığı 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 durumu bildirimi, dosya tanımlayıcıları ve platform uyarlamasında geleneksel bir anket / seçme uygulaması aracılığıyla yönetilir.

LwIP için etkinlik hazırlık bildirimi, etkinlikler / mesajlar ve 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 kurucusudur.

Herkese açık türler

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

Herkese açık özellikler

State
enum nl::Inet::InetLayer::@5
InetLayer nesnesinin geçerli durumu.

Herkese açık statik özellikler

sInetEventHandlerDelegate

Kamu işlevleri

CanEnqueueDroppableEvent(void)
bool
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
void
Hâlâ etkin olabilecek, bekleyen DNS sorgularını (eşleşme 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)
Belirli bir bağlantı veya arayüz için bağlantı yerel IPv6 adresini alın.
GetPlatformData(void)
void *
Bu işlem, örneğe atanmış olan istemciye özel platform verilerini döndürür (örnek daha önce ayarlanmışsa).
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
void
Belirli bir görüşmeden G/Ç'yi yönetin.
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 adresleri 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 nesne 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 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, istemciye özel belirtilen platform verilerini daha sonra istemci platformu tarafından alınabilmesi için örneğe ayarlar.
Shutdown(void)
Bu, InetLayer açık tanımlayıcıdır 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 geçerli durumu.

Özellikler
kState_Initialized

Başlatıldı durumu.

kState_NotInitialized

Başlatılmadı durumu.

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 geçerli durumu.

[READ-ONLY] Geçerli durum.

Herkese açık statik özellikler

sInetEventHandlerDelegate

Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate

Kamu işlevleri

CanEnqueueDroppableEvent

bool CanEnqueueDroppableEvent(
  void
)

CancelResolveHostAddress

void CancelResolveHostAddress(
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Hâlâ etkin olabilecek, bekleyen DNS sorgularını (eşleşme 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 giden işaretçi.
[in] appState
Geri çağırma işlevine bağımsız değişken olarak geçirilecek, bir uygulama durum nesnesine işaret eden işaretçi.

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ı oluşturulamazsa INET_NULL_INTERFACEID olarak ayarlanır.

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

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

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

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

GetPlatformData

void * GetPlatformData(
  void
)

Bu işlem, örneğe atanmış olan istemciye özel platform verilerini döndürür (örnek daha önce ayarlanmışsa).

Ayrıntılar
İadeler
İstemciye özel platform verileri (daha önce ayarlanmışsa ayarlanırsa NULL).

HandleSelectResult

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

Belirli bir görüşmeden G/Ç'yi yönetin.

Bu yöntem, her etkin uç noktaya 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
Select çağrısının döndürülen değeri.
[in] readfds
Okunan dosya tanımlayıcıları kümesinin işaretçisi.
[in] writefds
Yazma dosyası açıklayıcıları kümesinin işaretçisi.
[in] exceptfds
Hatalı dosya tanımlayıcıları grubunun işaretçisi.

InetLayer

 InetLayer(
  void
)

Bu, InetLayer varsayılan kurucusudur.

Bazı temel veri üyesi başlatma işlemleri gerçekleştirir; ancak InetLayer açık bir başlatıcı tasarım kalıbı izlediği için InetKatman::Init yöntemi, nesneyi kullanmadan önce başarılı bir şekilde çağrılmalıdır.

Başlat

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

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

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

Arayan, platforma özgü herhangi bir kanca işlevi aracılığıyla geri alınacak 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şkilendirilmiş etkinlik sırasının işaretçisi olur.

Platformlar, platforma özel yapılandırma başlığında INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS ifadesini doğrulamayı tercih edebilir ve Platform::InetKatman::WillInit ve Platform::Inettier::DidInit kancalarını, platforma özel özelleştirmeleri veya veri uzantılarını InetLayer'e uygulamak için etkinleştirebilir.

Ayrıntılar
Parametreler
[in] aSystemLayer
Weave Sistem Katmanı'nın gerekli bir örneği zaten başarıyla başlatıldı.
[in] aContext
Platforma özgü herhangi bir kanca işlevi aracılığıyla çağrıyı yapana geri aktarılacak 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
InetLayer'in yeni bir zamanlayıcı için bu isteğe ilişkin kaynağı biterse.
other
Başlatma hatasının nedenini gösteren platforma özel hatalar.
INET_NO_ERROR
Başarılı olun.

InitQueueLimiter

INET_ERROR InitQueueLimiter(
  void
)

MatchLocalIPv6Subnet

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

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

Ayrıntılar
Parametreler
[in] addr
Önek eşleşmesi için kontrol edilecek IPv6 adresi.
İadeler
Başarılı bir eşleşme bulunursa doğru, aksi takdirde 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 nesne oluşturur.

Ayrıntılar
Parametreler
[in] ipVer
IPv4 veya IPv6.
[in] ipProto
IP ailesindeki bir protokol (ör. ICMPv4 veya ICMPv6).
[in,out] retEndPoint
Nesne oluşturma tamamlandığında döndürülen bir parametre olan RawEndPoint nesnesinin işaretçisine ait işaretçi. *Oluşturma başarısız olursa retEndPoint NULL olacaktır.
Döndürülen Değerler
INET_ERROR_INCORRECT_STATE
InetLayer nesnesi başlatılmazsa.
INET_ERROR_NO_ENDPOINTS
InetLayerRawEndPoint havuzu doluysa ve yeni uç nokta oluşturulamaz.
INET_NO_ERROR
Başarılı olun.

NewTCPEndPoint

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

Yeni bir TCPEndPoint nesnesi oluşturur.

Ayrıntılar
Parametreler
[in,out] retEndPoint
Nesne oluşturma tamamlandığında döndürülen bir parametre olan TCPEndPoint nesnesine ait işaretçi. *Oluşturma başarısız olursa retEndPoint NULL olacaktır.
Döndürülen Değerler
INET_ERROR_INCORRECT_STATE
InetLayer nesnesi başlatılmazsa.
INET_ERROR_NO_ENDPOINTS
InetLayerTCPEndPoint havuzu doluysa ve yeni uç nokta oluşturulamaz.
INET_NO_ERROR
Başarılı olun.

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

Yeni bir TunEndPoint nesnesi oluşturur.

Ayrıntılar
Parametreler
[in,out] retEndPoint
Nesne oluşturma tamamlandığında döndürülen bir parametre olan TunEndPoint nesnesine ait bir işaretçi. *Oluşturma başarısız olursa retEndPoint NULL olacaktır.
Döndürülen Değerler
INET_ERROR_INCORRECT_STATE
InetLayer nesnesi başlatılmazsa.
INET_ERROR_NO_ENDPOINTS
InetLayerTunEndPoint havuzu doluysa ve yeni havuz oluşturulamazsa.
INET_NO_ERROR
Başarılı olun.

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ının ardından döndürülen bir parametre olan UDPEndPoint nesnesine ait işaretçiye giden işaretçi. *Oluşturma başarısız olursa retEndPoint NULL olacaktır.
Döndürülen Değerler
INET_ERROR_INCORRECT_STATE
InetLayer nesnesi başlatılmazsa.
INET_ERROR_NO_ENDPOINTS
InetLayerUDPEndPoint havuzu doluysa ve yeni uç nokta oluşturulamaz.
INET_NO_ERROR
Başarılı olun.

PrepareSelect

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

select() için kullanılacak dosya açıklayıcı gruplarını hazırlayın.

Ayrıntılar
Parametreler
[out] nfds
Dosya açıklayıcı grubundaki dosya tanımlayıcıları aralığı.
[in] readfds
Okunabilir dosya tanımlayıcıları kümesinin işaretçisi.
[in] writefds
Yazılabilir dosya tanımlayıcıları kümesinin işaretçisi.
[in] exceptfds
Hatalı dosya tanımlayıcıları grubunun işaretçisi.
[in] sleepTimeTV
Seçimin ne kadar süre uyulması 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 sonlandırılmamış bir C dizesinin işaretçisi.
[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ğeridir.
                    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 tablosunun işaretçisi.
[in] onComplete
DNS isteği tamamlandığında geri çağırma işlevine giden işaretçi.
[in] appState
Bir DNS isteği tamamlandığında onComplete'a iletilecek uygulama durumuna yönelik bir işaretçi.
Döndürülen Değerler
INET_NO_ERROR
DNS isteği başarıyla işlenir.
INET_ERROR_NO_MEMORY
doluysa Inet katmanı çözümleyici havuzu dolu olmalıdır.
INET_ERROR_HOST_NAME_TOO_LONG
İstenen ana makine adı çok uzunsa.
INET_ERROR_HOST_NOT_FOUND
isteği ana makine adı bir adrese çözümlenemediyse.
INET_ERROR_DNS_TRY_AGAIN
Alan adı sunucusu geçici bir hata göstergesi döndürürse daha sonra tekrar deneyin.
INET_ERROR_DNS_NO_RECOVERY
(Bir alan adı sunucusu kurtarılamayan bir hata döndürdüyse).
INET_ERROR_NOT_IMPLEMENTED
DNS çözümlemesi temel platformda 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 sonlandırılmamış bir C dizesinin işaretçisi.
[in] hostNameLen
Ana makine adının dize uzunluğu.
[in] maxAddrs
DNS tablosunda depolanacak maksimum adres sayısı.
[in] addrArray
DNS tablosunun işaretçisi.
[in] onComplete
DNS isteği tamamlandığında geri çağırma işlevine giden işaretçi.
[in] appState
Bir DNS isteği tamamlandığında onComplete'a iletilecek uygulama durumuna yönelik bir işaretçi.
Döndürülen Değerler
INET_NO_ERROR
DNS isteği başarıyla işlenir.
INET_ERROR_NO_MEMORY
doluysa Inet katmanı çözümleyici havuzu dolu olmalıdır.
INET_ERROR_HOST_NAME_TOO_LONG
İstenen ana makine adı çok uzunsa.
INET_ERROR_HOST_NOT_FOUND
isteği ana makine adı bir adrese çözümlenemediyse.
INET_ERROR_DNS_TRY_AGAIN
Alan adı sunucusu geçici bir hata göstergesi döndürürse daha sonra tekrar deneyin.
INET_ERROR_DNS_NO_RECOVERY
(Bir alan adı sunucusu kurtarılamayan bir hata döndürdüyse).
INET_ERROR_NOT_IMPLEMENTED
DNS çözümlemesi temel platformda 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 sona ermiş C dizesine yönlendiren bir işaretçi.
[in] maxAddrs
DNS tablosunda depolanacak maksimum adres sayısı.
[in] addrArray
DNS tablosunun işaretçisi.
[in] onComplete
DNS isteği tamamlandığında geri çağırma işlevine giden işaretçi.
[in] appState
Bir DNS isteği tamamlandığında onComplete'a iletilecek uygulama durumuna yönelik bir işaretçi.
Döndürülen Değerler
INET_NO_ERROR
DNS isteği başarıyla işlenir.
INET_ERROR_NO_MEMORY
doluysa Inet katmanı çözümleyici havuzu dolu olmalıdır.
INET_ERROR_HOST_NAME_TOO_LONG
İstenen ana makine adı çok uzunsa.
INET_ERROR_HOST_NOT_FOUND
isteği ana makine adı bir adrese çözümlenemediyse.
INET_ERROR_DNS_TRY_AGAIN
Alan adı sunucusu geçici bir hata göstergesi döndürürse daha sonra tekrar deneyin.
INET_ERROR_DNS_NO_RECOVERY
(Bir alan adı sunucusu kurtarılamayan bir hata döndürdüyse).
INET_ERROR_NOT_IMPLEMENTED
DNS çözümlemesi temel platformda 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 belirtilen platform verilerini daha sonra istemci platformu tarafından alınabilmesi için örneğe ayarlar.

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

Kapat

INET_ERROR Shutdown(
  void
)

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

Platformlar, platforma özel yapılandırma başlığında INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS ifadesini doğrulamayı tercih edebilir ve Platform::InetKatman::WillShutdown ve Platform::Inettier::DidShutdown kancası ile InetLayer'deki platforma özel özelleştirmelerin veya veri uzantılarının temizlenmesini sağlayabilir.

Ayrıntılar
İadeler
INET_NO_ERROR başarılı olduğunda; aksi takdirde, kapatma hatasının nedenini belirten belirli bir hata 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
)