нл:: Инет:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
Объекты этого класса представляют собой конечные точки протокола IP, которые не могут быть созданы.
Краткое содержание
Наследование
Наследуется от: nl::Inet::EndPointBasisПрямые известные подклассы:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Публичные типы | |
---|---|
@8 { | перечисление Базовое динамическое состояние базовой конечной точки. |
@9 { | перечисление Флаги опций передачи для метода SendMsg . |
OnMessageReceivedFunct )(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) | определение типаvoid(* Тип функции обработки события приема текста сообщения. |
OnReceiveErrorFunct )(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) | определение типаvoid(* Тип функции обработки событий ошибок приема. |
Публичные атрибуты | |
---|---|
OnMessageReceived | Делегат функции обработки события приема сообщения конечной точки. |
OnReceiveError | Делегат функции обработки событий ошибок получения конечной точки. |
mState | enum nl::Inet::IPEndPointBasis::@8 Базовое динамическое состояние базовой конечной точки. |
Защищенные атрибуты | |
---|---|
mBoundIntfId | InterfaceId |
Общественные функции | |
---|---|
JoinMulticastGroup (InterfaceId aInterfaceId, const IPAddress & aAddress) | Присоединяйтесь к группе многоадресной IP-рассылки. |
LeaveMulticastGroup (InterfaceId aInterfaceId, const IPAddress & aAddress) | Выйдите из группы многоадресной рассылки IP. |
SetMulticastLoopback (IPVersion aIPVersion, bool aLoopback) | Установите, следует ли зацикливать многоадресный IP-трафик. |
Защищенные функции | |
---|---|
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) |
Публичные статические функции | |
---|---|
FindNetifFromInterfaceId (InterfaceId aInterfaceId) | struct netif * |
Защищенные статические функции | |
---|---|
GetPacketInfo ( Weave::System::PacketBuffer *buf) | Получите информацию об адресации источника и места назначения уровня LwIP IP. |
Публичные типы
@8
@8
Базовое динамическое состояние базовой конечной точки.
Объекты инициализируются в состоянии «готовность», переходят в состояние «привязано» после привязки к адресу локального интерфейса, затем переходят в состояние «прослушивание», когда у них зарегистрированы продолжения для обработки событий приема ICMP-сообщений.
Примечание. Перечисление состояний kBasisState_Closed
сопоставлено с kState_Ready
по историческим причинам двоичной совместимости. Существующий kState_Closed
существует для отдельного определения различия между «еще не открыто» и «ранее открыто, теперь закрыто», которое существовало ранее в состояниях kState_Ready
и kState_Closed
.
@9
@9
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
Тип функции обработки события приема текста сообщения.
Предоставьте функцию этого типа члену делегата OnMessageReceived
для обработки событий приема текста сообщения в endPoint
, где msg
— это текст сообщения, полученный от отправителя в senderAddr
.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Параметры |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
Тип функции обработки событий ошибок приема.
Предоставьте функцию этого типа члену делегата OnReceiveError
для обработки событий ошибок приема на endPoint
. Аргумент err
предоставляет конкретную информацию о типе ошибки.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
|
Публичные атрибуты
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
Делегат функции обработки события приема сообщения конечной точки.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
Делегат функции обработки событий ошибок получения конечной точки.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
Базовое динамическое состояние базовой конечной точки.
Объекты инициализируются в состоянии «готовность», переходят в состояние «привязано» после привязки к адресу локального интерфейса, затем переходят в состояние «прослушивание», когда у них зарегистрированы продолжения для обработки событий приема ICMP-сообщений.
Примечание. Перечисление состояний kBasisState_Closed
сопоставлено с kState_Ready
по историческим причинам двоичной совместимости. Существующий kState_Closed
существует для отдельного определения различия между «еще не открыто» и «ранее открыто, теперь закрыто», которое существовало ранее в состояниях kState_Ready
и kState_Closed
.
Защищенные атрибуты
mBoundIntfId
InterfaceId mBoundIntfId
Общественные функции
Присоединиться к многоадресной группе
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Присоединяйтесь к группе многоадресной IP-рассылки.
Присоедините конечную точку к предоставленной группе многоадресной рассылки на указанном интерфейсе.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возвращаемые значения |
|
Выход из многоадресной группы
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Выйдите из группы многоадресной рассылки IP.
Удалите конечную точку из предоставленной группы многоадресной рассылки на указанном интерфейсе.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возвращаемые значения |
|
Установить многоадресную петлю
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Установите, следует ли зацикливать многоадресный IP-трафик.
Установите, должен ли многоадресный IP-трафик возвращаться к этой конечной точке.
Подробности | |||||
---|---|---|---|---|---|
Параметры |
| ||||
Возвращаемые значения |
|
Защищенные функции
Связывать
INET_ERROR Bind( IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId )
BindИнтерфейс
INET_ERROR BindInterface( IPAddressType aAddressType, InterfaceId aInterfaceId )
GetSocket
INET_ERROR GetSocket( IPAddressType aAddressType, int aType, int aProtocol )
Обработка данныхполученных
void HandleDataReceived( Weave::System::PacketBuffer *aBuffer )
HandlePendingIO
void HandlePendingIO( uint16_t aPort )
Инициализировать
void Init( InetLayer *aInetLayer )
ПодготовитьIO
SocketEvents PrepareIO( void )
ОтправитьСообщение
INET_ERROR SendMsg( const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags )
Публичные статические функции
НайтиNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
Защищенные статические функции
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
Получите информацию об адресации источника и места назначения уровня LwIP IP.
При использовании LwIP информация о пакете «скрывается» в зарезервированном пространстве перед началом данных в буфере пакета. Это необходимо, поскольку события системного уровня имеют только два аргумента, которые в данном случае используются для передачи указателя на конечную точку и указателя на буфер.
Подробности | |||
---|---|---|---|
Параметры |
| ||
Возврат | указатель на адрес, информация об успехе; в противном случае — NULL, если в пакете недостаточно места для информации об адресе. |
В большинстве случаев этот трюк с сохранением информации до передачи данных работает, поскольку первый буфер в IP-сообщении LwIP содержит пространство, которое использовалось для заголовков Ethernet/IP/UDP. Однако, учитывая текущий размер структуры IPPacketInfo (40 байт), возможно, не хватит места для хранения структуры вместе с полезной нагрузкой в одном буфере пакетов. На практике это должно происходить только для очень больших пакетов IPv4, которые приходят без заголовка Ethernet.