nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
Les objets de cette classe représentent des points de terminaison de protocoles IP non instanciables.
Résumé
Héritage
Hérite de: nl::Inet::EndPointBasisSous-classes directes connues:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Types publics |
|
---|---|
@8{
|
énum État dynamique de base du point de terminaison sous-jacent. |
@9{
|
énum Options de transmission pour la méthode SendMsg . |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Type de fonction de gestion des événements de réception de texte de message. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
Type de fonction de gestion des événements d'erreur de réception. |
Attributs publics |
|
---|---|
OnMessageReceived
|
Délégué de la fonction de gestion des événements de réception de messages du point de terminaison.
|
OnReceiveError
|
Délégué de la fonction de gestion des événements de réception du point de terminaison.
|
mState
|
enum nl::Inet::IPEndPointBasis::@8
État dynamique de base du point de terminaison sous-jacent.
|
Attributs protégés |
|
---|---|
mBoundIntfId
|
InterfaceId
|
Fonctions publiques |
|
---|---|
JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Rejoignez un groupe de multidiffusion IP.
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Quittez un groupe de multidiffusion IP.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Déterminez si le trafic de multidiffusion IP doit être renvoyé en boucle.
|
Fonctions protégées |
|
---|---|
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)
|
Fonctions statiques publiques |
|
---|---|
FindNetifFromInterfaceId(InterfaceId aInterfaceId)
|
struct netif *
|
Fonctions statiques protégées |
|
---|---|
GetPacketInfo(Weave::System::PacketBuffer *buf)
|
Obtenir des informations sur l'adressage source et de destination de la couche IP LwIP
|
Types publics
@8
@8
État dynamique de base du point de terminaison sous-jacent.
Les objets sont initialisés dans l'état accédez à la section "Relié" l'état après la liaison à une adresse d'interface locale, puis passez à la lorsque des continuations sont enregistrées pour gérer les événements de réception de messages ICMP.
Remarque:L'énumération d'état kBasisState_Closed
est mappée à kState_Ready
pour des raisons historiques de compatibilité binaire. Le kState_Closed
existant permet d'identifier séparément la distinction entre "pas encore ouvert" et « précédemment ouvert
désormais fermé" qui existait auparavant dans les états kState_Ready
et kState_Closed
.
Propriétés | |
---|---|
kState_Bound
|
Limité au point de terminaison, mais sans écoute. |
kState_Closed
|
Point de terminaison fermé, prêt à être publié. |
kState_Listening
|
Point de terminaison recevant des datagrammes. |
kState_Ready
|
Le point de terminaison a bien été initialisé, mais n'est pas ouvert. |
@9
@9
Options de transmission pour la méthode SendMsg
.
Propriétés | |
---|---|
kSendFlag_RetainBuffer
|
Ne mettez pas directement le message en file d'attente de manière destructive. Mettez une copie en file d'attente. |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
Type de fonction de gestion des événements de réception de texte de message.
Fournissez une fonction de ce type au membre délégué OnMessageReceived
pour traiter les événements de réception de texte de message sur endPoint
, où msg
est le texte de message reçu de l'expéditeur à senderAddr
.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
Type de fonction de gestion des événements d'erreur de réception.
Fournissez une fonction de ce type au membre délégué OnReceiveError
pour qu'il traite les événements d'erreur de réception sur endPoint
. L'argument err
fournit des détails spécifiques sur le type d'erreur.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
Attributs publics
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
Délégué de la fonction de gestion des événements de réception de messages du point de terminaison.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
Délégué de la fonction de gestion des événements de réception du point de terminaison.
mState
enum nl::Inet::IPEndPointBasis::@8 mState
État dynamique de base du point de terminaison sous-jacent.
Les objets sont initialisés dans l'état accédez à la section "Relié" l'état après la liaison à une adresse d'interface locale, puis passez à la lorsque des continuations sont enregistrées pour gérer les événements de réception de messages ICMP.
Remarque:L'énumération d'état kBasisState_Closed
est mappée à kState_Ready
pour des raisons historiques de compatibilité binaire. Le kState_Closed
existant permet d'identifier séparément la distinction entre "pas encore ouvert" et « précédemment ouvert
désormais fermé" qui existait auparavant dans les états kState_Ready
et kState_Closed
.
Attributs protégés
mBoundIntfId
InterfaceId mBoundIntfId
Fonctions publiques
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Rejoignez un groupe de multidiffusion IP.
Associez le point de terminaison au groupe de multidiffusion fourni sur l'interface spécifiée.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs renvoyées |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Quittez un groupe de multidiffusion IP.
Supprimez le point de terminaison du groupe de multidiffusion fourni sur l'interface spécifiée.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs renvoyées |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Déterminez si le trafic de multidiffusion IP doit être renvoyé en boucle.
Indiquez si le trafic de multidiffusion IP doit être renvoyé en boucle vers ce point de terminaison.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
||||
Valeurs renvoyées |
|
Fonctions protégées
Lier
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 )
Fonctions statiques publiques
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
Fonctions statiques protégées
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
Obtenir des informations sur l'adressage source et de destination de la couche IP LwIP
Lorsque les informations LwIP concernant le paquet sont "masquées" dans l'espace réservé avant le début des données du tampon de paquets. Cela est nécessaire, car les événements de la couche système ne comportent que deux arguments, qui sont ici utilisés pour transmettre le pointeur vers le point d'arrivée et le pointeur vers le tampon.
Détails | |||
---|---|---|---|
Paramètres |
|
||
Renvoie |
un pointeur sur l'adresse en cas de réussite ; sinon NULL si l'espace est insuffisant dans le paquet pour les informations d'adresse.
|
Dans la plupart des cas, cette astuce consiste à stocker des informations avant que les données fonctionnent, car le premier tampon d'un message IP LwIP contient l'espace utilisé pour les en-têtes Ethernet/IP/UDP. Cependant, compte tenu de la taille actuelle de la structure IPPacketInfo (40 octets), il est possible qu'il n'y ait pas assez d'espace pour stocker la structure avec la charge utile dans un seul tampon de paquet. En pratique, cela ne devrait se produire que pour les paquets IPv4 extrêmement volumineux qui arrivent sans en-tête Ethernet.