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:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Tipos públicos |
|
---|---|
@8{
|
tipo enumerado Estado dinâmico básico do endpoint subjacente. |
@9{
|
tipo enumerado Transmite as sinalizações 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 de eventos de recepção de texto da 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 recepção de mensagem do endpoint.
|
OnReceiveError
|
Os endpoints recebem a função de manipulação dos eventos de erro.
|
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)
|
Participar de um grupo de multicast de IP.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Saia de um grupo de multicast de IP.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Define se o tráfego multicast de IP deve 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)
|
Consiga informações sobre a origem e o endereçamento 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 "quot;ready", seguem para o estado "bound" após a vinculação com um endereço de interface local, e avançam para o estado "listening&; quando eles têm continuaçãos registradas para processar eventos de recepção de mensagens ICMP.
Observação: a enumeração de estado kBasisState_Closed
é mapeada para kState_Ready
por um motivo histórico de compatibilidade binária. O kState_Closed
já existe para identificar separadamente a distinção entre "não aberto ainda" e "aberto anteriormente" agora fechado e 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
Transmite as sinalizações de opção para o método SendMsg
.
Propriedades | |
---|---|
kSendFlag_RetainBuffer
|
Não adicione a mensagem 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 de eventos de recepção de texto da mensagem.
Forneça uma função desse tipo ao membro delegado da OnMessageReceived
para processar eventos de recepção de texto de mensagens em endPoint
, em que msg
é o texto da mensagem recebida 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 de erro.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Atributos públicos
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
O delegado da função de processamento de recepção de mensagem do endpoint.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
Os endpoints recebem a função de manipulação dos eventos de erro.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
Estado dinâmico básico do endpoint subjacente.
Os objetos são inicializados no estado "quot;ready", seguem para o estado "bound" após a vinculação com um endereço de interface local, e avançam para o estado "listening&; quando eles têm continuaçãos registradas para processar eventos de recepção de mensagens ICMP.
Observação: a enumeração de estado kBasisState_Closed
é mapeada para kState_Ready
por um motivo histórico de compatibilidade binária. O kState_Closed
já existe para identificar separadamente a distinção entre "não aberto ainda" e "aberto anteriormente" agora fechado e 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 )
Participar de um grupo de multicast de IP.
Juntar o endpoint ao grupo de multicast fornecido na interface especificada.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
Deixar várioscastcast
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Saia de um grupo de 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 )
Define se o tráfego multicast de IP deve ser retornado.
Define se o tráfego multicast de IP deve ou não ser retornado a 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 )
Soquete
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 )
Enviar mensagem
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 )
Consiga informações sobre a origem e o endereçamento da camada IP do LwIP.
Ao usar informações do LwIP sobre o pacote, eles ficam no espaço reservado antes do início dos dados no buffer do pacote. Isso é necessário porque os eventos da camada do sistema têm apenas dois argumentos, que, neste caso, são usados para transmitir o ponteiro para o ponto final e para o buffer.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
um ponteiro para as informações de endereço em caso de sucesso; caso contrário, será NULL se não houver espaço suficiente no pacote para as informações de endereço.
|
Na maioria dos casos, esse truque é armazenar informações antes que os dados funcionem, porque o primeiro buffer em uma mensagem de IP LwIP contém o espaço 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 para pacotes IPv4 extremamente grandes que chegam sem um cabeçalho Ethernet.