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 duy nhất.
Tóm tắt
Đối với Ổ cắm 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 chỉ số mô tả tệp và phương thức triển khai thăm dò / chọn lọc truyền thống trên việc thích ứng 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 cho hệ thống sự kiện / thông báo.
Hàm khởi tạo và hàm phá |
|
---|---|
InetLayer(void)
Đây là hàm khởi tạo 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
Huỷ mọi truy vấn DNS chưa xử lý (đối với lệnh gọi lại hoàn thành trùng khớ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ậ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 được chỉ định cho phiên bản này, nếu phiên bản này đã đượ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 đượ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ó khớp tiền tố 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 đố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 đối tượng TCPEndPoint mới.
|
NewTunEndPoint(TunEndPoint **retEndPoint)
|
Tạo đối tượng TunEndPoint mới.
|
NewUDPEndPoint(UDPEndPoint **retEndPoint)
|
Tạo đố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() xử lý. |
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
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)
|
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)
|
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ẽ thiết lập dữ liệu nền tảng của riêng ứng dụng được chỉ định thành phiên bản để nền tảng ứng dụng truy xuất sau này.
|
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 được khởi tạo. |
kState_ShutdownInProgress
|
Trạng thái nơi tính năng Tắt đã được kích hoạt. |
DNSResolveCompleteFunct
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.
[READ-ONLY] 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 trùng khớp và trạng thái ứng dụng) có thể vẫn đang hoạt động.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham 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 đã chỉ định.
Nếu không thể lấy mã nhận dạng giao diện, thì mã nhận dạng đó được đặt thành INET_NULL_INTERFACEID.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
||||
Trả về |
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 đường liên kết cho một đường liên kết hoặc giao diện đã chỉ định.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các 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 được chỉ định cho phiên bản này, nếu phiên bản này đã đượ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 thì giá trị là NULL.
|
HandleSelectResult
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
Xử lý I/O trong 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ý cho 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 đó.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các tham số |
|
InetLayer
InetLayer( void )
Đây là hàm khởi tạo mặc định InetLayer.
Thao tác này 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ẫu thiết kế trình khởi tạo rõ ràng, 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.
Bắt đầu
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 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 trả về thông qua hàm hook dành riêng cho nền tảng bất kỳ. Đối với các hoạt động điều chỉnh dựa trên LwIP, giá trị này thường là con trỏ đến hàng đợi sự kiện được 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 hook::InetLayer::WillInit và Platform::InetLayer::DidInit để tuỳ chỉnh các phần mở rộng dữ liệu hoặc tuỳ chỉnh dành riêng cho nền tảng vào InetLayer.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Các tham số |
|
||||||||
Giá trị trả về |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
Kiểm tra xem có khớp tiền tố 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.
Thông tin chi tiết | |||
---|---|---|---|
Các tham số |
|
||
Trả về |
true nếu tìm thấy kết quả trùng khớp thành công, nếu không thì là false.
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
Tạo đối tượng RawEndPoint mới cho một giao thức và phiên bản IP cụ thể.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các tham 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 tham số |
|
||||||
Giá trị trả về |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
Tạo đối tượng TunEndPoint mới.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các tham số |
|
||||||
Giá trị trả về |
|
NewUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
Tạo đối tượng UDPEndPoint mới.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Các 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()
xử lý.
Thông tin chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Các tham số |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Phân giải địa chỉ IP của tên máy chủ đã chỉ định.
Thông tin chi tiết | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Các 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 )
Phân giải địa chỉ IP của tên máy chủ đã chỉ định.
Thông tin chi tiết | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Các tham số |
|
||||||||||||||||
Giá trị trả về |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Phân giải địa chỉ IP của tên máy chủ đã chỉ định.
Thông tin chi tiết | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Các 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 của riêng ứng dụng được chỉ định 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 tham số |
|
Tắt
INET_ERROR Shutdown( void )
Đây là trình khởi tạo rõ ràng của InetLayer và phải được gọi trước khi loại bỏ thực thể InetLayer 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 mình và bật hook::InetLayer::WillShutdown và Platform::InetLayer:::DidShutdown để xoá các phần tuỳ chỉnh dành riêng cho nền tảng hoặc phần mở rộng dữ liệu sang InetLayer.
Thông tin chi tiết | |
---|---|
Trả về |
INET_NO_ERROR khi thành công; nếu không, 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 )