Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。
コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

nl::Inet::IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

このクラスのオブジェクトは、インスタンス化できない IP プロトコル エンドポイントを表します。

まとめ

継承

継承元: nl::Inet::EndPointBasis
直接的な既知のサブクラス:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint

パブリック タイプ

@8{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Closed = 3
}
列挙型
基礎となるエンドポイントの基本的な動的状態。
@9{
  kSendFlag_RetainBuffer = 0x0040
}
列挙型
SendMsg メソッドのオプション フラグを送信します。
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
メッセージ テキスト受信イベント処理関数のタイプ。
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
受信エラーイベント処理関数のタイプ。

パブリック属性

OnMessageReceived
エンドポイントのメッセージ受信イベント処理機能のデリゲート。
OnReceiveError
エンドポイントでエラーイベント処理関数デリゲートを受け取ります。
mState
enum nl::Inet::IPEndPointBasis::@8
基礎となるエンドポイントの基本的な動的状態。

プロテクト属性

mBoundIntfId
InterfaceId

パブリック関数

JoinMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
IP マルチキャスト グループに参加する。
LeaveMulticastGroup(InterfaceId aInterfaceId, const IPAddress & aAddress)
IP マルチキャスト グループを退会する。
SetMulticastLoopback(IPVersion aIPVersion, bool aLoopback)
IP マルチキャスト トラフィックをループバックするかどうかを設定します。

プロテクト関数

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)

静的パブリック関数

FindNetifFromInterfaceId(InterfaceId aInterfaceId)
struct netif *

保護された静的関数

GetPacketInfo(Weave::System::PacketBuffer *buf)
LwIP IP レイヤの送信元と宛先のアドレス情報を取得します。

パブリック タイプ

8

 @8

基礎となるエンドポイントの基本的な動的状態。

オブジェクトは「Ready」状態で初期化され、ローカル インターフェース アドレスにバインドしてから「バインド」状態に移行し、ICMP メッセージを受信するイベント処理の継続を登録した時点で「リッスン」状態に進みます。

注: kBasisState_Closed 状態の列挙型は、過去のバイナリの互換性の理由から kState_Ready にマッピングされています。既存の kState_Closed は、まだ kState_Ready または kState_Closed 状態で存在していた「まだ開いていない」と「以前は開いていたが、現在閉じている」と区別するために存在します。

Properties
kState_Bound

エンドポイントにバインドされていますが、リッスンしていません。

kState_Closed

エンドポイントが閉じられました。リリースの準備ができています。

kState_Listening

データグラムを受信するエンドポイント。

kState_Ready

エンドポイントは初期化されていますが、開いていません。

9

 @9

SendMsg メソッドのオプション フラグを送信します。

Properties
kSendFlag_RetainBuffer

メッセージを破壊的にキューに直接格納しないでください。

コピーをキューに入れます。

OnMessageReceivedFunct

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

メッセージ テキスト受信イベント処理関数のタイプ。

このタイプの関数を OnMessageReceived デリゲート メンバーに提供して、endPoint でメッセージ テキスト受信イベントを処理します。msg は、senderAddr で送信者から受信したメッセージ テキストです。

詳細
パラメータ
[in] endPoint
イベントに関連付けられているエンドポイント。
[in] msg
受信したメッセージ テキスト。
[in] senderAddr
送信者の IP アドレス。

OnReceiveErrorFunct(受信エラー機能)

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

受信エラーイベント処理関数のタイプ。

このタイプの関数を OnReceiveError 委譲メンバーに提供して、endPoint の受信エラーイベントを処理します。err 引数は、エラーのタイプに関する詳細を提供します。

詳細
パラメータ
[in] endPoint
イベントに関連付けられているエンドポイント。
[in] err
エラーの理由です。

パブリック属性

OnMessageReceived(メッセージの受信時)

OnMessageReceivedFunct OnMessageReceived

エンドポイントのメッセージ受信イベント処理機能のデリゲート。

OnReceiveError(受信エラー)

OnReceiveErrorFunct OnReceiveError

エンドポイントでエラーイベント処理関数デリゲートを受け取ります。

mState

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

基礎となるエンドポイントの基本的な動的状態。

オブジェクトは「Ready」状態で初期化され、ローカル インターフェース アドレスにバインドしてから「バインド」状態に移行し、ICMP メッセージを受信するイベント処理の継続を登録した時点で「リッスン」状態に進みます。

注: kBasisState_Closed 状態の列挙型は、過去のバイナリの互換性の理由から kState_Ready にマッピングされています。既存の kState_Closed は、まだ kState_Ready または kState_Closed 状態で存在していた「まだ開いていない」と「以前は開いていたが、現在閉じている」と区別するために存在します。

プロテクト属性

mBoundIntfId

InterfaceId mBoundIntfId

パブリック関数

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

IP マルチキャスト グループに参加する。

指定したインターフェースのマルチキャスト グループにエンドポイントを結合します。

詳細
パラメータ
[in] aInterfaceId
マルチキャスト グループに追加するネットワーク インターフェースのインジケーター
[in] aAddress
インターフェースを追加するマルチキャスト グループ
戻り値
INET_NO_ERROR
成功: マルチキャスト グループが削除されました
INET_ERROR_UNKNOWN_INTERFACE
不明なネットワーク インターフェース、aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddresskIPAddressType_IPv4 または kIPAddressType_IPv6 でないか、マルチキャストではありません
other
別のシステムまたはプラットフォーム エラー

マルチキャスト グループから退出

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

IP マルチキャスト グループを退会する。

指定したインターフェースの指定されたマルチキャスト グループからエンドポイントを削除します。

詳細
パラメータ
[in] aInterfaceId
マルチキャスト グループから削除するネットワーク インターフェースのインジケーター
[in] aAddress
インターフェースを削除するマルチキャスト グループ
戻り値
INET_NO_ERROR
成功: マルチキャスト グループが削除されました
INET_ERROR_UNKNOWN_INTERFACE
不明なネットワーク インターフェース、aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddresskIPAddressType_IPv4 または kIPAddressType_IPv6 でないか、マルチキャストではありません
other
別のシステムまたはプラットフォーム エラー

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

IP マルチキャスト トラフィックをループバックするかどうかを設定します。

IP マルチキャスト トラフィックをこのエンドポイントにループバックするかどうかを設定します。

詳細
パラメータ
[in] aIPVersion
[in] aLoop
戻り値
INET_NO_ERROR
成功: マルチキャスト ループバック動作セット
other
別のシステムまたはプラットフォーム エラー

プロテクト関数

バインド

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
)

送信メッセージ

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

静的パブリック関数

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

保護された静的関数

GetPacketInfo

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

LwIP IP レイヤの送信元と宛先のアドレス情報を取得します。

LwIP を使用する場合、パケットに関する情報は「非表示」で、パケット バッファ内のデータの開始前の予約済みスペースにあります。システム レイヤ イベントには 2 つの引数のみがあるため、これが必要です。この場合、エンドポイントへのポインタとバッファへのポインタのやり取りに使用されます。

詳細
パラメータ
[in] aBuffer
IP メッセージを含むパケット バッファ
戻り値
成功した場合はアドレス情報へのポインタ。それ以外の場合は、アドレス情報用のパケットに十分なスペースがない場合は NULL。

ほとんどの場合、LwIP IP メッセージの最初のバッファにはイーサネット/IP/UDP ヘッダーに使用されたスペースが格納されているため、データの処理前に情報を保存する必要があります。ただし、IPPacketInfo 構造体の現在のサイズ(40 バイト)を考えると、この構造体をペイロードとともに 1 つのパケット バッファに格納するための十分なスペースがない可能性があります。実際には、この接続はイーサネット ヘッダーなしで受信する非常に大きな IPv4 パケットに対してのみ発生します。