nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

นี่คือคลาสภายในของ InetLayer ที่มี API ตัวช่วยสำหรับการแปลงชื่อ Asynchronous Domain Name System (DNS) ใน InetLayer

สรุป

ไม่มีอินเทอร์เฟซสาธารณะสำหรับเลเยอร์ของแอปพลิเคชัน

ฟังก์ชันสาธารณะ

Cancel(DNSResolver & resolver)
ยกเลิกการค้นหา DNS ที่ค้างอยู่ซึ่งอาจใช้งานอยู่
EnqueueRequest(DNSResolver & resolver)
กำหนดออบเจ็กต์ DNSResolver สำหรับการแปลงที่อยู่ IP แบบอะซิงโครนัสของชื่อโฮสต์ที่ระบุ
Init(InetLayer *inet)
ตัวเริ่มต้นที่ชัดเจนสำหรับคลาส AsynchronousDNSResolverSockets
PrepareDNSResolver(DNSResolver & resolver, const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolver::OnResolveCompleteFunct onComplete, void *appState)
วิธีนี้จะเตรียมออบเจ็กต์ DNSResolver ก่อนการแก้ปัญหาแบบไม่พร้อมกัน
Shutdown(void)
ซึ่งเป็นตัวถอดรหัสค่าของคลาส AsyncDNSResolverSockets แบบชัดเจนและจะทำหน้าที่ปิดเทรดและทำลายตัวแปร Mutex และ Semaphore

ฟังก์ชันสาธารณะ

ยกเลิก

INET_ERROR Cancel(
  DNSResolver & resolver
)

ยกเลิกการค้นหา DNS ที่ค้างอยู่ซึ่งอาจใช้งานอยู่

รายละเอียด
พารามิเตอร์
[in] resolver
การอ้างอิงออบเจ็กต์ DNSResolver

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

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

รายละเอียด
พารามิเตอร์
[in] resolver
การอ้างอิงออบเจ็กต์ DNSResolver
แสดงผลค่า
INET_NO_ERROR
หากคำขอ DNS อยู่ในคิวสำเร็จ
INET_ERROR_NO_MEMORY
หากพูลรีโซลเวอร์เลเยอร์ Inet เต็ม
other
ข้อผิดพลาดของเครือข่าย POSIX หรือระบบปฏิบัติการที่เหมาะสม

เริ่มต้น

INET_ERROR Init(
  InetLayer *inet
)

ตัวเริ่มต้นที่ชัดเจนสำหรับคลาส AsynchronousDNSResolverSockets

การดำเนินการนี้จะเริ่มต้นตัวแปร Mutex และ semaphore และสร้างเทรดสำหรับการจัดการการแปลง DNS แบบอะซิงโครนัส

รายละเอียด
พารามิเตอร์
[in] aInet
ตัวชี้ไปยังออบเจ็กต์ InetLayer
แสดงผลค่า
INET_NO_ERROR
หากการเริ่มต้นสำเร็จ
other
ข้อผิดพลาดของเครือข่าย POSIX หรือระบบปฏิบัติการที่เหมาะสม

PrepareDNSResolver

INET_ERROR PrepareDNSResolver(
  DNSResolver & resolver,
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t options,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolver::OnResolveCompleteFunct onComplete,
  void *appState
)

วิธีนี้จะเตรียมออบเจ็กต์ DNSResolver ก่อนการแก้ปัญหาแบบไม่พร้อมกัน

รายละเอียด
พารามิเตอร์
[in] resolver
การอ้างอิงไปยังออบเจ็กต์ DNSResolver ที่จัดสรร
[in] hostName
ตัวชี้ไปยังสตริง C ที่แสดงชื่อโฮสต์ที่จะค้นหา
[in] hostNameLen
ความยาวสตริงของชื่อโฮสต์
[in] options
ค่าจำนวนเต็มที่ควบคุมวิธีการทำงานของการแปลงที่อยู่ของชื่อโฮสต์ ค่าต่างๆ มาจากการแจกแจง #DNSOptions
[in] maxAddrs
จำนวนที่อยู่สูงสุดที่จะจัดเก็บในตาราง DNS
[in] addrArray
ตัวชี้ไปยังตาราง DNS
[in] onComplete
ตัวชี้ไปยังฟังก์ชันเรียกกลับเมื่อคำขอ DNS เสร็จสมบูรณ์
[in] appState
ตัวชี้ไปยังสถานะของแอปพลิเคชันที่จะส่งต่อไปยัง onComplete เมื่อคำขอ DNS เสร็จสมบูรณ์
แสดงผลค่า
INET_NO_ERROR
หากจัดการคำขอ DNS สำเร็จ

ปิดการทำงาน

INET_ERROR Shutdown(
  void
)

ซึ่งเป็นตัวถอดรหัสค่าของคลาส AsyncDNSResolverSockets แบบชัดเจนและจะทำหน้าที่ปิดเทรดและทำลายตัวแปร Mutex และ Semaphore

รายละเอียด
แสดงผลค่า
INET_NO_ERROR
หากปิดการทำงานได้สำเร็จ
other
ข้อผิดพลาดของเครือข่าย POSIX หรือระบบปฏิบัติการที่เหมาะสม