nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
ซึ่งจะมอบการเข้าถึงบริการอินเทอร์เน็ต ซึ่งรวมถึงตัวจับเวลา, การแปลงระบบชื่อโดเมน (DNS), การส่งเครือข่าย TCP, การส่งเครือข่าย UDP และการส่งเครือข่ายดิบสำหรับเทรดเดียว
สรุป
สำหรับซ็อกเก็ต BSD/POSIX การแจ้งเตือนความพร้อมของกิจกรรมจะจัดการผ่านข้อบ่งชี้ไฟล์และการนำแบบสำรวจ / การเลือกแบบดั้งเดิมไปใช้การปรับแพลตฟอร์ม
สำหรับ LwIP การแจ้งเตือนความพร้อมของกิจกรรมจะจัดการผ่านเหตุการณ์ / ข้อความ และฮุกเฉพาะแพลตฟอร์มและฮุกเฉพาะระบบสำหรับระบบกิจกรรม / ข้อความ
ผู้ผลิตและผู้ทำลาย |
|
---|---|
InetLayer(void)
นี่คือตัวสร้างเริ่มต้นของ InetLayer
|
ประเภทสาธารณะ |
|
---|---|
@5{
|
enum สถานะปัจจุบันของออบเจ็กต์ InetLayer |
DNSResolveCompleteFunct
|
TypedefDNSResolver::OnResolveCompleteFunct
|
แอตทริบิวต์สาธารณะ |
|
---|---|
State
|
enum nl::Inet::InetLayer::@5
สถานะปัจจุบันของออบเจ็กต์ InetLayer
|
แอตทริบิวต์สาธารณะแบบคงที่ |
|
---|---|
sInetEventHandlerDelegate
|
ฟังก์ชันสาธารณะ |
|
---|---|
CanEnqueueDroppableEvent(void)
|
bool
|
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
|
void
ยกเลิกการสอบถาม DNS ที่รอดำเนินการ (สำหรับการเรียกกลับที่เสร็จสมบูรณ์และสถานะแอปพลิเคชัน) ที่อาจยังทำงานอยู่
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
รับตัวระบุอินเทอร์เฟซสำหรับที่อยู่ IP ที่ระบุ
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
รับที่อยู่ IPv6 ในเครื่องสำหรับลิงก์หรืออินเทอร์เฟซที่ระบุ
|
GetPlatformData(void)
|
void *
การดำเนินการนี้จะส่งคืนข้อมูลแพลตฟอร์มเฉพาะไคลเอ็นต์ที่กำหนดให้อินสแตนซ์ หากมีการตั้งค่าไว้ก่อนหน้านี้
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
จัดการ I/O จากการโทรที่เลือก
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
นี่คือเครื่องมือเริ่มต้นแบบชัดแจ้ง InetLayer
|
InitQueueLimiter(void)
|
|
MatchLocalIPv6Subnet(const IPAddress & addr)
|
bool
ตรวจสอบว่ามีคำนำหน้าที่ตรงกันระหว่างที่อยู่ IPv6 ที่ระบุและที่อยู่ IPv6 ที่กำหนดค่าไว้ในเครื่องหรือไม่
|
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
|
สร้างออบเจ็กต์ RawEndPoint ใหม่สำหรับเวอร์ชัน IP และโปรโตคอลที่เจาะจง
|
NewTCPEndPoint(TCPEndPoint **retEndPoint)
|
สร้างออบเจ็กต์ TCPEndPoint ใหม่
|
NewTunEndPoint(TunEndPoint **retEndPoint)
|
สร้างออบเจ็กต์ TunEndPoint ใหม่
|
NewUDPEndPoint(UDPEndPoint **retEndPoint)
|
สร้างออบเจ็กต์ UDPEndPoint ใหม่
|
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
|
void
เตรียมชุดข้อบ่งชี้ไฟล์ที่จะให้
select() ใช้งาน |
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
ดำเนินการแปลงที่อยู่ IP ของชื่อโฮสต์ที่ระบุ
|
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
ดำเนินการแปลงที่อยู่ IP ของชื่อโฮสต์ที่ระบุ
|
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
ดำเนินการแปลงที่อยู่ IP ของชื่อโฮสต์ที่ระบุ
|
SetPlatformData(void *aPlatformData)
|
void
การดำเนินการนี้จะกำหนดข้อมูลแพลตฟอร์มเฉพาะลูกค้าที่ระบุไปยังอินสแตนซ์สำหรับดึงข้อมูลในภายหลังโดยแพลตฟอร์มไคลเอ็นต์
|
Shutdown(void)
|
|
SystemLayer(void) const
|
ฟังก์ชันสาธารณะแบบคงที่ |
|
---|---|
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
|
ประเภทสาธารณะ
@5
@5
สถานะปัจจุบันของออบเจ็กต์ InetLayer
พร็อพเพอร์ตี้ | |
---|---|
kState_Initialized
|
สถานะเริ่มต้น |
kState_NotInitialized
|
ไม่ได้เริ่มต้น |
kState_ShutdownInProgress
|
สถานะที่มีการทริกเกอร์การปิด |
DNSResolveCompleteFunct
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
แอตทริบิวต์สาธารณะ
รัฐ
enum nl::Inet::InetLayer::@5 State
สถานะปัจจุบันของออบเจ็กต์ InetLayer
[READ-ONLY] สถานะปัจจุบัน
แอตทริบิวต์สาธารณะแบบคงที่
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
ฟังก์ชันสาธารณะ
CanEnqueueDroppableEvent
bool CanEnqueueDroppableEvent( void )
CancelResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
ยกเลิกการสอบถาม DNS ที่รอดำเนินการ (สำหรับการเรียกกลับที่เสร็จสมบูรณ์และสถานะแอปพลิเคชัน) ที่อาจยังทำงานอยู่
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
รับตัวระบุอินเทอร์เฟซสำหรับที่อยู่ IP ที่ระบุ
หากรับตัวระบุอินเทอร์เฟซไม่ได้ ให้กำหนดเป็น INET_NULL_INTERFACEID
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
การคืนสินค้า |
INET_NO_ERROR อย่างไม่มีเงื่อนไข
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
รับที่อยู่ IPv6 ในเครื่องสำหรับลิงก์หรืออินเทอร์เฟซที่ระบุ
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
ผลลัพธ์ |
|
GetPlatformData
void * GetPlatformData( void )
การดำเนินการนี้จะส่งคืนข้อมูลแพลตฟอร์มเฉพาะไคลเอ็นต์ที่กำหนดให้อินสแตนซ์ หากมีการตั้งค่าไว้ก่อนหน้านี้
รายละเอียด | |
---|---|
การคืนสินค้า |
ข้อมูลแพลตฟอร์มเฉพาะลูกค้า หากมีการตั้งค่าไว้ก่อนหน้านี้ หากไม่เป็นเช่นนั้น NULL
|
HandleSelectResult
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
จัดการ I/O จากการโทรที่เลือก
วิธีนี้จะบันทึกเหตุการณ์ I/O ที่รอดำเนินการในแต่ละปลายทางที่ใช้งานอยู่ แล้วเรียกใช้ฟังก์ชันการจัดการ I/O ที่เกี่ยวข้องสำหรับปลายทางเหล่านั้น
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
InetLayer
InetLayer( void )
นี่คือตัวสร้างเริ่มต้นของ InetLayer
ดําเนินการเริ่มต้นการเป็นสมาชิกข้อมูลแบบพื้นฐานบางรายการ แต่เนื่องจาก InetLayer ใช้รูปแบบการออกแบบเริ่มต้นที่ชัดเจน จึงต้องเรียกใช้เมธอด InetLayer::Init ให้เรียบร้อยก่อนที่จะใช้ออบเจ็กต์
Init
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
นี่คือเครื่องมือเริ่มต้นแบบชัดแจ้ง InetLayer
ซึ่งต้องเรียกใช้และทำขั้นตอนนี้ให้เสร็จสมบูรณ์ก่อนจึงจะใช้ InetLayer ได้
ผู้โทรอาจให้อาร์กิวเมนต์บริบทที่ไม่บังคับ ซึ่งจะส่งกลับผ่านฟังก์ชัน Hook เฉพาะแพลตฟอร์ม สําหรับการปรับโดยใช้ LwIP โดยปกติแล้วจะเป็นตัวชี้ไปยังคิวเหตุการณ์ที่เชื่อมโยงกับอินสแตนซ์ InetLayer
แพลตฟอร์มอาจเลือกยืนยัน INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS ในส่วนหัวของการกำหนดค่าเฉพาะแพลตฟอร์ม และเปิดใช้ Platform::InetLayer::WillInit และ Platform::InetLayer::DidInit เชื่อมโยงการปรับแต่งหรือส่วนขยายข้อมูลเฉพาะแพลตฟอร์มกับ InetLayer
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
ผลลัพธ์ |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
ตรวจสอบว่ามีคำนำหน้าที่ตรงกันระหว่างที่อยู่ IPv6 ที่ระบุและที่อยู่ IPv6 ที่กำหนดค่าไว้ในเครื่องหรือไม่
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
true หากพบการจับคู่ที่สำเร็จ มิฉะนั้นจะเป็น false
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
สร้างออบเจ็กต์ RawEndPoint ใหม่สำหรับเวอร์ชัน IP และโปรโตคอลที่เจาะจง
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
ผลลัพธ์ |
|
NewTCPEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
สร้างออบเจ็กต์ TCPEndPoint ใหม่
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
ผลลัพธ์ |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
สร้างออบเจ็กต์ TunEndPoint ใหม่
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
ผลลัพธ์ |
|
NewUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
สร้างออบเจ็กต์ UDPEndPoint ใหม่
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
ผลลัพธ์ |
|
PrepareSelect
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
เตรียมชุดข้อบ่งชี้ไฟล์ที่จะให้ select()
ใช้งาน
รายละเอียด | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
ดำเนินการแปลงที่อยู่ IP ของชื่อโฮสต์ที่ระบุ
รายละเอียด | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||||||
ผลลัพธ์ |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
ดำเนินการแปลงที่อยู่ IP ของชื่อโฮสต์ที่ระบุ
รายละเอียด | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||||||
ผลลัพธ์ |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
ดำเนินการแปลงที่อยู่ IP ของชื่อโฮสต์ที่ระบุ
รายละเอียด | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||||||
ผลลัพธ์ |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
การดำเนินการนี้จะกำหนดข้อมูลแพลตฟอร์มเฉพาะลูกค้าที่ระบุไปยังอินสแตนซ์สำหรับดึงข้อมูลในภายหลังโดยแพลตฟอร์มไคลเอ็นต์
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
ปิดการทำงาน
INET_ERROR Shutdown( void )
ซึ่งเป็น Deinitializer แบบทันที InetLayer ซึ่งควรเรียกใช้ก่อนกำจัดอินสแตนซ์ InetLayer ที่สร้างอินสแตนซ์แล้ว
แพลตฟอร์มอาจเลือกยืนยัน INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS ในส่วนหัวการกำหนดค่าเฉพาะแพลตฟอร์ม และเปิดใช้ Platform::InetLayer::WillShutdown และ Platform::InetLayer::DidShutdown hook เชื่อมโยงเพื่อล้างข้อมูลการปรับแต่งหรือส่วนขยายข้อมูลเฉพาะแพลตฟอร์มกับ InetLayer
รายละเอียด | |
---|---|
การคืนสินค้า |
INET_NO_ERROR สำหรับความสำเร็จ ไม่เช่นนั้นจะพบข้อผิดพลาดเฉพาะที่ระบุสาเหตุที่ทำให้ปิดระบบไม่สำเร็จ
|
SystemLayer
Weave::System::Layer * SystemLayer( void ) const
ฟังก์ชันสาธารณะแบบคงที่
HandleInetLayerEvent
Weave::System::Error HandleInetLayerEvent( Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument )
IsDroppableEvent
bool IsDroppableEvent( Weave::System::EventType aType )