nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

ซึ่งเป็นคลาสภายในของ InetLayer ที่มี API ตัวช่วยสำหรับการแปลงระบบชื่อโดเมน (DNS) แบบอะซิงโครนัสใน InetLayer

สรุป

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

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

Cancel(DNSResolver & resolver)
ยกเลิกการค้นหา DNS ที่ค้างอยู่ซึ่งอาจยังทำงานอยู่
EnqueueRequest(DNSResolver & resolver)
จัดคิวออบเจ็กต์ DNSResolver สำหรับการแปลงที่อยู่ IP แบบไม่พร้อมกันของชื่อโฮสต์ที่ระบุ
Init(InetLayer *inet)
ตัวกำหนดค่าเริ่มต้นแบบทันทีสำหรับคลาส AsynchronousDNSRetrieverSockets
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 หรือระบบปฏิบัติการที่เหมาะสม

Init

INET_ERROR Init(
  InetLayer *inet
)

ตัวเริ่มต้นแบบ Explicit สำหรับคลาส AsynchronousDNSRetrieverSockets

วิธีนี้จะเริ่มต้นตัวแปร 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
ตัวชี้ไปยังฟังก์ชัน Callback เมื่อคำขอ DNS เสร็จสมบูรณ์
[in] appState
ตัวชี้ไปยังสถานะของแอปพลิเคชันที่จะส่งไปยัง onComplete เมื่อคำขอ DNS เสร็จสมบูรณ์
ผลลัพธ์
INET_NO_ERROR
หากคำขอ DNS จัดการสำเร็จ

ปิดการทำงาน

INET_ERROR Shutdown(
  void
)

โดยเป็นตัวถอดรหัสแบบชัดแจ้งของคลาส AsyncDNSResolverSockets และจะดำเนินการปิดเทรดและทำลายตัวแปร Mutex และ semaphore

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