nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
Các đối tượng của lớp này đại diện cho các điểm cuối của giao thức IP không thể tạo thực thể.
Tóm tắt
Tính kế thừa
Kế thừa từ: nl::Inet::EndPointBasisLớp học con đã biết trực tiếp:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Loại công khai |
|
---|---|
@8{
|
enum Trạng thái động cơ bản của điểm cuối cơ bản. |
@9{
|
enum Cờ tuỳ chọn truyền cho phương thức SendMsg . |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Loại chức năng xử lý sự kiện nhận tin nhắn văn bản. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Loại hàm xử lý sự kiện lỗi tiếp nhận. |
Các thuộc tính công khai |
|
---|---|
OnMessageReceived
|
Hàm uỷ quyền xử lý sự kiện nhận tin nhắn của điểm cuối.
|
OnReceiveError
|
Điểm cuối nhận được uỷ quyền chức năng xử lý sự kiện lỗi.
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
Trạng thái động cơ bản của điểm cuối cơ bản.
|
Thuộc tính được bảo vệ |
|
---|---|
mBoundIntfId
|
InterfaceId
|
Hàm công khai |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Tham gia một nhóm phát đa hướng IP.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Rời khỏi một nhóm phát đa hướng IP.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Thiết lập xem có nên lặp lại lưu lượng truy cập đa hướng IP hay không.
|
Hàm được bảo vệ |
|
---|---|
Bind(IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId)
|
|
BindInterface(IPAddressType aAddressType, InterfaceId aInterfaceId)
|
|
GetSocket(IPAddressType aAddressType, int aType, int aProtocol)
|
|
HandleDataReceived(Weave::System::PacketBuffer *aBuffer)
|
void
|
HandlePendingIO(uint16_t aPort)
|
void
|
Init(InetLayer *aInetLayer)
|
void
|
PrepareIO(void)
|
|
SendMsg(const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags)
|
Hàm tĩnh công khai |
|
---|---|
FindNetifFromInterfaceId(InterfaceId aInterfaceId)
|
struct netif *
|
Hàm tĩnh được bảo vệ |
|
---|---|
GetPacketInfo(Weave::System::PacketBuffer *buf)
|
Nhận thông tin về địa chỉ đích và nguồn của lớp IP LwIP.
|
Loại công khai
@8
@8
Trạng thái động cơ bản của điểm cuối cơ bản.
Các đối tượng được khởi tạo trong giai đoạn "sẵn sàng" chuyển sang phần "ràng buộc" trạng thái sau khi liên kết với địa chỉ giao diện cục bộ thì chuyển sang quá trình "nghe" trạng thái khi chúng có các thành phần tiếp tục được đăng ký để xử lý các sự kiện nhận thông báo ICMP.
Lưu ý: Bản liệt kê trạng thái kBasisState_Closed
được liên kết với kState_Ready
vì các lý do trước đây liên quan đến khả năng tương thích nhị phân. kState_Closed
hiện có tồn tại để xác định riêng biệt sự khác biệt giữa "chưa mở" và "đã mở trước đó
hiện đã đóng" đã tồn tại trước đây ở trạng thái kState_Ready
và kState_Closed
.
Thuộc tính | |
---|---|
kState_Bound
|
Điểm cuối bị ràng buộc nhưng không lắng nghe. |
kState_Closed
|
Đã đóng điểm cuối, sẵn sàng phát hành. |
kState_Listening
|
Điểm cuối nhận gói dữ liệu. |
kState_Ready
|
Đã khởi chạy điểm cuối nhưng chưa mở. |
@9
@9
Cờ tuỳ chọn truyền cho phương thức SendMsg
.
Thuộc tính | |
---|---|
kSendFlag_RetainBuffer
|
Đừng trực tiếp thêm thư vào hàng đợi gây thiệt hại. Thêm một bản sao vào danh sách chờ. |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
Loại chức năng xử lý sự kiện nhận tin nhắn văn bản.
Cung cấp hàm thuộc loại này cho thành viên được uỷ quyền OnMessageReceived
để xử lý các sự kiện nhận tin nhắn văn bản trên endPoint
, trong đó msg
là nội dung tin nhắn nhận được từ người gửi tại senderAddr
.
Thông tin chi tiết | |||||||
---|---|---|---|---|---|---|---|
Tham số |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
Loại hàm xử lý sự kiện lỗi tiếp nhận.
Cung cấp một hàm thuộc loại này cho thành viên được uỷ quyền OnReceiveError
để xử lý các sự kiện lỗi tiếp nhận trên endPoint
. Đối số err
cung cấp thông tin chi tiết cụ thể về loại lỗi.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
Các thuộc tính công khai
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
Hàm uỷ quyền xử lý sự kiện nhận tin nhắn của điểm cuối.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
Điểm cuối nhận được uỷ quyền chức năng xử lý sự kiện lỗi.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
Trạng thái động cơ bản của điểm cuối cơ bản.
Các đối tượng được khởi tạo trong giai đoạn "sẵn sàng" chuyển sang phần "ràng buộc" trạng thái sau khi liên kết với địa chỉ giao diện cục bộ thì chuyển sang quá trình "nghe" trạng thái khi chúng có các thành phần tiếp tục được đăng ký để xử lý các sự kiện nhận thông báo ICMP.
Lưu ý: Bản liệt kê trạng thái kBasisState_Closed
được liên kết với kState_Ready
vì các lý do trước đây liên quan đến khả năng tương thích nhị phân. kState_Closed
hiện có tồn tại để xác định riêng biệt sự khác biệt giữa "chưa mở" và "đã mở trước đó
hiện đã đóng" đã tồn tại trước đây ở trạng thái kState_Ready
và kState_Closed
.
Thuộc tính được bảo vệ
mBoundIntfId
InterfaceId mBoundIntfId
Hàm công khai
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Tham gia một nhóm phát đa hướng IP.
Kết nối điểm cuối với nhóm truyền đa hướng đã cung cấp trên giao diện được chỉ định.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||
Giá trị trả về |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Rời khỏi một nhóm phát đa hướng IP.
Xoá điểm cuối khỏi nhóm truyền đa hướng đã cung cấp trên giao diện đã chỉ định.
Thông tin chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Tham số |
|
||||||||
Giá trị trả về |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Thiết lập xem có nên lặp lại lưu lượng truy cập đa hướng IP hay không.
Thiết lập xem có nên lặp lại lưu lượng truy cập đa hướng IP đến điểm cuối này hay không.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Tham số |
|
||||
Giá trị trả về |
|
Hàm được bảo vệ
Đóng gáy
INET_ERROR Bind( IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId )
BindInterface
INET_ERROR BindInterface( IPAddressType aAddressType, InterfaceId aInterfaceId )
GetSocket
INET_ERROR GetSocket( IPAddressType aAddressType, int aType, int aProtocol )
HandleDataReceived
void HandleDataReceived( Weave::System::PacketBuffer *aBuffer )
HandlePendingIO
void HandlePendingIO( uint16_t aPort )
Init
void Init( InetLayer *aInetLayer )
PrepareIO
SocketEvents PrepareIO( void )
SendMsg
INET_ERROR SendMsg( const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags )
Hàm tĩnh công khai
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
Hàm tĩnh được bảo vệ
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
Nhận thông tin về địa chỉ đích và nguồn của lớp IP LwIP.
Khi sử dụng LwIP, thông tin về gói được "ẩn" trong không gian dành riêng trước khi dữ liệu bắt đầu trong vùng đệm gói. Điều này là cần thiết vì các sự kiện lớp hệ thống chỉ có hai đối số. Trong trường hợp này, các đối số này được dùng để truyền con trỏ đến điểm cuối và con trỏ đến vùng đệm.
Thông tin chi tiết | |||
---|---|---|---|
Tham số |
|
||
Trả về |
một con trỏ đến thông tin địa chỉ khi thành công; ngược lại sẽ là giá trị NULL nếu không có đủ khoảng trống trong gói cho thông tin địa chỉ.
|
Trong hầu hết các trường hợp, thủ thuật lưu trữ thông tin này trước khi dữ liệu hoạt động vì vùng đệm đầu tiên trong thông báo IP LwIP chứa không gian được sử dụng cho tiêu đề Ethernet/IP/UDP. Tuy nhiên, với kích thước hiện tại của cấu trúc IPPacketInfo (40 byte), có thể sẽ không có đủ chỗ để lưu trữ cấu trúc cùng với tải trọng trong một bộ đệm gói. Trong thực tế, điều này sẽ chỉ xảy ra cho các gói IPv4 cực lớn đến mà không có tiêu đề Ethernet.