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, như bộ tính 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.
Tóm tắt
Đối với Cổng BSD/POSIX, thông báo về trạng thái sẵn sàng của sự kiện được xử lý thông qua phần mô tả tệp và cách triển khai cuộc thăm dò ý kiến / lựa chọn truyền thống khi thích ứng với nền tảng.
Đối với LwIP, thông báo trạng thái sẵn sàng của sự kiện được xử lý thông qua các sự kiện / tin nhắn cũng như các mối liên kết cụ thể theo nền tảng và hệ thống cho hệ thống sự kiện / thông báo.
Hàm dựng và hàm phá hủy |
|
---|---|
InetLayer(void)
Đây là hàm dựng mặc định Inetlayer.
|
Loại công khai |
|
---|---|
@5{
|
enum Trạng thái hiện tại của đối tượng Inetlayer. |
DNSResolveCompleteFunct
|
typedefDNSResolver::OnResolveCompleteFunct
|
Thuộc tính công khai |
|
---|---|
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
|
Hàm công khai |
|
---|---|
CanEnqueueDroppableEvent(void)
|
bool
|
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
|
void
Hủy bất kỳ truy vấn DNS chưa xử lý nào (đối với lệnh gọi lại hoàn thành và trạng thái ứng dụng trùng khớp) vẫn có thể đang hoạt động.
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
Lấy giá trị nhận dạng giao diện cho địa chỉ IP chỉ định.
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
Nhận địa chỉ IPv6 cục bộ cho liên kết hoặc giao diện đã chỉ định.
|
GetPlatformData(void)
|
void *
Thao tác này sẽ trả về mọi dữ liệu nền tảng dành riêng cho ứng dụng được chỉ định cho phiên bản này, nếu dữ liệu đã được đặt trước đó.
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
Xử lý I/O trong một cuộc gọi đã 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ó địa chỉ IPv6 đã chỉ định nào khớp với địa chỉ IPv6 đã định cấu hình hay không.
|
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
|
Tạo đối tượng RawEndPoint mới cho một phiên bản và giao thức IP cụ thể.
|
NewTCPEndPoint(TCPEndPoint **retEndPoint)
|
Tạo đố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ị tập hợp các nhãn mô tả tệp để
select() hoạt động. |
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 tên máy chủ đã 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 tên máy chủ đã 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 tên máy chủ đã chỉ định.
|
SetPlatformData(void *aPlatformData)
|
void
Thao tác này sẽ đặt dữ liệu của nền tảng dành riêng cho ứng dụng thành phiên bản để nền tảng ứng dụng truy xuất sau này.
|
Shutdown(void)
|
Đây là trình hủy kích hoạt Inetlayer và phải được gọi trước khi xử lý thực thể InetOverlay đã tạo bản sao.
|
SystemLayer(void) const
|
Hàm 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
|
Loại công khai
@5
@5
Trạng thái hiện tại của đối tượng Inetlayer.
Thuộc tính | |
---|---|
kState_Initialized
|
Trạng thái đã khởi tạo. |
kState_NotInitialized
|
Trạng thái chưa khởi tạo. |
kState_ShutdownInProgress
|
Trạng thái đã tắt tính năng Tắt. |
Hoàn thành DNS
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
Thuộc tính công khai
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Ó THỂ ĐỌC] Trạng thái hiện tại.
Thuộc tính tĩnh công khai
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
Hàm công khai
Sự kiện CanEnQueuedroppableEvent
bool CanEnqueueDroppableEvent( void )
Hủy phân giải địa chỉ của máy chủ
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
Hủy bất kỳ truy vấn DNS chưa xử lý nào (đối với lệnh gọi lại hoàn thành và trạng thái ứng dụng trùng khớp) vẫn có thể đang hoạt động.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
Sự kiện thả vào hàng đợi
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
Lấy giá trị nhận dạng giao diện cho địa chỉ IP chỉ định.
Nếu không thể lấy giá trị nhận dạng giao diện, bạn sẽ đặt giá trị này thành INET_NULL_INTERFACEID.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các thông số |
|
||||
Trả về |
INET_NO_ERROR vô điều kiện.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
Nhận địa chỉ IPv6 cục bộ cho liên kết hoặc giao diện đã chỉ định.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
||||||||
Giá trị trả về |
|
Lấy dữ liệu nền tảng
void * GetPlatformData( void )
Thao tác này sẽ trả về mọi dữ liệu nền tảng dành riêng cho ứng dụng được chỉ định cho phiên bản này, nếu dữ liệu đã được đặt trước đó.
Thông tin chi tiết | |
---|---|
Trả về |
Dữ liệu nền tảng dành riêng cho ứng dụng, nếu đã được đặt trước đó; nếu không, sẽ là NULL.
|
Xử lý chọn kết quả
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
Xử lý I/O trong một cuộc gọi đã 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 đang hoạt động rồi gọi các hàm xử lý I/O tương ứng cho các điểm cuối đó.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
Lớp lót
InetLayer( void )
Đây là hàm dựng mặc định Inetlayer.
Phương thức này thực hiện một số hoạt động khởi tạo thành phần dữ liệu cơ bản; tuy nhiên, vì InetOverlay tuân theo một mẫu thiết kế khởi tạo rõ ràng, nên phương thức InetOverlay::Init phải được gọi thành công trước khi sử dụng đối tượng.
Số nguyên
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
Đây là trình khởi tạo rõ ràng Inetlayer.
Lệnh này phải được gọi và hoàn tất thành công trước khi có thể sử dụng Inetlayer.
Người gọi có thể cung cấp một đối số ngữ cảnh tùy chọn sẽ được chuyển trở lại thông qua bất kỳ hàm móc dành riêng cho nền tảng nào. Đối với các cách điều chỉnh dựa trên LwIP, đây thường sẽ là một con trỏ đến hàng đợi sự kiện liên kết với thự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::InetOverlay::WillInit và Platform::Inetlayer::DidInit hook để tác động đến các tùy chỉnh hoặc tiện ích dữ liệu dành riêng cho nền tảng đến InetOverlay.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
||||||||
Giá trị trả về |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
Khớp mạng cục bộ
bool MatchLocalIPv6Subnet( const IPAddress & addr )
Kiểm tra xem có địa chỉ IPv6 đã chỉ định nào khớp với địa chỉ IPv6 đã định cấu hình hay không.
Thông tin chi tiết | |||
---|---|---|---|
Các thông số |
|
||
Trả về |
true nếu tìm thấy kết quả phù hợp, nếu không thì sai.
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
Tạo đối tượng RawEndPoint mới cho một phiên bản và giao thức IP cụ thể.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông số |
|
||||||
Giá trị trả về |
|
NewTCPEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
Tạo đối tượng TCPEndPoint mới.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông số |
|
||||||
Giá trị trả về |
|
Điểm mới
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
Tạo một đối tượng TunEndPoint mới.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông số |
|
||||||
Giá trị trả về |
|
NewUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
Tạo một đối tượng UDPEndPoint mới.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các thông số |
|
||||||
Giá trị trả về |
|
Chuẩn bị chọn
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
Chuẩn bị tập hợp các nhãn mô tả tệp để select()
hoạt động.
Thông tin chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
PlayHostaddress
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 tên máy chủ đã chỉ định.
Thông tin chi tiết | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
||||||||||||||||
Giá trị trả về |
|
PlayHostaddress
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 tên máy chủ đã chỉ định.
Thông tin chi tiết | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
||||||||||||||||
Giá trị trả về |
|
PlayHostaddress
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 tên máy chủ đã chỉ định.
Thông tin chi tiết | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Các thông số |
|
||||||||||||||||
Giá trị trả về |
|
Đặt dữ liệu nền tảng
void SetPlatformData( void *aPlatformData )
Thao tác này sẽ đặt dữ liệu của nền tảng dành riêng cho ứng dụng thành phiên bản để nền tảng ứng dụng truy xuất sau này.
Thông tin chi tiết | |||
---|---|---|---|
Các thông số |
|
Tắt
INET_ERROR Shutdown( void )
Đây là trình hủy kích hoạt Inetlayer và phải được gọi trước khi xử lý thực thể InetOverlay đã tạo bản sao.
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 Nền tảng::Inetlayer::WillWilldown và Platform::Inetlayer::WillShutdown sẽ giúp xóa các tùy chỉnh hoặc phần mở rộng dữ liệu theo nền tảng cụ thể thành InetOverlay.
Thông tin chi tiết | |
---|---|
Trả về |
INET_NO_ERROR về thành công; nếu không, lỗi cụ thể cho biết lý do tắt.
|
Lớp hệ thống
Weave::System::Layer * SystemLayer( void ) const
Hàm tĩnh công khai
Sự kiện lớpIInetlayer
Weave::System::Error HandleInetLayerEvent( Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument )
Sự kiện thả xuống
bool IsDroppableEvent( Weave::System::EventType aType )