nl: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
Les objets de cette classe représentent des points de terminaison de protocole IP non instanciables.
Résumé
Inheritance
Hérite de : nl:Inet::EndPointBasisDirect Subclasses :
nl:Inet::RawEndPoint
nl::In::UDPEndPoint)
Types publics |
|
---|---|
@8{
|
enum État dynamique de base du point de terminaison sous-jacent. |
@9{
|
enum Indicateurs d'option de transmission pour la méthode SendMsg |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
CANNOT TRANSLATEvoid(*
Type de fonction de gestion des événements de réception de SMS. |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
CANNOT TRANSLATEvoid(*
Type de fonction de gestion des événements d'erreur de réception. |
Attributs publics |
|
---|---|
OnMessageReceived
|
Délégué de la gestion des événements de réception des messages du point de terminaison.
|
OnReceiveError
|
Le délégué de la gestion des événements d'erreur reçoit le délégué 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)
|
Rejoindre un groupe de multicast IP
|
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
|
Quitter un groupe de multidiffusion IP.
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Définit si le trafic de multicast 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)
|
Récupérez les informations sur la source et la destination de la couche d'adresse IP LwIP.
|
Types publics
@8
@8
État dynamique de base du point de terminaison sous-jacent.
Les objets sont initialisés dans l'état &ready; passent à l'état & commencer par l'adresse locale, puis passer à l'état "liste pendant qu'ils ont été enregistrés pour gérer les événements à la réception des messages ICMP.
Remarque : L'énumération de l'état kBasisState_Closed
est mappée avec kState_Ready
pour des raisons de compatibilité binaire historiques. La balise kState_Closed
existante permet d'identifier séparément la distinction entre "non ouvert" et "précédemment fermé", qui existait auparavant dans les états kState_Ready
et kState_Closed
.
Properties | |
---|---|
kState_Bound
|
Le point de terminaison est lié, mais pas d'écoute. |
kState_Closed
|
Point de terminaison fermé. Prêt pour la publication. |
kState_Listening
|
Point de terminaison recevant des datagrammes. |
kState_Ready
|
Le point de terminaison a été initialisé, mais n'a pas été ouvert. |
@9
@9
Indicateurs d'option de transmission pour la méthode SendMsg
Properties | |
---|---|
kSendFlag_RetainBuffer
|
Ne mettez pas le message en file d'attente directement. 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 SMS.
Fournissez une fonction de ce type au délégué de OnMessageReceived
pour traiter les événements de réception de texte du message sur endPoint
, où msg
est le texte du message reçu de l'expéditeur à l'adresse senderAddr
.
Détails | |||||||
---|---|---|---|---|---|---|---|
Paramètres |
|
OnReceivedErrorFunct.
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
afin de traiter les événements d'erreur de réception sur endPoint
. L'argument err
fournit des détails spécifiques sur le type de l'erreur.
Détails | |||||
---|---|---|---|---|---|
Paramètres |
|
Attributs publics
OnMessageReceived
OnMessageReceivedFunct OnMessageReceived
Délégué de la gestion des événements de réception des messages du point de terminaison.
Erreur de réception
OnReceiveErrorFunct OnReceiveError
Le délégué de la gestion des événements d'erreur reçoit le délégué du point de terminaison.
état mobile
enum nl::Inet::IPEndPointBasis::@8 mState
État dynamique de base du point de terminaison sous-jacent.
Les objets sont initialisés dans l'état &ready; passent à l'état & commencer par l'adresse locale, puis passer à l'état "liste pendant qu'ils ont été enregistrés pour gérer les événements à la réception des messages ICMP.
Remarque : L'énumération de l'état kBasisState_Closed
est mappée avec kState_Ready
pour des raisons de compatibilité binaire historiques. La balise kState_Closed
existante permet d'identifier séparément la distinction entre "non ouvert" et "précédemment fermé", qui existait auparavant dans les états kState_Ready
et kState_Closed
.
Attributs protégés
mBoundIntfId
InterfaceId mBoundIntfId
Fonctions publiques
Rejoindre un groupe multicast
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Rejoindre un groupe de multicast IP
Associez le point de terminaison au groupe de multidiffusion fourni dans l'interface spécifiée.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs renvoyées |
|
Quitter MulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
Quitter 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 |
|
Définir MulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Définit si le trafic de multicast IP doit être renvoyé en boucle.
Indiquez si le trafic de multicast IP doit être renvoyé à 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 )
Gérer les données reçues
void HandleDataReceived( Weave::System::PacketBuffer *aBuffer )
Traitement en attente
void HandlePendingIO( uint16_t aPort )
Init
void Init( InetLayer *aInetLayer )
Préparation
SocketEvents PrepareIO( void )
Envoyer un SMS
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 (GetPacketInfo)
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
Récupérez les informations sur la source et la destination de la couche d'adresse IP LwIP.
Lorsque vous utilisez les informations LwIP sur le paquet, l'espace réservé est 'hidden' avant le début des données dans le tampon de paquets. Cette opération 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 de fin et le pointeur vers la mémoire tampon.
Détails | |||
---|---|---|---|
Paramètres |
|
||
Renvoie |
Un pointeur vers les informations d'adresse en cas de réussite. Sinon, prend la valeur NULL si l'espace dans le paquet est insuffisant pour saisir l'adresse.
|
Dans la plupart des cas, cette astuce pour stocker les informations avant que les données ne fonctionnent, car le premier tampon d'un message d'adresse IP LwIP contient l'espace utilisé pour les en-têtes Ethernet/IP/UDP. Cependant, étant donné 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 doit se produire que pour les paquets IPv4 extrêmement volumineux qui arrivent sans en-tête Ethernet.