nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
これにより、タイマー、ドメイン ネーム システム(DNS)の解決、TCP ネットワーク トランスポート、UDP ネットワーク トランスポート、RAW ネットワーク トランスポートなどのインターネット サービスを、1 つのスレッドで利用できます。
まとめ
BSD/POSIX ソケットの場合、イベント準備状況の通知はファイル記述子と、プラットフォーム適応に関する従来のポーリング / 選択実装を介して処理されます。
LwIP の場合、イベント準備状況の通知はイベント / メッセージと、イベント / メッセージ システムのプラットフォーム固有およびシステム固有のフックを介して処理されます。
コンストラクタとデストラクタ |
|
---|---|
InetLayer(void)
これは InetLayer のデフォルト コンストラクタです。
|
パブリック タイプ |
|
---|---|
@5{
|
列挙型 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
選択呼び出しからの 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 オブジェクトの現在の状態。
Properties | |
---|---|
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 )
選択呼び出しからの 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(マッチローカル IPv6 サブネット)
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。それ以外の場合は、シャットダウンの失敗の理由を示す特定のエラー。
|
システムレイヤ
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 )