nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
Os objetos desta classe representam endpoints de protocolo IP não instanciáveis.
Resumo
Herança
Herda de: nl::Inet::EndPointBasisSubclasses conhecidas diretas:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Tipos públicos |
|
---|---|
@8{
|
enum Estado dinâmico básico do endpoint subjacente. |
@9{
|
enum Transmitir flags de opção para o método SendMsg . |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Tipo de função de manipulação do evento de recepção de texto de mensagem. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Tipo de função de tratamento de eventos de erro de recepção. |
Atributos públicos |
|
---|---|
OnMessageReceived
|
Delegado da função de manipulação de eventos de recepção de mensagens do endpoint.
|
OnReceiveError
|
O delegado da função de manipulação de eventos de erro de recebimento do endpoint.
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
Estado dinâmico básico do endpoint subjacente.
|
Atributos protegidos |
|
---|---|
mBoundIntfId
|
InterfaceId
|
Funções públicas |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Participe de um grupo de multicast de IP.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Sair de um grupo multicast de IP.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Defina se o tráfego multicast IP precisa ser retornado.
|
Funções protegidas |
|
---|---|
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)
|
Funções estáticas públicas |
|
---|---|
FindNetifFromInterfaceId(InterfaceId aInterfaceId)
|
struct netif *
|
Funções estáticas protegidas |
|
---|---|
GetPacketInfo(Weave::System::PacketBuffer *buf)
|
Recebe informações de endereçamento de origem e destino da camada IP do LwIP.
|
Tipos públicos
@8
@8
Estado dinâmico básico do endpoint subjacente.
Os objetos são inicializados no estado "pronto" estado, vá até o "limite" após a vinculação a um endereço de interface local e, em seguida, passe para a etapa estado quando têm continuações registradas para lidar com eventos para recebimento de mensagens ICMP.
Observação:a enumeração do estado kBasisState_Closed
é mapeada para kState_Ready
por motivos históricos de compatibilidade binária. O kState_Closed
existe para identificar separadamente a distinção entre "ainda não aberto". e "anteriormente abertos
fechado agora" que existiam anteriormente nos estados kState_Ready
e kState_Closed
.
Propriedades | |
---|---|
kState_Bound
|
Endpoint vinculado, mas sem escutando. |
kState_Closed
|
Endpoint fechado, pronto para lançamento. |
kState_Listening
|
Endpoint que recebe datagramas. |
kState_Ready
|
O endpoint foi inicializado, mas não abriu. |
@9
@9
Transmitir flags de opção para o método SendMsg
.
Propriedades | |
---|---|
kSendFlag_RetainBuffer
|
Não coloque a mensagem em fila de forma destrutiva diretamente. Coloque uma cópia na fila. |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
Tipo de função de manipulação do evento de recepção de texto de mensagem.
Forneça uma função desse tipo ao membro delegado do OnMessageReceived
para processar eventos de recepção de texto de mensagem em endPoint
, em que msg
é o texto da mensagem recebido do remetente em senderAddr
.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
Tipo de função de tratamento de eventos de erro de recepção.
Forneça uma função desse tipo ao membro delegado OnReceiveError
para processar eventos de erro de recepção no endPoint
. O argumento err
fornece detalhes específicos sobre o tipo do erro.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Atributos públicos
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
Delegado da função de manipulação de eventos de recepção de mensagens do endpoint.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
O delegado da função de manipulação de eventos de erro de recebimento do endpoint.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
Estado dinâmico básico do endpoint subjacente.
Os objetos são inicializados no estado "pronto" estado, vá até o "limite" após a vinculação a um endereço de interface local e, em seguida, passe para a etapa estado quando têm continuações registradas para lidar com eventos para recebimento de mensagens ICMP.
Observação:a enumeração do estado kBasisState_Closed
é mapeada para kState_Ready
por motivos históricos de compatibilidade binária. O kState_Closed
existe para identificar separadamente a distinção entre "ainda não aberto". e "anteriormente abertos
fechado agora" que existiam anteriormente nos estados kState_Ready
e kState_Closed
.
Atributos protegidos
mBoundIntfId
InterfaceId mBoundIntfId
Funções públicas
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Participe de um grupo de multicast de IP.
Associe o endpoint ao grupo multicast fornecido na interface especificada.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Sair de um grupo multicast de IP.
Remove o endpoint do grupo multicast fornecido na interface especificada.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Defina se o tráfego multicast IP precisa ser retornado.
Defina se o tráfego multicast IP precisa ser retornado ou não para esse endpoint.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
Funções protegidas
Vincular
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 )
Funções estáticas públicas
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
Funções estáticas protegidas
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
Recebe informações de endereçamento de origem e destino da camada IP do LwIP.
Quando o LwIP é usado, as informações sobre o pacote ficam "ocultas" no espaço reservado antes do início dos dados no buffer de pacote. Isso é necessário porque os eventos da camada do sistema têm apenas dois argumentos, que, nesse caso, são usados para transmitir o ponteiro para o ponto final e o ponteiro para o buffer.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retornos |
um ponteiro para as informações de endereço em caso de sucesso; Caso contrário, NULL se não houver espaço suficiente no pacote para as informações de endereço.
|
Na maioria dos casos, esse truque de armazenar informações antes de os dados funcionar porque o primeiro buffer em uma mensagem IP LwIP contém o espaço que foi usado para os cabeçalhos Ethernet/IP/UDP. No entanto, devido ao tamanho atual da estrutura IPPacketInfo (40 bytes), é possível que não haja espaço suficiente para armazenar a estrutura com o payload em um único buffer de pacote. Na prática, isso só deve acontecer com pacotes IPv4 extremamente grandes que chegam sem um cabeçalho Ethernet.