nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
これにより、タイマー、ドメイン ネーム システム(DNS)解決、TCP ネットワーク トランスポート、UDP ネットワーク トランスポート、生のネットワーク トランスポートなどのインターネット サービスを 1 つのスレッドでアクセスできるようになります。
概要
BSD/POSIX ソケットの場合、イベント準備通知は、ファイル ディスクリプタと、プラットフォーム 適応上の従来の poll / select 実装を介して処理されます。
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 アドレスのインターフェース ID を取得します。
|
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 アドレスのインターフェース ID を取得します。
インターフェース識別子を導出できない場合は、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 )