nl::Inet::InetLayer

#include <src/inet/InetLayer.h>

ซึ่งจะทำให้เข้าถึงบริการอินเทอร์เน็ตต่างๆ ได้ ไม่ว่าจะเป็นตัวจับเวลา, การแปลงชื่อโดเมน (DNS), การรับส่งข้อมูลเครือข่าย TCP, การส่งเครือข่าย UDP และการส่งเครือข่ายแบบ RAW สำหรับเทรดเดียว

สรุป

สำหรับ BSD/POSIX Sockets การแจ้งเตือนความพร้อมของกิจกรรมจะได้รับการจัดการผ่านตัวอธิบายไฟล์และการใช้แบบสำรวจ / การเลือกแบบดั้งเดิมในการปรับแพลตฟอร์ม

สำหรับ LwIP การแจ้งเตือนความพร้อมของกิจกรรมจะจัดการผ่านเหตุการณ์ / ข้อความ และฮุกเฉพาะแพลตฟอร์มและระบบสำหรับระบบข้อความ / กิจกรรม

ผู้ผลิตและผู้ทำลาย

InetLayer(void)
นี่เป็นตัวสร้างเริ่มต้นของ InetLayer

ประเภทสาธารณะ

@5{
  kState_NotInitialized = 0,
  kState_Initialized = 1,
  kState_ShutdownInProgress = 2
}
enum
สถานะปัจจุบันของออบเจ็กต์ InetLayer
DNSResolveCompleteFunct typedef
DNSResolver::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)
นี่คือเครื่องมือถอดรหัสเริ่มต้นที่ชัดเจนของ InetLayer และควรเรียกใช้ก่อนที่จะกำจัดอินสแตนซ์ InetLayer ที่สร้างอินสแตนซ์
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 ที่ค้างอยู่ (สำหรับการเรียกกลับที่เสร็จสมบูรณ์และสถานะแอปพลิเคชัน) ที่อาจมีการใช้งานอยู่

รายละเอียด
พารามิเตอร์
[in] onComplete
ตัวชี้ไปยังฟังก์ชันเรียกกลับเมื่อคำขอ DNS เสร็จสมบูรณ์
[in] appState
ตัวชี้ไปยังออบเจ็กต์สถานะของแอปพลิเคชันที่จะส่งไปที่ฟังก์ชันเรียกกลับเป็นอาร์กิวเมนต์

DroppableEventDequeued

void DroppableEventDequeued(
  void
)

GetInterfaceFromAddr

INET_ERROR GetInterfaceFromAddr(
  const IPAddress & addr,
  InterfaceId & intfId
)

รับตัวระบุอินเทอร์เฟซสำหรับที่อยู่ IP ที่ระบุ

หากดึงข้อมูลตัวระบุอินเทอร์เฟซไม่ได้ ระบบจะตั้งค่าเป็น INET_NULL_INTERFACEID

รายละเอียด
พารามิเตอร์
[in] addr
การอ้างอิงไปยังออบเจ็กต์ IPAddress
[out] intfId
การอ้างอิงออบเจ็กต์ InterfaceId
การส่งคืน
INET_NO_ERROR อย่างไม่มีเงื่อนไข

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

รับที่อยู่ IPv6 ในเครื่องสำหรับลิงก์หรืออินเทอร์เฟซที่ระบุ

รายละเอียด
พารามิเตอร์
[in] link
อินเทอร์เฟซที่มีการค้นหาที่อยู่ IPv6 ในเครื่องสำหรับลิงก์
[out] llAddr
ที่อยู่ IPv6 ภายในของลิงก์สำหรับลิงก์
แสดงผลค่า
INET_ERROR_NOT_IMPLEMENTED
หากระบบไม่รองรับ IPv6
INET_ERROR_BAD_ARGS
หากที่อยู่ภายในของลิงก์เป็นค่าว่าง
INET_ERROR_ADDRESS_NOT_FOUND
หากลิงก์ไม่ได้กําหนดค่าที่อยู่ไว้
INET_NO_ERROR
ความสำเร็จ

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 ที่เกี่ยวข้องสำหรับปลายทางเหล่านั้น

รายละเอียด
พารามิเตอร์
[in] selectRes
ค่าที่ส่งคืนของการโทรที่เลือก
[in] readfds
ตัวชี้ไปยังชุดคำอธิบายไฟล์แบบอ่าน
[in] writefds
ตัวชี้ไปยังชุดของตัวอธิบายไฟล์การเขียน
[in] exceptfds
ตัวชี้ไปยังชุดของตัวบอกไฟล์ที่มีข้อผิดพลาด

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

รายละเอียด
พารามิเตอร์
[in] aSystemLayer
อินสแตนซ์ที่จำเป็นของ Weave System Layer เริ่มต้นสำเร็จแล้ว
[in] aContext
อาร์กิวเมนต์บริบทแบบไม่บังคับซึ่งจะส่งกลับไปยังผู้เรียกใช้ผ่านฟังก์ชัน Hook เฉพาะแพลตฟอร์ม
แสดงผลค่า
INET_ERROR_INCORRECT_STATE
หาก InetLayer อยู่ในสถานะที่ไม่ถูกต้อง
INET_ERROR_NO_MEMORY
หาก InetLayer ไม่เหลือทรัพยากรสำหรับขอตัวจับเวลาใหม่
other
ข้อผิดพลาดเฉพาะแพลตฟอร์มที่ระบุสาเหตุของความล้มเหลวในการเริ่มต้น
INET_NO_ERROR
ความสำเร็จ

InitQueueLimiter

INET_ERROR InitQueueLimiter(
  void
)

MatchLocalIPv6Subnet

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

ตรวจสอบว่ามีการจับคู่คำนำหน้าระหว่างที่อยู่ IPv6 ที่ระบุกับที่อยู่ IPv6 ที่กำหนดค่าไว้ในเครื่องหรือไม่

รายละเอียด
พารามิเตอร์
[in] addr
ที่อยู่ IPv6 ที่จะตรวจสอบการจับคู่คำนำหน้า
การส่งคืน
true หากพบการจับคู่ที่สำเร็จ มิเช่นนั้น จะเป็นเท็จ

NewRawEndPoint

INET_ERROR NewRawEndPoint(
  IPVersion ipVer,
  IPProtocol ipProto,
  RawEndPoint **retEndPoint
)

สร้างออบเจ็กต์ RawEndPoint ใหม่สำหรับเวอร์ชัน IP และโปรโตคอลที่เจาะจง

รายละเอียด
พารามิเตอร์
[in] ipVer
IPv4 หรือ IPv6
[in] ipProto
โปรโตคอลภายในกลุ่ม IP (เช่น ICMPv4 หรือ ICMPv6)
[in,out] retEndPoint
ตัวชี้ไปยังตัวชี้ของออบเจ็กต์ RawEndPoint ที่เป็นพารามิเตอร์การแสดงผลเมื่อสร้างออบเจ็กต์เสร็จแล้ว *retEndPoint เป็นค่า NULL หากการสร้างไม่สำเร็จ
แสดงผลค่า
INET_ERROR_INCORRECT_STATE
หากออบเจ็กต์ InetLayer ไม่ได้เริ่มต้น
INET_ERROR_NO_ENDPOINTS
หากพูล InetLayerRawEndPoint เต็มแล้วและไม่สามารถสร้างปลายทางใหม่ได้
INET_NO_ERROR
ความสำเร็จ

NewTCPEndPoint

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

สร้างออบเจ็กต์ TCPEndPoint ใหม่

รายละเอียด
พารามิเตอร์
[in,out] retEndPoint
ตัวชี้ไปยังตัวชี้ของออบเจ็กต์ TCPEndPoint ที่เป็นพารามิเตอร์การแสดงผลเมื่อสร้างออบเจ็กต์เสร็จสมบูรณ์ *retEndPoint เป็นค่า NULL หากการสร้างไม่สำเร็จ
แสดงผลค่า
INET_ERROR_INCORRECT_STATE
หากออบเจ็กต์ InetLayer ไม่ได้เริ่มต้น
INET_ERROR_NO_ENDPOINTS
หากพูล InetLayerTCPEndPoint เต็ม และสร้างปลายทางใหม่ไม่ได้
INET_NO_ERROR
ความสำเร็จ

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

สร้างออบเจ็กต์ TunEndPoint ใหม่

รายละเอียด
พารามิเตอร์
[in,out] retEndPoint
ตัวชี้ไปยังตัวชี้ของออบเจ็กต์ TunEndPoint ที่เป็นพารามิเตอร์ส่งกลับเมื่อสร้างออบเจ็กต์เสร็จแล้ว *retEndPoint เป็นค่า NULL หากการสร้างไม่สำเร็จ
แสดงผลค่า
INET_ERROR_INCORRECT_STATE
หากออบเจ็กต์ InetLayer ไม่ได้เริ่มต้น
INET_ERROR_NO_ENDPOINTS
หากพูล InetLayerTunEndPoint เต็มแล้วและไม่สามารถสร้างใหม่ได้
INET_NO_ERROR
ความสำเร็จ

NewUDPEndPoint

INET_ERROR NewUDPEndPoint(
  UDPEndPoint **retEndPoint
)

สร้างออบเจ็กต์ UDPEndPoint ใหม่

รายละเอียด
พารามิเตอร์
[in,out] retEndPoint
ตัวชี้ไปยังตัวชี้ของออบเจ็กต์ UDPEndPoint ที่เป็นพารามิเตอร์การแสดงผลเมื่อสร้างออบเจ็กต์เสร็จแล้ว *retEndPoint เป็นค่า NULL หากการสร้างไม่สำเร็จ
แสดงผลค่า
INET_ERROR_INCORRECT_STATE
หากออบเจ็กต์ InetLayer ไม่ได้เริ่มต้น
INET_ERROR_NO_ENDPOINTS
หากพูล InetLayerUDPEndPoint เต็มแล้วและไม่สามารถสร้างปลายทางใหม่ได้
INET_NO_ERROR
ความสำเร็จ

PrepareSelect

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

เตรียมชุดตัวบ่งชี้ไฟล์เพื่อให้ select() ทำงานได้

รายละเอียด
พารามิเตอร์
[out] nfds
ช่วงของตัวบอกไฟล์ในชุดตัวบอกไฟล์
[in] readfds
ตัวชี้ไปยังชุดข้อบ่งชี้ไฟล์ที่อ่านได้
[in] writefds
ตัวชี้ไปยังชุดคำอธิบายไฟล์ที่เขียนได้
[in] exceptfds
ตัวชี้ไปยังชุดของตัวบอกไฟล์ที่มีข้อผิดพลาด
[in] sleepTimeTV
ตัวชี้ไปยังโครงสร้างที่ระบุระยะเวลาที่รายการที่เลือกควรสลีป

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t options,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

ดำเนินการแปลงที่อยู่ IP ของชื่อโฮสต์ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] hostName
ตัวชี้ไปยังสตริง C ที่ไม่สิ้นสุดค่า NULL ซึ่งแสดงชื่อโฮสต์ที่จะค้นหา
[in] hostNameLen
ความยาวสตริงของชื่อโฮสต์
[in] options
ค่าจำนวนเต็มที่ควบคุมประสิทธิภาพความละเอียดของชื่อโฮสต์
                    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
[in] addrArray
ตัวชี้ไปยังตาราง DNS
[in] onComplete
ตัวชี้ไปยังฟังก์ชันเรียกกลับเมื่อคำขอ DNS เสร็จสมบูรณ์
[in] appState
ตัวชี้ไปยังสถานะของแอปพลิเคชันที่จะส่งต่อไปยัง onComplete เมื่อคำขอ DNS เสร็จสมบูรณ์
แสดงผลค่า
INET_NO_ERROR
หากจัดการคำขอ DNS สำเร็จ
INET_ERROR_NO_MEMORY
หากพูลรีโซลเวอร์เลเยอร์ Inet เต็ม
INET_ERROR_HOST_NAME_TOO_LONG
หากชื่อโฮสต์ที่ขอยาวเกินไป
INET_ERROR_HOST_NOT_FOUND
หากไม่สามารถแปลงชื่อโฮสต์ของคำขอเป็นที่อยู่
INET_ERROR_DNS_TRY_AGAIN
หากเนมเซิร์ฟเวอร์แสดงการแจ้งความล้มเหลวชั่วคราว โปรดลองอีกครั้งในภายหลัง
INET_ERROR_DNS_NO_RECOVERY
หากเนมเซิร์ฟเวอร์แสดงข้อผิดพลาดที่ไม่สามารถกู้คืนได้
INET_ERROR_NOT_IMPLEMENTED
หากไม่ได้เปิดใช้การแปลง DNS ในแพลตฟอร์มที่เกี่ยวข้อง
other
ข้อผิดพลาดของเครือข่าย POSIX หรือระบบปฏิบัติการที่แสดงผลจากการติดตั้งใช้งานรีโซลเวอร์ DNS ที่สำคัญ

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

ดำเนินการแปลงที่อยู่ IP ของชื่อโฮสต์ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] hostName
ตัวชี้ไปยังสตริง C ที่ไม่สิ้นสุดค่า NULL ซึ่งแสดงชื่อโฮสต์ที่จะค้นหา
[in] hostNameLen
ความยาวสตริงของชื่อโฮสต์
[in] maxAddrs
จำนวนที่อยู่สูงสุดที่จะจัดเก็บในตาราง DNS
[in] addrArray
ตัวชี้ไปยังตาราง DNS
[in] onComplete
ตัวชี้ไปยังฟังก์ชันเรียกกลับเมื่อคำขอ DNS เสร็จสมบูรณ์
[in] appState
ตัวชี้ไปยังสถานะของแอปพลิเคชันที่จะส่งต่อไปยัง onComplete เมื่อคำขอ DNS เสร็จสมบูรณ์
แสดงผลค่า
INET_NO_ERROR
หากจัดการคำขอ DNS สำเร็จ
INET_ERROR_NO_MEMORY
หากพูลรีโซลเวอร์เลเยอร์ Inet เต็ม
INET_ERROR_HOST_NAME_TOO_LONG
หากชื่อโฮสต์ที่ขอยาวเกินไป
INET_ERROR_HOST_NOT_FOUND
หากไม่สามารถแปลงชื่อโฮสต์ของคำขอเป็นที่อยู่
INET_ERROR_DNS_TRY_AGAIN
หากเนมเซิร์ฟเวอร์แสดงการแจ้งความล้มเหลวชั่วคราว โปรดลองอีกครั้งในภายหลัง
INET_ERROR_DNS_NO_RECOVERY
หากเนมเซิร์ฟเวอร์แสดงข้อผิดพลาดที่ไม่สามารถกู้คืนได้
INET_ERROR_NOT_IMPLEMENTED
หากไม่ได้เปิดใช้การแปลง DNS ในแพลตฟอร์มที่เกี่ยวข้อง
other
ข้อผิดพลาดของเครือข่าย POSIX หรือระบบปฏิบัติการที่แสดงผลจากการติดตั้งใช้งานรีโซลเวอร์ DNS ที่สำคัญ

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

ดำเนินการแปลงที่อยู่ IP ของชื่อโฮสต์ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] hostName
ตัวชี้ไปยังสตริง C ที่สิ้นสุดค่า NULL ซึ่งแสดงชื่อโฮสต์ที่จะค้นหา
[in] maxAddrs
จำนวนที่อยู่สูงสุดที่จะจัดเก็บในตาราง DNS
[in] addrArray
ตัวชี้ไปยังตาราง DNS
[in] onComplete
ตัวชี้ไปยังฟังก์ชันเรียกกลับเมื่อคำขอ DNS เสร็จสมบูรณ์
[in] appState
ตัวชี้ไปยังสถานะของแอปพลิเคชันที่จะส่งต่อไปยัง onComplete เมื่อคำขอ DNS เสร็จสมบูรณ์
แสดงผลค่า
INET_NO_ERROR
หากจัดการคำขอ DNS สำเร็จ
INET_ERROR_NO_MEMORY
หากพูลรีโซลเวอร์เลเยอร์ Inet เต็ม
INET_ERROR_HOST_NAME_TOO_LONG
หากชื่อโฮสต์ที่ขอยาวเกินไป
INET_ERROR_HOST_NOT_FOUND
หากไม่สามารถแปลงชื่อโฮสต์ของคำขอเป็นที่อยู่
INET_ERROR_DNS_TRY_AGAIN
หากเนมเซิร์ฟเวอร์แสดงการแจ้งความล้มเหลวชั่วคราว โปรดลองอีกครั้งในภายหลัง
INET_ERROR_DNS_NO_RECOVERY
หากเนมเซิร์ฟเวอร์แสดงข้อผิดพลาดที่ไม่สามารถกู้คืนได้
INET_ERROR_NOT_IMPLEMENTED
หากไม่ได้เปิดใช้การแปลง DNS ในแพลตฟอร์มที่เกี่ยวข้อง
other
ข้อผิดพลาดของเครือข่าย POSIX หรือระบบปฏิบัติการที่แสดงผลจากการติดตั้งใช้งานรีโซลเวอร์ DNS ที่สำคัญ

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

การดำเนินการนี้จะตั้งค่าข้อมูลแพลตฟอร์มเฉพาะไคลเอ็นต์ที่ระบุเป็นอินสแตนซ์เพื่อดึงข้อมูลในภายหลังโดยแพลตฟอร์มไคลเอ็นต์

รายละเอียด
พารามิเตอร์
[in] 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
)

UpdateSnapshot

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