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 giao thức IP không thể khởi tạo.
Tóm lược
Di sản
Kế thừa từ: nl :: Inet :: EndPointBasisCác lớp con đã biết trực tiếp:
nl :: Inet :: RawEndPoint
nl :: Inet :: UDPEndPoint
Các loại công khai | |
---|---|
@8 { | enum Trạng thái động cơ bản của điểm cuối bên dưới. |
@9 { | enum Truyền cờ tùy chọ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 tiếp nhận văn bản tin nhắn. |
OnReceiveErrorFunct )(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) | typedefvoid(* Loại chức năng xử lý sự kiện lỗi tiếp nhận. |
Thuộc tính công cộng | |
---|---|
OnMessageReceived | Đại biểu chức năng xử lý sự kiện tiếp nhận thông báo của điểm cuối. |
OnReceiveError | Đại diện chức năng xử lý sự kiện lỗi nhận của điểm cuối. |
mState | enum nl::Inet::IPEndPointBasis::@8 Trạng thái động cơ bản của điểm cuối bên dưới. |
Thuộc tính được bảo vệ | |
---|---|
mBoundIntfId | InterfaceId |
Chức năng công cộng | |
---|---|
JoinMulticastGroup (InterfaceId aInterfaceId, const IPAddress & aAddress) | Tham gia 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) | Đặt xem lưu lượng IP multicast có được lặp lại hay không. |
Các chức năng đượ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) |
Chức năng tĩnh công khai | |
---|---|
FindNetifFromInterfaceId (InterfaceId aInterfaceId) | struct netif * |
Các chức năng tĩnh được bảo vệ | |
---|---|
GetPacketInfo ( Weave::System::PacketBuffer *buf) | Nhận thông tin địa chỉ nguồn và địa chỉ đích của lớp LwIP IP. |
Các loại công khai
@số 8
@8
Trạng thái động cơ bản của điểm cuối bên dưới.
Các đối tượng được khởi tạo ở trạng thái "sẵn sàng", chuyển sang trạng thái "bị ràng buộc" sau khi liên kết với một địa chỉ giao diện cục bộ, sau đó chuyển sang trạng thái "lắng nghe" khi chúng có đăng ký liên tục để xử lý các sự kiện nhận thông báo ICMP.
Lưu ý: Bảng liệt kê trạng thái kBasisState_Closed
được ánh xạ tới kState_Ready
vì lý do tương thích nhị phân lịch sử. Các hiện kState_Closed
tồn tại để xác định riêng rẽ sự phân biệt giữa "không mở được nêu ra" và "trước đây nay đã mở đóng cửa" đã tồn tại trước đó trong kState_Ready
và kState_Closed
tiểu bang.
@ 9
@9
OnMessageReceiveFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
Loại chức năng xử lý sự kiện tiếp nhận văn bản tin nhắn.
Cung cấp một chức năng thuộc loại này với OnMessageReceived
viên đại biểu để thông điệp quá trình sự kiện tiếp nhận văn bản trên endPoint
nơi msg
là nội dung tin nhắn nhận được từ người gửi tại senderAddr
.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
Loại chức năng xử lý sự kiện lỗi tiếp nhận.
Cung cấp một chức năng thuộc loại này cho thành viên ủy nhiệm OnReceiveError
để xử lý các sự kiện lỗi tiếp nhận trên endPoint
. Các err
luận cung cấp chi tiết cụ thể về loại lỗi.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
Thuộc tính công cộng
OnMessageReceive
OnMessageReceivedFunct OnMessageReceived
Đại biểu chức năng xử lý sự kiện tiếp nhận thông báo của điểm cuối.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
Đại diện chức năng xử lý sự kiện lỗi nhận của điểm cuối.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
Trạng thái động cơ bản của điểm cuối bên dưới.
Các đối tượng được khởi tạo ở trạng thái "sẵn sàng", chuyển sang trạng thái "bị ràng buộc" sau khi liên kết với một địa chỉ giao diện cục bộ, sau đó chuyển sang trạng thái "lắng nghe" khi chúng có đăng ký liên tục để xử lý các sự kiện nhận thông báo ICMP.
Lưu ý: Bảng liệt kê trạng thái kBasisState_Closed
được ánh xạ tới kState_Ready
vì lý do tương thích nhị phân lịch sử. Các hiện kState_Closed
tồn tại để xác định riêng rẽ sự phân biệt giữa "không mở được nêu ra" và "trước đây nay đã mở đóng cửa" đã tồn tại trước đó trong kState_Ready
và kState_Closed
tiểu bang.
Thuộc tính được bảo vệ
mBoundIntfId
InterfaceId mBoundIntfId
Chức năng công cộng
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Tham gia nhóm phát đa hướng IP.
Tham gia điểm cuối vào nhóm phát đa hướng được cung cấp trên giao diện được chỉ định.
Chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Thông số |
| ||||||||
Giá trị trả lại |
|
Rời khỏiMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Rời khỏi một nhóm phát đa hướng IP.
Xóa điểm cuối khỏi nhóm phát đa hướng được cung cấp trên giao diện được chỉ định.
Chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Thông số |
| ||||||||
Giá trị trả lại |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Đặt xem có nên lặp lại lưu lượng IP multicast hay không.
Đặt xem có nên lặp lại lưu lượng IP multicast trở lại điểm cuối này hay không.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
| ||||
Giá trị trả lại |
|
Các chức năng được bảo vệ
Trói buộc
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 )
Xử lý dữ liệu được nhận
void HandleDataReceived( Weave::System::PacketBuffer *aBuffer )
HandlePendingIO
void HandlePendingIO( uint16_t aPort )
Trong đó
void Init( InetLayer *aInetLayer )
Chuẩn bị
SocketEvents PrepareIO( void )
SendMsg
INET_ERROR SendMsg( const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags )
Chức năng tĩnh công khai
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
Các chức năng tĩnh được bảo vệ
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
Nhận thông tin địa chỉ nguồn và địa chỉ đích của lớp LwIP IP.
Khi sử dụng LwIP thông tin về gói được 'ẩn' trong không gian dành riêng trước khi bắt đầu dữ liệu trong bộ đệ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 sử dụng để truyền con trỏ đến điểm cuối và con trỏ tới bộ đệm.
Chi tiết | |||
---|---|---|---|
Thông số |
| ||
Lợi nhuận | một con trỏ đến thông tin địa chỉ về thành công; ngược lại, NULL nếu không có đủ dung lượ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 trước khi dữ liệu hoạt động vì bộ đệm đầu tiên trong thông báo IP LwIP chứa không gian được sử dụng cho các 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ể không có đủ chỗ để lưu cấu trúc cùng với trọng tải trong một bộ đệm gói duy nhất. Trong thực tế, điều này chỉ xảy ra đối với các gói IPv4 cực lớn đến mà không có tiêu đề Ethernet.