nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
Layanan ini menyediakan akses ke layanan Internet, termasuk timer, resolusi Domain Name System (DNS), transport jaringan TCP, transport jaringan UDP, dan transport jaringan mentah, untuk satu thread.
Ringkasan
Untuk Soket BSD/POSIX, notifikasi kesiapan peristiwa ditangani melalui deskriptor file dan implementasi polling / pilihan tradisional pada adaptasi platform.
Untuk LwIP, notifikasi kesiapan peristiwa ditangani melalui peristiwa / pesan dan hook khusus platform dan sistem untuk peristiwa / sistem pesan.
Konstruktor dan Destruktor |
|
---|---|
InetLayer(void)
Ini adalah konstruktor default InetLayer.
|
Jenis publik |
|
---|---|
@5{
|
enum Status objek InetLayer saat ini. |
DNSResolveCompleteFunct
|
typedefDNSResolver::OnResolveCompleteFunct
|
Atribut publik |
|
---|---|
State
|
enum nl::Inet::InetLayer::@5
Status objek InetLayer saat ini.
|
Atribut statis publik |
|
---|---|
sInetEventHandlerDelegate
|
Fungsi publik |
|
---|---|
CanEnqueueDroppableEvent(void)
|
bool
|
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
|
void
Batalkan kueri DNS yang belum selesai (untuk callback penyelesaian dan status aplikasi yang cocok) yang mungkin masih aktif.
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
Mendapatkan ID antarmuka untuk alamat IP yang ditentukan.
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
Mendapatkan alamat IPv6 lokal link untuk link atau antarmuka yang ditentukan.
|
GetPlatformData(void)
|
void *
Tindakan ini akan menampilkan data platform khusus klien yang ditetapkan ke instance, jika sebelumnya telah ditetapkan.
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
Tangani I/O dari panggilan telepon tertentu.
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
Ini adalah penginisialisasi eksplisit InetLayer.
|
InitQueueLimiter(void)
|
|
MatchLocalIPv6Subnet(const IPAddress & addr)
|
bool
Periksa apakah ada pencocokan awalan antara alamat IPv6 yang ditentukan dan alamat IPv6 yang dikonfigurasi secara lokal.
|
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
|
Membuat objek RawEndPoint baru untuk versi IP dan protokol tertentu.
|
NewTCPEndPoint(TCPEndPoint **retEndPoint)
|
Membuat objek TCPEndPoint baru.
|
NewTunEndPoint(TunEndPoint **retEndPoint)
|
Membuat objek TunEndPoint baru.
|
NewUDPEndPoint(UDPEndPoint **retEndPoint)
|
Membuat objek UDPEndPoint baru.
|
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
|
void
Siapkan kumpulan deskripsi file untuk
select() yang akan digunakan. |
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Melakukan resolusi alamat IP nama host yang ditentukan.
|
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Melakukan resolusi alamat IP nama host yang ditentukan.
|
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Melakukan resolusi alamat IP nama host yang ditentukan.
|
SetPlatformData(void *aPlatformData)
|
void
Tindakan ini menetapkan data platform khusus klien yang ditentukan ke instance untuk diambil nanti oleh platform klien.
|
Shutdown(void)
|
|
SystemLayer(void) const
|
Fungsi statis publik |
|
---|---|
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
|
Jenis publik
@5
@5
Status objek InetLayer saat ini.
Properti | |
---|---|
kState_Initialized
|
Menginisialisasi status. |
kState_NotInitialized
|
Bukan status yang diinisialisasi. |
kState_ShutdownInProgress
|
Status tempat Shutdown dipicu. |
DNSResolveCompleteFunct
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
Atribut publik
Negara bagian
enum nl::Inet::InetLayer::@5 State
Status objek InetLayer saat ini.
[HANYA BACA] Status saat ini.
Atribut statis publik
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
Fungsi publik
PeristiwaCanEnqueueDroppable
bool CanEnqueueDroppableEvent( void )
BatalkanResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
Batalkan kueri DNS yang belum selesai (untuk callback penyelesaian dan status aplikasi yang cocok) yang mungkin masih aktif.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
DroppableEventDequeue
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
Mendapatkan ID antarmuka untuk alamat IP yang ditentukan.
Jika ID antarmuka tidak dapat diperoleh, ID akan ditetapkan ke INET_NULL_INTERFACEID.
Detail | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Menampilkan |
INET_NO_ERROR tanpa syarat.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
Mendapatkan alamat IPv6 lokal link untuk link atau antarmuka yang ditentukan.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai yang Ditampilkan |
|
MendapatkanPlatform
void * GetPlatformData( void )
Tindakan ini akan menampilkan data platform khusus klien yang ditetapkan ke instance, jika sebelumnya telah ditetapkan.
Detail | |
---|---|
Menampilkan |
Data platform khusus klien, jika sudah ditetapkan sebelumnya; jika tidak, NULL.
|
HandleSelectResult
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
Tangani I/O dari panggilan telepon tertentu.
Metode ini mendaftarkan peristiwa I/O yang tertunda di setiap endpoint aktif, lalu memanggil fungsi penanganan I/O masing-masing untuk endpoint tersebut.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
InetLayer
InetLayer( void )
Ini adalah konstruktor default InetLayer.
Ini melakukan beberapa inisialisasi anggota data dasar; namun, karena InetLayer mengikuti pola desain penginisialisasi eksplisit, metode InetLayer::Init harus berhasil dipanggil sebelum menggunakan objek.
Init
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
Ini adalah penginisialisasi eksplisit InetLayer.
Ini harus dipanggil dan berhasil diselesaikan sebelum InetLayer dapat digunakan.
Pemanggil dapat memberikan argumen konteks opsional yang akan diteruskan kembali melalui fungsi hook khusus platform. Untuk adaptasi berbasis LwIP, ini biasanya akan menjadi pointer ke antrean peristiwa yang terkait dengan instance InetLayer.
Platform dapat memilih untuk menegaskan INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS dalam header konfigurasi khusus platformnya dan mengaktifkan Platform::InetLayer::WillInit dan Platform::InetLayer::DidInit ini untuk memengaruhi penyesuaian khusus platform atau ekstensi data ke InetLayer.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Nilai yang Ditampilkan |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
Periksa apakah ada pencocokan awalan antara alamat IPv6 yang ditentukan dan alamat IPv6 yang dikonfigurasi secara lokal.
Detail | |||
---|---|---|---|
Parameter |
|
||
Menampilkan |
true jika ditemukan kecocokan yang berhasil, jika tidak, false.
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
Membuat objek RawEndPoint baru untuk versi IP dan protokol tertentu.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
NewTCPEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
Membuat objek TCPEndPoint baru.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
Membuat objek TunEndPoint baru.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
NewUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
Membuat objek UDPEndPoint baru.
Detail | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Nilai yang Ditampilkan |
|
PersiapanPilih
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
Siapkan kumpulan deskripsi file untuk select()
yang akan digunakan.
Detail | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Melakukan resolusi alamat IP nama host yang ditentukan.
Detail | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||||||
Nilai yang Ditampilkan |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Melakukan resolusi alamat IP nama host yang ditentukan.
Detail | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||||||
Nilai yang Ditampilkan |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Melakukan resolusi alamat IP nama host yang ditentukan.
Detail | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||||||||||
Nilai yang Ditampilkan |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
Tindakan ini menetapkan data platform khusus klien yang ditentukan ke instance untuk diambil nanti oleh platform klien.
Detail | |||
---|---|---|---|
Parameter |
|
Mematikan
INET_ERROR Shutdown( void )
Ini adalah deinisialisasir eksplisit InetLayer dan harus dipanggil sebelum membuang instance InetLayer yang dibuat instance.
Platform dapat memilih untuk menegaskan INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS dalam header konfigurasi khusus platformnya dan mengaktifkan hook Platform::InetLayer::WillShutdown dan Platform::InetLayer::DidShutdown untuk memengaruhi pembersihan penyesuaian khusus platform atau ekstensi data ke InetLayer.
Detail | |
---|---|
Menampilkan |
INET_NO_ERROR saat berhasil; jika tidak, error tertentu akan menunjukkan alasan kegagalan penonaktifan.
|
SistemLayer
Weave::System::Layer * SystemLayer( void ) const
Fungsi statis publik
HandleInetLayerEvent
Weave::System::Error HandleInetLayerEvent( Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument )
PeristiwaIsDroppable
bool IsDroppableEvent( Weave::System::EventType aType )