nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
Nhờ vậy, bạn có thể truy cập vào các dịch vụ Internet, trong đó có bộ tính giờ, hoạt động 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 đơn.
Tóm tắt
Đối với Cổng BSD/POSIX, thông báo trạng thái sẵn sàng của sự kiện được xử lý thông qua chỉ số mô tả tệp và phương thức triển khai cuộc thăm dò ý kiến / lựa chọn truyền thống trên việc điều chỉnh 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 / thông báo, cũng như các hook dành riêng cho nền tảng và hệ thống đối với sự kiện / hệ thống thông báo.
Hàm khởi tạo và phá huỷ |
|
---|---|
InetLayer(void)
Đây là hàm khởi tạo mặc định của 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
|
Các 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
Huỷ mọi truy vấn DNS chưa xử lý (đối với lệnh gọi lại hoàn thành và trạng thái ứng dụng phù hợp) có thể vẫn đ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)
|
Lấy địa chỉ IPv6 cục bộ của đường liên kết cho một đường 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 khách được chỉ định cho thực thể đó, nếu đã được thiết lập trước đó.
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
Xử lý I/O từ một lệnh 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ó tiền tố trùng khớp giữa địa chỉ IPv6 đã chỉ định và bất kỳ địa chỉ IPv6 nào được định cấu hình cục bộ hay không.
|
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
|
Tạo một đối tượng RawEndPoint mới cho một giao thức và phiên bản 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ộ chỉ số mô tả tệp để
select() làm việc cù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 một 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 một 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 một tên máy chủ đã chỉ định.
|
SetPlatformData(void *aPlatformData)
|
void
Thao tác này sẽ thiết lập dữ liệu nền tảng dành riêng cho ứng dụng được chỉ định thành thực thể để nền tảng ứng dụng truy xuất sau.
|
Shutdown(void)
|
|
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 động. |
kState_NotInitialized
|
Trạng thái chưa khởi tạo. |
kState_ShutdownInProgress
|
Trạng thái đã kích hoạt tính năng Tắt. |
DNSResolveCompleteFunct
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
Các 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] 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
CanEnqueueDroppableEvent
bool CanEnqueueDroppableEvent( void )
CancelResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
Huỷ mọi truy vấn DNS chưa xử lý (đối với lệnh gọi lại hoàn thành và trạng thái ứng dụng phù hợp) có thể vẫn đang hoạt động.
Chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
DroppableEventDequeued
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 lấy được giá trị nhận dạng giao diện, thì giá trị nhận dạng đó sẽ được đặt thành INET_NULL_INTERFACEID.
Chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Trả về |
INET_NO_ERROR một cách vô điều kiện.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
Lấy địa chỉ IPv6 cục bộ của đường liên kết cho một đường liên kết hoặc giao diện đã chỉ định.
Chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||
Giá trị trả về |
|
GetPlatformData
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 khách được chỉ định cho thực thể đó, nếu đã được thiết lập trước đó.
Chi tiết | |
---|---|
Trả về |
Dữ liệu nền tảng dành riêng cho ứng dụng, nếu đã được thiết lập từ trước; nếu không thì là NULL.
|
HandleSelectResult
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
Xử lý I/O từ một lệnh gọi được chọn.
Phương thức này đăng ký sự kiện I/O đang chờ xử lý trong từng điểm cuối đang hoạt động, sau đó gọi các hàm xử lý I/O tương ứng cho các điểm cuối đó.
Chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Tham số |
|
InetLayer
InetLayer( void )
Đây là hàm khởi tạo mặc định của InetLayer.
Công 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ì InetLayer tuân theo một mẫu thiết kế rõ ràng cho trình khởi chạy, nên phương thức InetLayer::Init phải được gọi thành công trước khi sử dụng đối tượng.
Init
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
Đây là trình khởi tạo rõ ràng InetLayer.
Hàm 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.
Phương thức gọi có thể cung cấp một đối số ngữ cảnh không bắt buộc. Đối số này sẽ được chuyển lại thông qua mọi hàm hook dành riêng cho nền tảng. Đối với các bản điều chỉnh dựa trên LwIP, đây thường sẽ là một con trỏ tới 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 và bật Platform::InetLayer::WillInit và Platform::InetLayer::DidInit kết nối để hiệu ứng các tuỳ chỉnh dành riêng cho nền tảng hoặc phần mở rộng dữ liệu cho InetLayer.
Chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||
Giá trị trả về |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
Kiểm tra xem có tiền tố trùng khớp giữa địa chỉ IPv6 đã chỉ định và bất kỳ địa chỉ IPv6 nào được định cấu hình cục bộ hay không.
Chi tiết | |||
---|---|---|---|
Tham số |
|
||
Trả về |
true nếu tìm thấy kết quả thành công, nếu không thì giá trị trả về sẽ là false.
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
Tạo một đối tượng RawEndPoint mới cho một giao thức và phiên bản IP cụ thể.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Tham số |
|
||||||
Giá trị trả về |
|
NewTCPEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
Tạo một đối tượng TCPEndPoint mới.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Tham số |
|
||||||
Giá trị trả về |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
Tạo một đối tượng TunEndPoint mới.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Tham số |
|
||||||
Giá trị trả về |
|
NewUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
Tạo một đối tượng UDPEndPoint mới.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Tham số |
|
||||||
Giá trị trả về |
|
PrepareSelect
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
Chuẩn bị bộ chỉ số mô tả tệp để select()
làm việc cùng.
Chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Tham số |
|
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ủ đã chỉ định.
Chi tiết | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||||||||||
Giá trị 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ủ đã chỉ định.
Chi tiết | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||||||||||
Giá trị 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ủ đã chỉ định.
Chi tiết | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||||||||||
Giá trị trả về |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
Thao tác này sẽ thiết lập dữ liệu nền tảng dành riêng cho ứng dụng được chỉ định thành thực thể để nền tảng ứng dụng truy xuất sau.
Chi tiết | |||
---|---|---|---|
Tham số |
|
Tắt
INET_ERROR Shutdown( void )
Đây là trình gỡ khởi tạo rõ ràng InetLayer và phải được gọi trước khi loại bỏ một thực thể InetLayer đã tạo thực thể.
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 và bật các Platform::InetLayer::WillShutdown và Platform::InetLayer:::DidShutdown để dọn dẹp các phần tuỳ chỉnh dành riêng cho nền tảng hoặc các phần mở rộng dữ liệu đối với InetLayer.
Chi tiết | |
---|---|
Trả về |
INET_NO_ERROR khi thành công; nếu không thì một lỗi cụ thể cho biết lý do không tắt được.
|
SystemLayer
Weave::System::Layer * SystemLayer( void ) const
Hàm 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 )