nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
Os objetos dessa classe representam endpoints do 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 manipulação de eventos de erro de recepção. |
Atributos públicos |
|
---|---|
OnMessageReceived
|
O delegado da função de processamento de eventos de recepção de mensagens do endpoint.
|
OnReceiveError
|
O delegado da função de processamento de eventos de erro do endpoint recebe.
|
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 IPs.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Sair de um grupo multicast de IP.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Define se o tráfego multicast IP será repetido.
|
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 de IP LwIP.
|
Tipos públicos
@8
@8
Estado dinâmico básico do endpoint subjacente.
Os objetos são inicializados no estado "ready", prosseguem para o estado "vinculado" após a vinculação a um endereço de interface local e, em seguida, prosseguem para o estado "listener" quando tiverem continuações registradas para manipular eventos de recebimento de mensagens ICMP.
Observação:a enumeração de estado kBasisState_Closed
é mapeada para kState_Ready
por motivos históricos de compatibilidade binária. O kState_Closed
existente existe para identificar separadamente a distinção entre "ainda não aberto" e "aberto anteriormente, agora fechado", que existia anteriormente nos estados kState_Ready
e kState_Closed
.
Propriedades | |
---|---|
kState_Bound
|
Endpoint vinculado, mas sem detecção. |
kState_Closed
|
Endpoint fechado, pronto para lançamento. |
kState_Listening
|
Endpoint que recebe datagramas. |
kState_Ready
|
O endpoint foi inicializado, mas não está aberto. |
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. 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 OnMessageReceived
para processar eventos de recebimento de texto de mensagem no 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 manipulação 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 em endPoint
. O argumento err
fornece detalhes específicos sobre o tipo do erro.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Atributos públicos
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
O delegado da função de processamento de eventos de recepção de mensagens do endpoint.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
O delegado da função de processamento de eventos de erro do endpoint recebe.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
Estado dinâmico básico do endpoint subjacente.
Os objetos são inicializados no estado "ready", prosseguem para o estado "vinculado" após a vinculação a um endereço de interface local e, em seguida, prosseguem para o estado "listener" quando tiverem continuações registradas para manipular eventos de recebimento de mensagens ICMP.
Observação:a enumeração de estado kBasisState_Closed
é mapeada para kState_Ready
por motivos históricos de compatibilidade binária. O kState_Closed
existente existe para identificar separadamente a distinção entre "ainda não aberto" e "aberto anteriormente, agora fechado", que existia 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 IPs.
Participe do endpoint do grupo de 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.
Remova o endpoint do grupo de multicast fornecido na interface especificada.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Define se o tráfego multicast IP será repetido.
Defina se o tráfego multicast IP deve 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 de IP LwIP.
Ao usar informações de LwIP sobre o pacote, ele fica "oculto" 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 |
|
||
Retorna |
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 dos dados funciona porque o primeiro buffer em uma mensagem IP LwIP contém o espaço usado para os cabeçalhos Ethernet/IP/UDP. No entanto, dado o 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ó acontece com pacotes IPv4 muito grandes que chegam sem um cabeçalho Ethernet.