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) |
Các 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 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ố |
|
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ố |
| ||||
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ố |
| ||||||||
Giá trị trả lại |
|
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ố |
|
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ố |
| ||||||||
Giá trị trả lại |
|
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ố |
| ||
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ố |
| ||||||
Giá trị trả lại |
|
NewTCPEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
Tạo một đối tượng TCPEndPoint mới.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
| ||||||
Giá trị trả lại |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
Tạo một đối tượng TunEndPoint mới.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
| ||||||
Giá trị trả lại |
|
NewUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
Tạo một đối tượng UDPEndPoint mới.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
| ||||||
Giá trị trả lại |
|
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ố |
|
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ố |
| ||||||||||||||||
Giá trị trả lại |
|
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ố |
| ||||||||||||||||
Giá trị trả lại |
|
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ố |
| ||||||||||||||||
Giá trị trả lại |
|
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ố |
|
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 )