nl::Inet::AsyncDNSResolverSockets

#include <src/inet/AsyncDNSResolverSockets.h>

Đây là một lớp nội bộ cho InetLayer cung cấp API trợ giúp để phân giải Hệ thống tên miền (DNS) không đồng bộ trong InetLayer.

Tóm tắt

Không có giao diện công khai nào cho lớp ứng dụng.

Hàm công khai

Cancel(DNSResolver & resolver)
Huỷ một truy vấn DNS chưa xử lý có thể vẫn đang hoạt động.
EnqueueRequest(DNSResolver & resolver)
Thêm một đối tượng DNSResolver vào hàng đợi để phân giải địa chỉ IP không đồng bộ của một tên máy chủ đã chỉ định.
Init(InetLayer *inet)
Trình khởi tạo rõ ràng cho lớp asyncDNSResolverSockets.
PrepareDNSResolver(DNSResolver & resolver, const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolver::OnResolveCompleteFunct onComplete, void *appState)
Phương thức này chuẩn bị một đối tượng DNSResolver trước khi phân giải không đồng bộ.
Shutdown(void)
Đây là trình huỷ khởi tạo rõ ràng của lớp AsyncDNSResolverSockets và nó đảm nhiệm việc tắt các luồng cũng như huỷ bỏ các biến mutex và semaphore.

Hàm công khai

Huỷ

INET_ERROR Cancel(
  DNSResolver & resolver
)

Huỷ một truy vấn DNS chưa xử lý có thể vẫn đang hoạt động.

Thông tin chi tiết
Tham số
[in] resolver
Thông tin tham chiếu đến đối tượng DNSResolver.

EnqueueRequest

INET_ERROR EnqueueRequest(
  DNSResolver & resolver
)

Thêm một đối tượng DNSResolver vào hàng đợi để phân giải địa chỉ IP không đồng bộ của một tên máy chủ đã chỉ định.

Thông tin chi tiết
Tham số
[in] resolver
Thông tin tham chiếu đến đối tượng DNSResolver.
Giá trị trả về
INET_NO_ERROR
nếu yêu cầu DNS đã được đưa vào hàng đợi thành công.
INET_ERROR_NO_MEMORY
nếu nhóm trình phân giải lớp Inet đã đầy.
other
lỗi hệ điều hành hoặc mạng POSIX thích hợp.

Init

INET_ERROR Init(
  InetLayer *inet
)

Trình khởi tạo rõ ràng cho lớp asyncDNSResolverSockets.

Thao tác này sẽ khởi tạo các biến mutex và semaphore, đồng thời tạo các luồng để xử lý quá trình phân giải DNS không đồng bộ.

Thông tin chi tiết
Tham số
[in] aInet
Con trỏ trỏ đến đối tượng InetLayer.
Giá trị trả về
INET_NO_ERROR
nếu khởi chạy thành công.
other
lỗi hệ điều hành hoặc mạng POSIX thích hợp.

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
)

Phương thức này chuẩn bị một đối tượng DNSResolver trước khi phân giải không đồng bộ.

Thông tin chi tiết
Tham số
[in] resolver
Tham chiếu đến một đối tượng DNSResolver được phân bổ.
[in] hostName
Con trỏ trỏ đến chuỗi C đại diện cho tên máy chủ cần truy vấn.
[in] hostNameLen
Độ dài chuỗi của tên máy chủ lưu trữ.
[in] options
Một giá trị số nguyên kiểm soát cách thực hiện quá trình phân giải địa chỉ tên máy chủ lưu trữ. Giá trị được lấy từ bản liệt kê #DNSOptions.
[in] maxAddrs
Số lượng địa chỉ tối đa cần lưu trữ trong bảng DNS.
[in] addrArray
Con trỏ tới bảng DNS.
[in] onComplete
Con trỏ trỏ đến hàm callback khi một yêu cầu DNS hoàn tất.
[in] appState
Con trỏ trỏ đến trạng thái ứng dụng sẽ được chuyển đến onComplete khi yêu cầu DNS hoàn tất.
Giá trị trả về
INET_NO_ERROR
nếu yêu cầu DNS được xử lý thành công.

Tắt

INET_ERROR Shutdown(
  void
)

Đây là trình huỷ khởi tạo rõ ràng của lớp AsyncDNSResolverSockets và nó đảm nhiệm việc tắt các luồng cũng như huỷ bỏ các biến mutex và semaphore.

Thông tin chi tiết
Giá trị trả về
INET_NO_ERROR
nếu tắt thành công.
other
lỗi hệ điều hành hoặc mạng POSIX thích hợp.