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é
Héritage
Hérite de: nl::Inet::EndPointBasisSous-classes directes connues:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
Types publics |
|
---|---|
@8{
|
enum État dynamique de base du point de terminaison sous-jacent. |
@9{
|
enum Transmettre les indicateurs d'option 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 du texte du 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 des messages du point de terminaison.
|
OnReceiveError
|
Délégué de la fonction de gestion des événements d'erreur 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)
|
Quitter un groupe de multidiffusion IP
|
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
|
Définissez 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)
|
Obtenez des informations sur l'adressage de la source et de la 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 à l'état "prêt", passent à l'état "lié" après la liaison à une adresse d'interface locale, puis passent à l'état "écoute" lorsqu'ils ont enregistré des continuations pour gérer les événements de réception des messages ICMP.
Remarque:L'énumération de l'état kBasisState_Closed
est mappée sur kState_Ready
pour des raisons de compatibilité binaire historique. Le kState_Closed
existant permet d'identifier séparément la distinction entre "pas encore ouvert" et "précédemment ouvert maintenant fermé" qui existait auparavant dans les états kState_Ready
et kState_Closed
.
Propriétés | |
---|---|
kState_Bound
|
Le point de terminaison est lié, mais n'écoute pas. |
kState_Closed
|
Point de terminaison fermé, prêt pour la publication. |
kState_Listening
|
Point de terminaison recevant des datagrammes. |
kState_Ready
|
Point de terminaison initialisé, mais pas ouvert. |
@9
@9
Transmettre les indicateurs d'option pour la méthode SendMsg
.
Propriétés | |
---|---|
kSendFlag_RetainBuffer
|
Ne mettez pas le message directement 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 du texte du message.
Fournissez une fonction de ce type au membre délégué OnMessageReceived
pour traiter les événements de réception de texte des messages sur endPoint
, où msg
est le texte du message reçu de l'expéditeur à l'adresse 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 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 fonction de gestion des événements de réception des messages du point de terminaison.
OnReceiveError
OnReceiveErrorFunct OnReceiveError
Délégué de la fonction de gestion des événements d'erreur 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 à l'état "prêt", passent à l'état "lié" après la liaison à une adresse d'interface locale, puis passent à l'état "écoute" lorsqu'ils ont enregistré des continuations pour gérer les événements de réception des messages ICMP.
Remarque:L'énumération de l'état kBasisState_Closed
est mappée sur kState_Ready
pour des raisons de compatibilité binaire historique. Le kState_Closed
existant permet d'identifier séparément la distinction entre "pas encore ouvert" et "précédemment ouvert maintenant 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.
Joignez le point de terminaison au groupe de multidiffusion fourni sur l'interface spécifiée.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Valeurs de retour |
|
LeaveMulticastGroup
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 de retour |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
Définissez 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 de retour |
|
Fonctions protégées
Bind
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 )
Obtenez des informations sur l'adressage de la source et de la destination de la couche IP LwIP.
Lorsque vous utilisez LwIP, les informations du paquet sont "masquées" dans l'espace réservé avant le début des données dans le tampon de paquets. Cette valeur est nécessaire, car les événements de la couche système ne comportent que deux arguments, qui, dans ce cas, sont 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 vers les informations d'adresse en cas de réussite ; sinon, la valeur NULL est renvoyée si l'espace dans le paquet est insuffisant pour les informations d'adresse.
|
Dans la plupart des cas, cette astuce consistant à stocker des informations avant que les données ne fonctionne, car le premier tampon d'un message IP LwIP contient l'espace utilisé pour les en-têtes Ethernet/IP/UDP. Toutefois, é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 et la charge utile dans un seul tampon de paquets. En pratique, cela ne devrait se produire que pour les paquets IPv4 extrêmement volumineux qui arrivent sans en-tête Ethernet.