Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

Objek class ini mewakili endpoint protokol IP yang tidak dapat dibuat instance.

Ringkasan

Warisan

Mewarisi dari: nl::Inet::EndPointBasis
Subclass Langsung yang Diketahui:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint

Jenis publik

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
enum
Status dinamis dasar endpoint yang mendasarinya.
@9{
  kSendFlag_RetainBuffer = 0x0040
}
enum
Mengirim flag opsi untuk metode SendMsg.
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
Jenis fungsi penanganan peristiwa penerimaan teks pesan.
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Jenis fungsi penanganan peristiwa error penerimaan.

Atribut publik

OnMessageReceived
Delegasi fungsi penanganan peristiwa penerimaan pesan endpoint.
OnReceiveError
Endpoint menerima delegasi fungsi penanganan peristiwa error.
mState
enum nl::Inet::IPEndPointBasis::@8
Status dinamis dasar endpoint yang mendasarinya.

Atribut yang dilindungi

mBoundIntfId
InterfaceId

Fungsi publik

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Bergabung dengan grup IP multicast.
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
Keluar dari grup multicast IP.
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
Menetapkan apakah traffic multicast IP harus diulang.

Fungsi yang dilindungi

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)

Fungsi statis publik

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

Fungsi statis yang dilindungi

GetPacketInfo(Weave::System::PacketBuffer *buf)
Mendapatkan sumber lapisan IP LwIP dan informasi alamat tujuan.

Jenis publik

@8

 @8

Status dinamis dasar endpoint yang mendasarinya.

Objek diinisialisasi dalam status "ready" lanjutkan ke status "terikat" setelah mengikat ke alamat antarmuka lokal, lalu lanjutkan ke status "mendengarkan" saat objek tersebut telah terdaftar terdaftar untuk menangani peristiwa penerimaan pesan ICMP.

Catatan:Enumerasi status kBasisState_Closed dipetakan ke kState_Ready untuk alasan kompatibilitas biner historis. kState_Closed yang ada ada untuk mengidentifikasi secara terpisah perbedaan antara "belum dibuka" dan "sebelumnya dibuka sekarang ditutup" yang ada sebelumnya di status kState_Ready dan kState_Closed.

Properti
kState_Bound

Endpoint terikat, tetapi tidak memprosesnya.

kState_Closed

Endpoint ditutup, siap untuk dirilis.

kState_Listening

Endpoint yang menerima datagram.

kState_Ready

Endpoint diinisialisasi, tetapi tidak terbuka.

@9

 @9

Mengirim flag opsi untuk metode SendMsg.

Properti
kSendFlag_RetainBuffer

Jangan mengantrekan pesan secara langsung secara destruktif.

Mengantrekan salinan.

OnMessageReceivedFunct

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

Jenis fungsi penanganan peristiwa penerimaan teks pesan.

Berikan fungsi jenis ini kepada anggota delegasi OnMessageReceived untuk memproses peristiwa penerimaan teks pesan di endPoint dengan msg adalah teks pesan yang diterima dari pengirim di senderAddr.

Detail
Parameter
[in] endPoint
Endpoint yang terkait dengan peristiwa.
[in] msg
Teks pesan yang diterima.
[in] senderAddr
Alamat IP pengirim.

OnReceiveErrorFunct

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

Jenis fungsi penanganan peristiwa error penerimaan.

Berikan fungsi jenis ini kepada anggota delegasi OnReceiveError untuk memproses peristiwa error penerimaan pada endPoint. Argumen err memberikan detail spesifik tentang jenis error.

Detail
Parameter
[in] endPoint
Endpoint yang terkait dengan peristiwa.
[in] err
Alasan error.

Atribut publik

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

Delegasi fungsi penanganan peristiwa penerimaan pesan endpoint.

OnReceiveError

OnReceiveErrorFunct OnReceiveError

Endpoint menerima delegasi fungsi penanganan peristiwa error.

Negara Bagian

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

Status dinamis dasar endpoint yang mendasarinya.

Objek diinisialisasi dalam status "ready" lanjutkan ke status "terikat" setelah mengikat ke alamat antarmuka lokal, lalu lanjutkan ke status "mendengarkan" saat objek tersebut telah terdaftar terdaftar untuk menangani peristiwa penerimaan pesan ICMP.

Catatan:Enumerasi status kBasisState_Closed dipetakan ke kState_Ready untuk alasan kompatibilitas biner historis. kState_Closed yang ada ada untuk mengidentifikasi secara terpisah perbedaan antara "belum dibuka" dan "sebelumnya dibuka sekarang ditutup" yang ada sebelumnya di status kState_Ready dan kState_Closed.

Atribut yang dilindungi

mBoundIntfId

InterfaceId mBoundIntfId

Fungsi publik

Bergabung dengan Grup Multicast

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Bergabung dengan grup IP multicast.

Menggabungkan endpoint ke grup multicast yang disediakan di antarmuka yang ditentukan.

Detail
Parameter
[in] aInterfaceId
indikator antarmuka jaringan untuk ditambahkan ke grup multicast
[in] aAddress
grup multicast yang ingin ditambahkan antarmuka
Nilai yang Ditampilkan
INET_NO_ERROR
berhasil: grup multicast dihapus
INET_ERROR_UNKNOWN_INTERFACE
antarmuka jaringan tidak dikenal, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress bukan kIPAddressType_IPv4 atau kIPAddressType_IPv6 atau bukan multicast
other
error platform atau sistem lain

Keluar dari Grup Multicast

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Keluar dari grup multicast IP.

Menghapus endpoint dari grup multicast yang disediakan di antarmuka yang ditentukan.

Detail
Parameter
[in] aInterfaceId
indikator antarmuka jaringan yang akan dihapus dari grup multicast
[in] aAddress
grup multicast untuk menghapus antarmuka dari
Nilai yang Ditampilkan
INET_NO_ERROR
berhasil: grup multicast dihapus
INET_ERROR_UNKNOWN_INTERFACE
antarmuka jaringan tidak dikenal, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress bukan kIPAddressType_IPv4 atau kIPAddressType_IPv6 atau bukan multicast
other
error platform atau sistem lain

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

Menetapkan apakah traffic multicast IP harus diulang.

Setel apakah traffic multicast IP harus di-loop kembali ke endpoint ini atau tidak.

Detail
Parameter
[in] aIPVersion
[in] aLoop
Nilai yang Ditampilkan
INET_NO_ERROR
berhasil: perilaku perilaku loopback multicast
other
error platform atau sistem lain

Fungsi yang dilindungi

Ikat

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
)

PersiapanIO

SocketEvents PrepareIO(
  void
)

KirimPesan

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

Fungsi statis publik

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

Fungsi statis yang dilindungi

InfoGetPacket

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

Mendapatkan sumber lapisan IP LwIP dan informasi alamat tujuan.

Saat menggunakan informasi LwIP tentang paket, ada 'tersembunyi' di ruang yang dicadangkan sebelum dimulainya data dalam buffer paket. Hal ini diperlukan karena peristiwa lapisan sistem hanya memiliki dua argumen, yang dalam hal ini digunakan untuk menyampaikan pointer ke titik akhir dan pointer ke buffer.

Detail
Parameter
[in] aBuffer
buffering paket yang berisi pesan IP
Menampilkan
pointer ke informasi alamat jika berhasil; jika tidak, NULL jika tidak ada cukup ruang dalam paket untuk informasi alamat.

Biasanya, trik menyimpan informasi sebelum data berfungsi karena buffer pertama dalam pesan IP LwIP berisi ruang yang digunakan untuk header Ethernet/IP/UDP. Namun, mengingat ukuran struktur IPPacketInfo saat ini (40 byte), tidak mungkin ada cukup ruang untuk menyimpan struktur bersama dengan payload dalam satu buffer paket. Dalam praktiknya, hal ini hanya terjadi pada paket IPv4 berukuran sangat besar yang masuk tanpa header Ethernet.