Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

nl :: Inet :: InetLayer

#include <src/inet/InetLayer.h>

Điều này cung cấp quyền truy cập vào các dịch vụ Internet, bao gồm bộ hẹn giờ, độ phân giải Hệ thống tên miền (DNS), truyền tải mạng TCP, truyền tải mạng UDP và truyền tải mạng thô cho một luồng duy nhất.

Tóm lược

Đối với BSD / POSIX Sockets, thông báo sẵn sàng sự kiện được xử lý thông qua trình mô tả tệp và triển khai thăm dò / chọn truyền thống trên nền tảng thích ứng.

Đối với LwIP, thông báo sẵn sàng cho sự kiện được xử lý thông qua các sự kiện / tin nhắn và các móc cụ thể của nền tảng và hệ thống cho hệ thống sự kiện / tin nhắn.

Người xây dựng và Người phá hủy

InetLayer (void)
Đây là hàm tạo mặc định của InetLayer .

Các loại công khai

@5 {
kState_NotInitialized = 0,
kState_Initialized = 1,
kState_ShutdownInProgress = 2
}
enum
Trạng thái hiện tại của đối tượng InetLayer .
DNSResolveCompleteFunct typedef
DNSResolver::OnResolveCompleteFunct

Thuộc tính công cộng

State
enum nl::Inet::InetLayer::@5
Trạng thái hiện tại của đối tượng InetLayer .

Thuộc tính tĩnh công khai

sInetEventHandlerDelegate

Chức năng công cộng

CanEnqueueDroppableEvent (void)
bool
CancelResolveHostAddress (DNSResolveCompleteFunct onComplete, void *appState)
void
Hủy bất kỳ truy vấn DNS nào chưa hoàn thành (đối với lệnh gọi lại hoàn thành phù hợp và trạng thái ứng dụng) có thể vẫn đang hoạt động.
DroppableEventDequeued (void)
void
GetInterfaceFromAddr (const IPAddress & addr, InterfaceId & intfId)
Lấy mã định danh giao diện cho địa chỉ IP được chỉ định.
GetLinkLocalAddr (InterfaceId link, IPAddress *llAddr)
Lấy địa chỉ IPv6 cục bộ của liên kết cho một liên kết hoặc giao diện được chỉ định.
GetPlatformData (void)
void *
Điều này trả về bất kỳ dữ liệu nền tảng dành riêng cho khách hàng nào được gán cho phiên bản, nếu nó đã được đặt trước đó.
HandleSelectResult (int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
void
Xử lý I / O từ một cuộc gọi được chọn.
Init ( Weave::System::Layer & aSystemLayer, void *aContext)
Đây là trình khởi tạo rõ ràng InetLayer .
InitQueueLimiter (void)
MatchLocalIPv6Subnet (const IPAddress & addr)
bool
Kiểm tra xem có sự trùng khớp tiền tố giữa địa chỉ IPv6 được chỉ định và bất kỳ địa chỉ IPv6 nào được cấu hình cục bộ hay không.
NewRawEndPoint (IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
Tạo đối tượng RawEndPoint mới cho phiên bản và giao thức IP cụ thể.
NewTCPEndPoint ( TCPEndPoint **retEndPoint)
Tạo một đối tượng TCPEndPoint mới.
NewTunEndPoint ( TunEndPoint **retEndPoint)
Tạo một đối tượng TunEndPoint mới.
NewUDPEndPoint ( UDPEndPoint **retEndPoint)
Tạo một đối tượng UDPEndPoint mới.
PrepareSelect (int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
void
Chuẩn bị bộ mô tả tệp để select() làm việc với.
ResolveHostAddress (const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Thực hiện phân giải địa chỉ IP của một tên máy chủ được chỉ định.
ResolveHostAddress (const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Thực hiện phân giải địa chỉ IP của một tên máy chủ được chỉ định.
ResolveHostAddress (const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Thực hiện phân giải địa chỉ IP của một tên máy chủ được chỉ định.
SetPlatformData (void *aPlatformData)
void
Điều này đặt dữ liệu nền tảng dành riêng cho máy khách được chỉ định thành phiên bản để nền tảng máy khách truy xuất sau này.
Shutdown (void)
Đây là trình khởi tạo rõ ràng InetLayer và nên được gọi trước khi xử lý một phiên bản InetLayer được khởi tạo.
SystemLayer (void) const

Chức năng tĩnh công khai

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

Các loại công khai

@ 5

 @5

Trạng thái hiện tại của đối tượng InetLayer .

Tính chất
kState_Initialized

Trạng thái khởi tạo.

kState_NotInitialized

Không phải trạng thái khởi tạo.

kState_ShutdownInProgress

Trạng thái nơi Tắt máy đã được kích hoạt.

DNSResolveCompleteFunct

DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct

Thuộc tính công cộng

Tiểu bang

enum nl::Inet::InetLayer::@5 State

Trạng thái hiện tại của đối tượng InetLayer .

[CHỈ ĐỌC] Trạng thái hiện tại.

Thuộc tính tĩnh công khai

sInetEventHandlerDelegate

Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate

Chức năng công cộng

CanEnqueueDroppableEvent

bool CanEnqueueDroppableEvent(
  void
)

CancelResolveHostAddress

void CancelResolveHostAddress(
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Hủy bất kỳ truy vấn DNS nào chưa hoàn thành (đối với lệnh gọi lại hoàn thành khớp và trạng thái ứng dụng) có thể vẫn hoạt động.

Chi tiết
Thông số
[in] onComplete
Một con trỏ đến hàm gọi lại khi yêu cầu DNS hoàn tất.
[in] appState
Một con trỏ đến một đối tượng trạng thái ứng dụng sẽ được chuyển đến hàm gọi lại làm đối số.

DroppableEventDequeued

void DroppableEventDequeued(
  void
)

GetInterfaceFromAddr

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

Lấy mã nhận dạng giao diện cho địa chỉ IP được chỉ định.

Nếu mã định danh giao diện không thể được dẫn xuất, nó được đặt thành INET_NULL_INTERFACEID .

Chi tiết
Thông số
[in] addr
Tham chiếu đến đối tượng IPAddress .
[out] intfId
Tham chiếu đến đối tượng InterfaceId.
Lợi nhuận
INET_NO_ERROR vô điều kiện.

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

Lấy địa chỉ IPv6 cục bộ của liên kết cho một liên kết hoặc giao diện được chỉ định.

Chi tiết
Thông số
[in] link
Giao diện mà địa chỉ IPv6 cục bộ của liên kết đang được tìm kiếm.
[out] llAddr
Địa chỉ IPv6 cục bộ của liên kết cho liên kết.
Giá trị trả lại
INET_ERROR_NOT_IMPLEMENTED
Nếu IPv6 không được hỗ trợ.
INET_ERROR_BAD_ARGS
Nếu địa chỉ cục bộ liên kết là NULL.
INET_ERROR_ADDRESS_NOT_FOUND
Nếu liên kết không có bất kỳ địa chỉ nào được cấu hình.
INET_NO_ERROR
Về thành công.

GetPlatformData

void * GetPlatformData(
  void
)

Điều này trả về bất kỳ dữ liệu nền tảng dành riêng cho khách hàng nào được chỉ định cho phiên bản, nếu nó đã được đặt trước đó.

Chi tiết
Lợi nhuận
Dữ liệu nền tảng dành riêng cho khách hàng, nếu đã được đặt trước đó; ngược lại, NULL.

HandleSelectResult

void HandleSelectResult(
  int selectRes,
  fd_set *readfds,
  fd_set *writefds,
  fd_set *exceptfds
)

Xử lý I / O từ một cuộc gọi được chọn.

Phương thức này đăng ký sự kiện I / O đang chờ xử lý trong mỗi điểm cuối hoạt động và sau đó gọi các chức năng xử lý I / O tương ứng cho các điểm cuối đó.

Chi tiết
Thông số
[in] selectRes
Giá trị trả về của cuộc gọi đã chọn.
[in] readfds
Một con trỏ đến tập hợp các bộ mô tả tệp đã đọc.
[in] writefds
Một con trỏ đến tập hợp các bộ mô tả tệp ghi.
[in] exceptfds
Một con trỏ đến tập hợp các bộ mô tả tệp có lỗi.

InetLayer

 InetLayer(
  void
)

Đây là hàm tạo mặc định của InetLayer .

Nó thực hiện một số khởi tạo thành viên dữ liệu cơ bản; tuy nhiên, vì InetLayer tuân theo một mẫu thiết kế bộ khởi tạo rõ ràng, phương thức InetLayer :: Init phải được gọi thành công trước khi sử dụng đối tượng.

Trong đó

INET_ERROR Init(
  Weave::System::Layer & aSystemLayer,
  void *aContext
)

Đây là trình khởi tạo rõ ràng InetLayer .

Điều này phải được gọi và hoàn tất thành công trước khi InetLayer có thể được sử dụng.

Người gọi có thể cung cấp một đối số ngữ cảnh tùy chọn sẽ được trả lại thông qua bất kỳ hàm hook cụ thể cho nền tảng nào. Đối với các chuyển thể dựa trên LwIP, điều này thường sẽ là một con trỏ đến hàng đợi sự kiện được liên kết với cá thể InetLayer .

Các nền tảng có thể chọn xác nhận INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS trong tiêu đề cấu hình dành riêng cho nền tảng của họ và bật Nền tảng :: InetLayer :: WillInit và Nền tảng :: InetLayer :: DidInit móc để hiệu ứng các tùy chỉnh hoặc phần mở rộng dữ liệu dành riêng cho nền tảng cho InetLayer .

Chi tiết
Thông số
[in] aSystemLayer
Một phiên bản bắt buộc của Lớp hệ thống Weave đã được khởi tạo thành công.
[in] aContext
Một đối số ngữ cảnh tùy chọn sẽ được chuyển trở lại người gọi thông qua bất kỳ hàm hook cụ thể cho nền tảng nào.
Giá trị trả lại
INET_ERROR_INCORRECT_STATE
Nếu InetLayer ở trạng thái không chính xác.
INET_ERROR_NO_MEMORY
Nếu InetLayer hết tài nguyên cho yêu cầu hẹn giờ mới này.
other
Lỗi nền tảng cụ thể cho biết lý do khởi tạo không thành công.
INET_NO_ERROR
Về thành công.

InitQueueLimiter

INET_ERROR InitQueueLimiter(
  void
)

MatchLocalIPv6Subnet

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

Kiểm tra xem có sự trùng khớp tiền tố giữa địa chỉ IPv6 được chỉ định và bất kỳ địa chỉ IPv6 nào được cấu hình cục bộ hay không.

Chi tiết
Thông số
[in] addr
Địa chỉ IPv6 để kiểm tra sự trùng khớp tiền tố.
Lợi nhuận
true nếu tìm thấy kết quả phù hợp thành công, ngược lại là false.

NewRawEndPoint

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

Tạo đối tượng RawEndPoint mới cho phiên bản và giao thức IP cụ thể.

Chi tiết
Thông số
[in] ipVer
IPv4 hoặc IPv6.
[in] ipProto
Một giao thức trong họ IP (ví dụ: ICMPv4 hoặc ICMPv6).
[in,out] retEndPoint
Một con trỏ tới một con trỏ của đối tượng RawEndPoint là một tham số trả về sau khi hoàn thành việc tạo đối tượng. * retEndPoint là NULL nếu việc tạo không thành công.
Giá trị trả lại
INET_ERROR_INCORRECT_STATE
Nếu đối tượng InetLayer không được khởi tạo.
INET_ERROR_NO_ENDPOINTS
Nếu nhóm InetLayer RawEndPoint đã đầy và không thể tạo điểm cuối mới.
INET_NO_ERROR
Về thành công.

NewTCPEndPoint

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

Tạo một đối tượng TCPEndPoint mới.

Chi tiết
Thông số
[in,out] retEndPoint
Một con trỏ đến một con trỏ của đối tượng TCPEndPoint là một tham số trả về sau khi hoàn thành việc tạo đối tượng. * retEndPoint là NULL nếu việc tạo không thành công.
Giá trị trả lại
INET_ERROR_INCORRECT_STATE
Nếu đối tượng InetLayer không được khởi tạo.
INET_ERROR_NO_ENDPOINTS
Nếu nhóm InetLayer TCPEndPoint đã đầy và không có điểm cuối mới nào có thể được tạo.
INET_NO_ERROR
Về thành công.

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

Tạo một đối tượng TunEndPoint mới.

Chi tiết
Thông số
[in,out] retEndPoint
Một con trỏ tới một con trỏ của đối tượng TunEndPoint là một tham số trả về sau khi hoàn thành việc tạo đối tượng. * retEndPoint là NULL nếu việc tạo không thành công.
Giá trị trả lại
INET_ERROR_INCORRECT_STATE
Nếu đối tượng InetLayer không được khởi tạo.
INET_ERROR_NO_ENDPOINTS
Nếu nhóm InetLayer TunEndPoint đã đầy và không thể tạo nhóm mới.
INET_NO_ERROR
Về thành công.

NewUDPEndPoint

INET_ERROR NewUDPEndPoint(
  UDPEndPoint **retEndPoint
)

Tạo một đối tượng UDPEndPoint mới.

Chi tiết
Thông số
[in,out] retEndPoint
Một con trỏ tới một con trỏ của đối tượng UDPEndPoint là một tham số trả về sau khi hoàn thành việc tạo đối tượng. * retEndPoint là NULL nếu việc tạo không thành công.
Giá trị trả lại
INET_ERROR_INCORRECT_STATE
Nếu đối tượng InetLayer không được khởi tạo.
INET_ERROR_NO_ENDPOINTS
Nếu nhóm InetLayer UDPEndPoint đã đầy và không có điểm cuối mới nào có thể được tạo.
INET_NO_ERROR
Về thành công.

Chuẩn bị Chọn

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

Chuẩn bị bộ mô tả tệp để select() làm việc với.

Chi tiết
Thông số
[out] nfds
Phạm vi của bộ mô tả tệp trong bộ mô tả tệp.
[in] readfds
Một con trỏ đến tập hợp các bộ mô tả tệp có thể đọc được.
[in] writefds
Một con trỏ đến tập hợp các bộ mô tả tệp có thể ghi.
[in] exceptfds
Một con trỏ đến tập hợp các bộ mô tả tệp có lỗi.
[in] sleepTimeTV
Một con trỏ đến một cấu trúc chỉ định thời gian vùng chọn sẽ ngủ

ResolveHostAddress

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

Thực hiện phân giải địa chỉ IP của một tên máy chủ được chỉ định.

Chi tiết
Thông số
[in] hostName
Một con trỏ tới chuỗi C không kết thúc bằng NULL đại diện cho tên máy chủ được truy vấn.
[in] hostNameLen
Độ dài chuỗi của tên máy chủ.
[in] options
Một giá trị số nguyên kiểm soát cách phân giải tên máy chủ được thực hiện.
                    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
Số lượng địa chỉ tối đa để lưu trữ trong bảng DNS.
[in] addrArray
Một con trỏ đến bảng DNS.
[in] onComplete
Một con trỏ đến hàm gọi lại khi yêu cầu DNS hoàn tất.
[in] appState
Một con trỏ đến trạng thái ứng dụng sẽ được chuyển đến onComplete khi một yêu cầu DNS hoàn tất.
Giá trị trả lại
INET_NO_ERROR
nếu một yêu cầu DNS được xử lý thành công.
INET_ERROR_NO_MEMORY
nếu nhóm phân giải lớp Inet đã đầy.
INET_ERROR_HOST_NAME_TOO_LONG
nếu tên máy chủ được yêu cầu quá dài.
INET_ERROR_HOST_NOT_FOUND
nếu tên máy chủ yêu cầu không thể được giải quyết thành một địa chỉ.
INET_ERROR_DNS_TRY_AGAIN
nếu máy chủ định danh trả về chỉ báo lỗi tạm thời; thử lại sau.
INET_ERROR_DNS_NO_RECOVERY
nếu máy chủ định danh trả về lỗi không thể khôi phục.
INET_ERROR_NOT_IMPLEMENTED
nếu phân giải DNS không được bật trên nền tảng cơ bản.
other
Lỗi mạng hoặc hệ điều hành POSIX do triển khai trình phân giải DNS bên dưới trả về.

ResolveHostAddress

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

Thực hiện phân giải địa chỉ IP của một tên máy chủ được chỉ định.

Chi tiết
Thông số
[in] hostName
Một con trỏ đến chuỗi C không kết thúc bằng NULL đại diện cho tên máy chủ được truy vấn.
[in] hostNameLen
Độ dài chuỗi của tên máy chủ.
[in] maxAddrs
Số lượng địa chỉ tối đa để lưu trữ trong bảng DNS.
[in] addrArray
Một con trỏ đến bảng DNS.
[in] onComplete
Một con trỏ đến hàm gọi lại khi yêu cầu DNS hoàn tất.
[in] appState
Một con trỏ đến trạng thái ứng dụng sẽ được chuyển đến onComplete khi một yêu cầu DNS hoàn tất.
Giá trị trả lại
INET_NO_ERROR
nếu một yêu cầu DNS được xử lý thành công.
INET_ERROR_NO_MEMORY
nếu nhóm phân giải lớp Inet đã đầy.
INET_ERROR_HOST_NAME_TOO_LONG
nếu tên máy chủ được yêu cầu quá dài.
INET_ERROR_HOST_NOT_FOUND
nếu tên máy chủ yêu cầu không thể được giải quyết thành một địa chỉ.
INET_ERROR_DNS_TRY_AGAIN
nếu máy chủ định danh trả về chỉ báo lỗi tạm thời; thử lại sau.
INET_ERROR_DNS_NO_RECOVERY
nếu máy chủ định danh trả về lỗi không thể khôi phục.
INET_ERROR_NOT_IMPLEMENTED
nếu phân giải DNS không được bật trên nền tảng cơ bản.
other
Lỗi hệ điều hành hoặc mạng POSIX do triển khai trình phân giải DNS bên dưới trả về.

ResolveHostAddress

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

Thực hiện phân giải địa chỉ IP của một tên máy chủ được chỉ định.

Chi tiết
Thông số
[in] hostName
Một con trỏ đến một chuỗi C được kết thúc bằng NULL đại diện cho tên máy chủ được truy vấn.
[in] maxAddrs
Số lượng địa chỉ tối đa để lưu trữ trong bảng DNS.
[in] addrArray
Một con trỏ đến bảng DNS.
[in] onComplete
Một con trỏ đến hàm gọi lại khi yêu cầu DNS hoàn tất.
[in] appState
Một con trỏ đến trạng thái ứng dụng sẽ được chuyển đến onComplete khi một yêu cầu DNS hoàn tất.
Giá trị trả lại
INET_NO_ERROR
nếu một yêu cầu DNS được xử lý thành công.
INET_ERROR_NO_MEMORY
nếu nhóm phân giải lớp Inet đã đầy.
INET_ERROR_HOST_NAME_TOO_LONG
nếu tên máy chủ được yêu cầu quá dài.
INET_ERROR_HOST_NOT_FOUND
nếu tên máy chủ yêu cầu không thể được giải quyết thành một địa chỉ.
INET_ERROR_DNS_TRY_AGAIN
nếu máy chủ định danh trả về dấu hiệu lỗi tạm thời; thử lại sau.
INET_ERROR_DNS_NO_RECOVERY
nếu máy chủ định danh trả về lỗi không thể khôi phục.
INET_ERROR_NOT_IMPLEMENTED
nếu phân giải DNS không được bật trên nền tảng cơ bản.
other
Lỗi mạng hoặc hệ điều hành POSIX do triển khai trình phân giải DNS bên dưới trả về.

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

Điều này đặt dữ liệu nền tảng dành riêng cho máy khách được chỉ định thành phiên bản để nền tảng máy khách truy xuất sau này.

Chi tiết
Thông số
[in] aPlatformData
Dữ liệu nền tảng dành riêng cho khách hàng cần đặt.

Tắt

INET_ERROR Shutdown(
  void
)

Đây là trình khởi tạo rõ ràng InetLayer và nên được gọi trước khi xử lý một phiên bản InetLayer được khởi tạo.

Các nền tảng có thể chọn xác nhận INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS trong tiêu đề cấu hình dành riêng cho nền tảng của họ và bật các móc nối Platform :: InetLayer :: WillShutdown and Platform :: InetLayer :: DidShutdown để xóa sạch các tùy chỉnh hoặc tiện ích dữ liệu dành riêng cho nền tảng cho InetLayer .

Chi tiết
Lợi nhuận
INET_NO_ERROR về thành công; nếu không, một lỗi cụ thể cho biết lý do tắt máy.

SystemLayer

Weave::System::Layer * SystemLayer(
  void
) const 

Chức năng tĩnh công khai

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
)