nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

Bu sınıfın nesneleri, başlatılamayan IP protokolü uç noktalarını temsil eder.

Özet

Devralma

Devralındığı kaynak: nl::Inet::EndPointBasis
Doğrudan Bilinen Alt Sınıflar:
  nl::Inet::RawEndPoint
  nl::Inet::UDPEndPoint

Herkese açık türler

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum
Temel uç noktanın temel dinamik durumu.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum
SendMsg yöntemi için iletim seçeneği işaretleri.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
Mesaj metni alma olay işleme işlevinin türü.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Resepsiyon hatası olayı işleme işlevinin türü.

Herkese açık özellikler

OnMessageReceived
Uç noktanın mesaj alma etkinlik işleme işlevi temsilcisi.
OnReceiveError
Uç noktanın hata etkinliği işleme işlevi temsilcisi.
mState
enum nl::Inet::IPEndPointBasis::@8
Temel uç noktanın temel dinamik durumu.

Korunan özellikler

mBoundIntfId
InterfaceId

Kamu işlevleri

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Bir IP çoklu yayın grubuna katılın.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Bir IP çoklu yayın grubundan ayrılın.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
IP çoklu yayın trafiğinin tekrar döngüye alınıp alınmayacağını ayarlayın.

Korunan işlevler

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)

Herkese açık statik işlevler

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

Korunan statik işlevler

GetPacketInfo(Weave::System::PacketBuffer *buf)
LwIP IP katmanı kaynak ve hedef adres bilgilerini alma.

Herkese açık türler

@8

 @8

Temel uç noktanın temel dinamik durumu.

Nesneler "hazır" durumunda başlatılır, yerel arayüz adresine bağlandıktan sonra "bağlı" durumuna ve ardından ICMP mesajlarının alınması için etkinlikleri işlemek üzere kaydedilen devamlar olduğunda "dinleniyor" durumuna geçin.

Not: kBasisState_Closed durum sıralaması, geçmişe dönük ikili uyumluluk nedenleri için kState_Ready ile eşlenir. Mevcut kState_Closed, daha önce kState_Ready ve kState_Closed eyaletlerinde bulunan "henüz açılmadı" ve "daha önce açılmış olan şu anda kapalı" durumları arasındaki ayrımı ayrı olarak tanımlamaktadır.

Özellikler
kState_Bound

Uç nokta bağlandı ancak dinlemiyor.

kState_Closed

Uç nokta kapatıldı, yayınlanmaya hazır.

kState_Listening

Veri kümelerini alan uç nokta.

kState_Ready

Uç nokta başlatıldı, ancak açık değil.

@9

 @9

SendMsg yöntemi için iletim seçeneği işaretleri.

Özellikler
kSendFlag_RetainBuffer

İletileri yıkıcı bir şekilde doğrudan sıraya koymayın.

Bir kopyayı sıraya ekleyin.

OnMessageReceivedFunct

void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)

Mesaj metni alma olay işleme işlevinin türü.

endPoint ürününde ileti metni alma etkinliklerini işlemesi için OnMessageReceived yetki verilmiş üyeye bu tür bir işlev sağlayın. Burada msg, senderAddr adresine gönderenden alınan ileti metnidir.

Ayrıntılar
Parametreler
[in] endPoint
Etkinlikle ilişkilendirilen uç nokta.
[in] msg
İleti metni alındı.
[in] senderAddr
Gönderenin IP adresi.

OnReceiveErrorFunct

void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)

Resepsiyon hatası olayı işleme işlevinin türü.

endPoint üzerinde alma hatası etkinliklerini işlemesi için OnReceiveError yetki verilmiş üyesine bu tür bir işlev sağlayın. err bağımsız değişkeni, hatanın türüyle ilgili belirli ayrıntıları sağlar.

Ayrıntılar
Parametreler
[in] endPoint
Etkinlikle ilişkilendirilen uç nokta.
[in] err
Hatanın nedeni.

Herkese açık özellikler

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

Uç noktanın mesaj alma etkinlik işleme işlevi temsilcisi.

OnReceiveError

OnReceiveErrorFunct OnReceiveError

Uç noktanın hata etkinliği işleme işlevi temsilcisi.

mState

enum nl::Inet::IPEndPointBasis::@8 mState

Temel uç noktanın temel dinamik durumu.

Nesneler "hazır" durumunda başlatılır, yerel arayüz adresine bağlandıktan sonra "bağlı" durumuna ve ardından ICMP mesajlarının alınması için etkinlikleri işlemek üzere kaydedilen devamlar olduğunda "dinleniyor" durumuna geçin.

Not: kBasisState_Closed durum sıralaması, geçmişe dönük ikili uyumluluk nedenleri için kState_Ready ile eşlenir. Mevcut kState_Closed, daha önce kState_Ready ve kState_Closed eyaletlerinde bulunan "henüz açılmadı" ve "daha önce açılmış olan şu anda kapalı" durumları arasındaki ayrımı ayrı olarak tanımlamaktadır.

Korunan özellikler

mBoundIntfId

InterfaceId mBoundIntfId

Kamu işlevleri

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Bir IP çoklu yayın grubuna katılın.

Uç noktayı, belirtilen arayüzde sağlanan çoklu yayın grubuna ekleyin.

Ayrıntılar
Parametreler
[in] aInterfaceId
Çoklu yayın grubuna eklenecek ağ arayüzü göstergesi
[in] aAddress
arayüzün ekleneceği çoklu yayın grubunu
Döndürülen Değerler
INET_NO_ERROR
başarı: çoklu yayın grubu kaldırıldı
INET_ERROR_UNKNOWN_INTERFACE
bilinmeyen ağ arayüzü, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress, kIPAddressType_IPv4 veya kIPAddressType_IPv6 değil ya da çoklu yayın değil
other
başka bir sistem veya platform hatası

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Bir IP çoklu yayın grubundan ayrılın.

Uç noktayı, belirtilen arayüzde sağlanan çoklu yayın grubundan kaldırın.

Ayrıntılar
Parametreler
[in] aInterfaceId
Çoklu yayın grubundan kaldırılacak ağ arayüzünün göstergesi
[in] aAddress
arayüzün kaldırılacak çoklu yayın grubunu,
Döndürülen Değerler
INET_NO_ERROR
başarı: çoklu yayın grubu kaldırıldı
INET_ERROR_UNKNOWN_INTERFACE
bilinmeyen ağ arayüzü, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress, kIPAddressType_IPv4 veya kIPAddressType_IPv6 değil ya da çoklu yayın değil
other
başka bir sistem veya platform hatası

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

IP çoklu yayın trafiğinin tekrar döngüye alınıp alınmayacağını ayarlayın.

IP çoklu yayın trafiğinin bu uç noktaya geri döndürülüp döndürülmeyeceğini ayarlayın.

Ayrıntılar
Parametreler
[in] aIPVersion
[in] aLoop
Döndürülen Değerler
INET_NO_ERROR
başarıya: çoklu yayın geri döngü davranışı ayarlandı
other
başka bir sistem veya platform hatası

Korunan işlevler

Bağla

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
)

Başlat

void Init(
  InetLayer *aInetLayer
)

PrepareIO

SocketEvents PrepareIO(
  void
)

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *aPktInfo,
  Weave::System::PacketBuffer *aBuffer,
  uint16_t aSendFlags
)

Herkese açık statik işlevler

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

Korunan statik işlevler

GetPacketInfo

IPPacketInfo * GetPacketInfo(
  Weave::System::PacketBuffer *buf
)

LwIP IP katmanı kaynak ve hedef adres bilgilerini alma.

Paketle ilgili LwIP kullanılırken, paket arabelleğindeki verilerin başlangıcından önce ayrılan alanda "gizli" olur. Sistem katmanı etkinliklerinde yalnızca iki bağımsız değişken olduğundan bu gereklidir. Bu durumda, işaretçi bitiş noktasına ve işaretçiyi arabelleğe aktarmak için bu bağımsız değişken kullanılır.

Ayrıntılar
Parametreler
[in] aBuffer
IP mesajını içeren paket arabelleği
İadeler
işlemin başarılı olduğunu belirten bir işaretçidir. Aksi takdirde, pakette adres bilgileri için yeterli alan yoksa NULL değerine ayarlar.

Çoğu durumda, bir LwIP IP mesajındaki ilk arabellek Ethernet/IP/UDP üstbilgileri için kullanılan alanı içerdiğinden, verilerden önce bilgileri depolama hilesi işe yarar. Bununla birlikte, IPPacketInfo yapısının mevcut boyutu (40 bayt) göz önünde bulundurulduğunda, yapıyı yük ile birlikte tek bir paket arabelleğinde depolamak için yeterli alan olmayabilir. Pratikte bu, yalnızca Ethernet başlığı olmadan gelen çok büyük IPv4 paketleri için geçerlidir.