nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
これにより、タイマー、ドメイン ネーム システム(DNS)の解決、TCP ネットワーク トランスポート、UDP ネットワーク トランスポート、raw ネットワーク トランスポートなど、1 つのスレッドからインターネット サービスにアクセスできます。
概要
BSD/POSIX ソケットの場合、イベントの準備状況の通知は、ファイル記述子と、プラットフォーム適応上の従来のポーリング / 選択実装を介して処理されます。
LwIP の場合、イベント準備状況通知は、イベント / メッセージと、イベント / メッセージ システムのプラットフォーム / システム固有のフックを介して処理されます。
コンストラクタとデストラクタ |
|
---|---|
InetLayer(void)
これは InetLayer デフォルト コンストラクタです。
|
パブリック タイプ |
|
---|---|
@5{
|
enum InetLayer オブジェクトの現在の状態。 |
DNSResolveCompleteFunct
|
typedefDNSResolver::OnResolveCompleteFunct
|
パブリック属性 |
|
---|---|
State
|
enum nl::Inet::InetLayer::@5
InetLayer オブジェクトの現在の状態。
|
公開静的属性 |
|
---|---|
sInetEventHandlerDelegate
|
パブリック関数 |
|
---|---|
CanEnqueueDroppableEvent(void)
|
bool
|
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
|
void
まだアクティブである可能性のある未解決の DNS クエリ(完了コールバックとアプリケーションの状態が一致する場合)をキャンセルします。
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
指定された IP アドレスのインターフェース識別子を取得します。
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
指定されたリンクまたはインターフェースのリンクローカル IPv6 アドレスを取得します。
|
GetPlatformData(void)
|
void *
インスタンスに割り当てられているクライアント固有のプラットフォーム データがすべて返されます(すでに設定されている場合)。
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
select 呼び出しからの I/O を処理します。
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
これは InetLayer の明示的イニシャライザです。
|
InitQueueLimiter(void)
|
|
MatchLocalIPv6Subnet(const IPAddress & addr)
|
bool
指定した IPv6 アドレスとローカルに設定されたすべての IPv6 アドレスの間にプレフィックス一致があるかどうかを確認します。
|
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
|
特定の IP バージョンとプロトコル用に新しい RawEndPoint オブジェクトを作成します。
|
NewTCPEndPoint(TCPEndPoint **retEndPoint)
|
新しい TCPEndPoint オブジェクトを作成します。
|
NewTunEndPoint(TunEndPoint **retEndPoint)
|
新しい TunEndPoint オブジェクトを作成します。
|
NewUDPEndPoint(UDPEndPoint **retEndPoint)
|
新しい UDPEndPoint オブジェクトを作成します。
|
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
|
void
select() が処理するファイル記述子のセットを準備します。 |
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
指定されたホスト名の IP アドレスを解決します。
|
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
指定されたホスト名の IP アドレスを解決します。
|
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
指定されたホスト名の IP アドレスを解決します。
|
SetPlatformData(void *aPlatformData)
|
void
これにより、指定したクライアント固有のプラットフォーム データがインスタンスに設定され、後でクライアント プラットフォームが取得できるようになります。
|
Shutdown(void)
|
|
SystemLayer(void) const
|
静的パブリック関数 |
|
---|---|
HandleInetLayerEvent(Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument)
|
Weave::System::Error
|
IsDroppableEvent(Weave::System::EventType aType)
|
bool
|
UpdateSnapshot(nl::Weave::System::Stats::Snapshot & aSnapshot)
|
void
|
パブリック タイプ
@5
@5
InetLayer オブジェクトの現在の状態。
プロパティ | |
---|---|
kState_Initialized
|
初期化された状態。 |
kState_NotInitialized
|
初期化されていない状態。 |
kState_ShutdownInProgress
|
シャットダウンがトリガーされた状態。 |
DNSResolveCompleteFunct
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
パブリック属性
公開静的属性
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
パブリック関数
CanEnqueueDroppableEvent
bool CanEnqueueDroppableEvent( void )
CancelResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
まだアクティブである可能性のある未解決の DNS クエリ(完了コールバックとアプリケーションの状態が一致する場合)をキャンセルします。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
指定された IP アドレスのインターフェース識別子を取得します。
インターフェース識別子を導出できない場合は、INET_NULL_INTERFACEID に設定されます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
||||
戻り値 |
INET_NO_ERROR を無条件に生成します。
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
指定されたリンクまたはインターフェースのリンクローカル IPv6 アドレスを取得します。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
GetPlatformData
void * GetPlatformData( void )
インスタンスに割り当てられているクライアント固有のプラットフォーム データがすべて返されます(すでに設定されている場合)。
詳細 | |
---|---|
戻り値 |
クライアント固有のプラットフォーム データ。以前に設定されている場合は NULL。
|
HandleSelectResult
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
select 呼び出しからの I/O を処理します。
このメソッドは、保留中の I/O イベントを各アクティブなエンドポイントに登録し、それらのエンドポイントのそれぞれの I/O 処理関数を呼び出します。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
InetLayer
InetLayer( void )
これは InetLayer デフォルト コンストラクタです。
一部の基本的なデータメンバーの初期化が実行されます。ただし、InetLayer は明示的なイニシャライザの設計パターンに従っているため、オブジェクトを使用する前に InetLayer::Init メソッドを正常に呼び出す必要があります。
init
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
これは InetLayer の明示的イニシャライザです。
InetLayer を使用するには、この関数を呼び出して正常に完了する必要があります。
呼び出し元は、任意のコンテキスト引数を指定できます。このコンテキスト引数は、プラットフォーム固有のフック関数を介して返されます。LwIP ベースの適応の場合、これは通常、InetLayer インスタンスに関連付けられたイベントキューへのポインタになります。
プラットフォームは、プラットフォーム固有の構成ヘッダーで INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS をアサートし、Platform::InetLayer::WillInit フックと Platform::InetLayer::DidInit フックを有効にして、InetLayer に対するプラットフォーム固有のカスタマイズやデータ拡張を有効にすることもできます。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6Subnet
bool MatchLocalIPv6Subnet( const IPAddress & addr )
指定した IPv6 アドレスとローカルに設定されたすべての IPv6 アドレスの間にプレフィックス一致があるかどうかを確認します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
成功した場合は true、それ以外の場合は false です。
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
特定の IP バージョンとプロトコル用に新しい RawEndPoint オブジェクトを作成します。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
NewTCPEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
新しい TCPEndPoint オブジェクトを作成します。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
新しい TunEndPoint オブジェクトを作成します。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
NewUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
新しい UDPEndPoint オブジェクトを作成します。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
PrepareSelect
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
select()
が処理するファイル記述子のセットを準備します。
詳細 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
指定されたホスト名の IP アドレスを解決します。
詳細 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||||||||
戻り値 |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
指定されたホスト名の IP アドレスを解決します。
詳細 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||||||||
戻り値 |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
指定されたホスト名の IP アドレスを解決します。
詳細 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||||||||
戻り値 |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
これにより、指定したクライアント固有のプラットフォーム データがインスタンスに設定され、後でクライアント プラットフォームが取得できるようになります。
詳細 | |||
---|---|---|---|
パラメータ |
|
シャットダウン
INET_ERROR Shutdown( void )
これは InetLayer の明示的な逆イニシャライザであり、インスタンス化された InetLayer インスタンスを破棄する前に呼び出す必要があります。
プラットフォームは、プラットフォーム固有の構成ヘッダーで INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS をアサートし、Platform::InetLayer::WillShutdown フックと Platform::InetLayer::DidShutdown フックを有効にして、InetLayer に対するプラットフォーム固有のカスタマイズまたはデータ拡張のクリーンアップを有効にすることもできます。
詳細 | |
---|---|
戻り値 |
INET_NO_ERROR - 成功した場合。それ以外の場合は、シャットダウンの失敗の理由を示す特定のエラー。
|
SystemLayer
Weave::System::Layer * SystemLayer( void ) const
静的パブリック関数
HandleInetLayerEvent
Weave::System::Error HandleInetLayerEvent( Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument )
IsDroppableEvent
bool IsDroppableEvent( Weave::System::EventType aType )