nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
ซึ่งจะทำให้เข้าถึงบริการอินเทอร์เน็ตต่างๆ ได้ ไม่ว่าจะเป็นตัวจับเวลา, การแปลงชื่อโดเมน (DNS), การรับส่งข้อมูลเครือข่าย TCP, การส่งเครือข่าย UDP และการส่งเครือข่ายแบบ RAW สำหรับเทรดเดียว
สรุป
สำหรับ BSD/POSIX Sockets การแจ้งเตือนความพร้อมของกิจกรรมจะได้รับการจัดการผ่านตัวอธิบายไฟล์และการใช้แบบสำรวจ / การเลือกแบบดั้งเดิมในการปรับแพลตฟอร์ม
สำหรับ 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
[อ่านเท่านั้น] สถานะปัจจุบัน
แอตทริบิวต์สาธารณะแบบคงที่
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 ได้สำเร็จก่อนใช้ออบเจ็กต์
เริ่มต้น
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 หากพบการจับคู่ที่สำเร็จ มิเช่นนั้น จะเป็นเท็จ
|
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 )
นี่คือเครื่องมือถอดรหัสเริ่มต้นที่ชัดเจนของ InetLayer และควรเรียกใช้ก่อนที่จะกำจัดอินสแตนซ์ InetLayer ที่สร้างอินสแตนซ์
แพลตฟอร์มอาจเลือกยืนยัน INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS ในส่วนหัวการกำหนดค่าเฉพาะแพลตฟอร์ม และเปิดใช้แพลตฟอร์ม::InetLayer::willShutdown และ Platform::InetLayer::DidShutdown ฮุก เพื่อล้างข้อมูลการปรับแต่งเฉพาะแพลตฟอร์มหรือส่วนขยายข้อมูลไปยัง 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 )