nl:: Inet:: IPEndPointBasis
#include <src/inet/IPEndPointBasis.h>
このクラスのオブジェクトは、インスタンス化できない IP プロトコル エンドポイントを表します。
概要
継承
継承元: nl::Inet::EndPointBasis直接的な既知のサブクラス:
nl::Inet::RawEndPoint
nl::Inet::UDPEndPoint
パブリック タイプ |
|
---|---|
@8{
|
enum 基盤となるエンドポイントの基本的な動的状態。 |
@9{
|
enumSendMsg メソッドのオプション フラグを送信する。 |
OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
|
typedefvoid(*
メッセージ テキスト受信イベント処理関数のタイプ。 |
OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
|
typedefvoid(*
受信エラーイベント処理関数のタイプ。 |
パブリック属性 |
|
---|---|
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
基盤となるエンドポイントの基本的な動的状態。
オブジェクトは「準備完了」状態で初期化され、ローカル インターフェース アドレスにバインドした後に「バインド」状態に移行します。その後、ICMP メッセージ受信イベントの処理用に継続が登録されると、「リッスン」状態に進みます。
注: 過去のバイナリ互換性の理由から、kBasisState_Closed
状態列挙型は kState_Ready
にマッピングされています。既存の kState_Closed
は、これまで kState_Ready
状態と kState_Closed
状態であった「まだ開いていない」と「前回開いた後、閉じた状態」を別々に識別するために存在します。
プロパティ | |
---|---|
kState_Bound
|
エンドポイントはバインドされていますが、リッスンしていません。 |
kState_Closed
|
エンドポイントが閉じ、リリースの準備ができています。 |
kState_Listening
|
データグラムを受信するエンドポイント |
kState_Ready
|
エンドポイントは初期化されましたが、開いていません。 |
@9
@9
SendMsg
メソッドのオプション フラグを送信する。
プロパティ | |
---|---|
kSendFlag_RetainBuffer
|
メッセージを破壊的に直接キューに追加しないでください。 コピーをキューに追加します。 |
OnMessageReceivedFunct
void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)
メッセージ テキスト受信イベント処理関数のタイプ。
この型の関数を OnMessageReceived
委譲メンバーに提供して、endPoint
でメッセージ テキスト受信イベントを処理します。ここで、msg
は senderAddr
の送信者から受信したメッセージ テキストです。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
OnReceiveErrorFunct
void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)
受信エラーイベント処理関数のタイプ。
この型の関数を OnReceiveError
デリゲート メンバーに渡して、endPoint
の受信エラーイベントを処理します。err
引数は、エラーの種類に関する具体的な詳細を提供します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
パブリック属性
mState
enum nl::Inet::IPEndPointBasis::@8 mState
基盤となるエンドポイントの基本的な動的状態。
オブジェクトは「準備完了」状態で初期化され、ローカル インターフェース アドレスにバインドした後に「バインド」状態に移行します。その後、ICMP メッセージ受信イベントの処理用に継続が登録されると、「リッスン」状態に進みます。
注: 過去のバイナリ互換性の理由から、kBasisState_Closed
状態列挙型は kState_Ready
にマッピングされています。既存の kState_Closed
は、これまで kState_Ready
状態と kState_Closed
状態であった「まだ開いていない」と「前回開いた後、閉じた状態」を別々に識別するために存在します。
プロテクト属性
mBoundIntfId
InterfaceId mBoundIntfId
パブリック関数
JoinMulticastGroup
INET_ERROR JoinMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
IP マルチキャスト グループに参加する。
指定されたインターフェースで、指定されたマルチキャスト グループにエンドポイントを参加させます。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
LeaveMulticastGroup
INET_ERROR LeaveMulticastGroup( InterfaceId aInterfaceId, const IPAddress & aAddress )
IP マルチキャスト グループから退出する。
指定されたインターフェースで、指定されたマルチキャスト グループからエンドポイントを削除します。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
SetMulticastLoopback
INET_ERROR SetMulticastLoopback( IPVersion aIPVersion, bool aLoopback )
IP マルチキャスト トラフィックをループバックするかどうかを設定します。
IP マルチキャスト トラフィックをこのエンドポイントにループバックするかどうかを設定します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
|
プロテクト関数
バインド
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 )
静的パブリック関数
FindNetifFromInterfaceId
struct netif * FindNetifFromInterfaceId( InterfaceId aInterfaceId )
保護された静的関数
GetPacketInfo
IPPacketInfo * GetPacketInfo( Weave::System::PacketBuffer *buf )
LwIP IP レイヤの送信元と宛先のアドレス情報を取得します。
LwIP を使用する場合、パケットに関する情報は、パケット バッファ内のデータ開始前の予約済みスペースで「非表示」になります。これが必要なのは、システムレイヤ イベントは 2 つの引数しか持たないからです。この場合は、ポインタを終点に、ポインタをバッファに伝達するために使用されます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
成功の場合はアドレス情報へのポインタ。それ以外の場合は NULL。パケットにアドレス情報用のスペースが不足している場合。
|
ほとんどの場合、LwIP IP メッセージの最初のバッファに、イーサネット/IP/UDP ヘッダーに使用されていたスペースが含まれるため、データが機能する前に情報を保存するという手法がほとんどです。ただし、IPPacketInfo 構造体の現在のサイズ(40 バイト)を考慮すると、構造体とペイロードを単一のパケット バッファに格納するのに十分なスペースがない場合があります。実際には、これはイーサネット ヘッダーなしで到着する非常に大きな IPv4 パケットの場合にのみ発生します。