前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFBAddrInfo
IAddrInfo インターフェースのラッパークラスです。
#include <SFBAddrInfo.h.hpp>
class SFBAddrInfo : public SFBQuery;
SFMTYPEDEFWRAPPER(SFBAddrInfo)

継承図

SFBAddrInfo クラスの継承図

バージョン

BREW 2.0 BREW 2.1 BREW 3.1 BREW 4.0
× × ×

参照

BREW API IAddrInfo

メンバ

パブリック関数
SFCError GetResult( SInt32Ptr status , SInt32Ptr number , SInt32Ptr maxsize )
解決トランザクションが完了した後、問い合わせ結果を取得します。
SFCError GetResultAddr( SInt32 index , AEEAddrInfo * addrinfo , SInt32Ptr size )
トランザクションの解決後、エレメント クエリ結果の特定のアドレス情報を取得します。
SFCError GetResultAddr( SInt32 index , AEEAddrInfo * addrinfo , SIntNPtr size )
トランザクションの解決後、エレメント クエリ結果の特定のアドレス情報を取得します。
static
SFBAddrInfoSmp
NewInstance( SFCErrorPtr exception = null )
SFBAddrInfo インスタンスを生成します。
static
SFBAddrInfoSmp
NewInstance( AEECLSID id , SFCErrorPtr exception = null )
SFBAddrInfo インスタンスを生成します。
SFCError SelectNetwork( SInt32 network )
特定のデータネットワークを選択します。
SFCError StartQuery( ACharConstPtr node , ACharConstPtr server , AEEAddrInfo const * hints , SFXCallbackPtr callback )
リゾルバ クエリ情報を設定し、開始します。
SFCError StartQuery( SFXAnsiStringConstRef node , SFXAnsiStringConstRef server , AEEAddrInfo const * hints , SFXCallbackPtr callback )
リゾルバ クエリ情報を設定し、開始します。
SFCError QueryInterface( AEECLSID clsid , VoidHandle handle ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
SFCError QueryInterface( AEECLSID clsid , SFBBaseSmpPtr handle ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
SFBBaseSmp QueryInterface( AEECLSID clsid ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
Void Self( AEECLSID clsidReq , SFBQuerySmpPtr clone , AEECLSID clsidImp ) (SFBQuery から継承)
オブジェクトを単一インターフェースで実装するときに使います。
SFBQuerySmp Self( AEECLSID clsidReq , AEECLSID clsidImp ) (SFBQuery から継承)
オブジェクトを単一インターフェースで実装するときに使います。
プロテクト関数
static
SFBBaseSmp
FactoryByCreate( AEECLSID id , SFCErrorPtr exception = null ) (SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを生成します。
static
SFBBaseSmp
FactoryByQuery( SFBQuerySmpConstRef query , AEECLSID id , SFCErrorPtr exception = null ) (SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを指定した SFBQuery インスタンスを使用して生成します。

SFBAddrInfo::GetResult
解決トランザクションが完了した後、問い合わせ結果を取得します。
[ public ]
SFCError GetResult(
    SInt32Ptr status    // 問い合わせ結果ステータス
    SInt32Ptr number    // 問い合わせの結果として生成されたアドレス情報要素の数
    SInt32Ptr maxsize   // 問い合わせの結果として生成された最大のアドレス情報要素のサイズ
);

引数

status
  • AEE_SUCCESS: 名前が正常に解決された。
  • AEE_NET_ETIMEDOUT: 要求がタイムアウトした。
  • AEE_NET_GENERAL_FAILURE: 名前の解決試行中に、回復不能なエラーが発生した。
  • AEE_NET_ENOMEM: メモリ アロケーションに失敗した。
  • AEE_NET_EAI_BADREQUEST: 要求パラメータに誤りがある。
  • AEE_NET_UNKDOMAIN: ホストドメイン名が不明、またはアドレスレコードがない。
  • AEE_NET_BADDOMAIN: ホストドメイン名の形式が不正。
  • AEE_NET_BADRESPONSE: 応答が意味不明。
他のエラーコードが戻ることもある。 *

戻り値

  • AEE_SUCCESS: クエリ結果が戻された。
  • AEE_EBADSTATE: オブジェクトは正常に処理できる状態ではない。つまり、クエリが開始されていない。
  • AEE_NET_EFAULT: 無効なバッファまたは引数が指定されている。

解説

成功した場合、解決問い合わせステータス、返されたアドレスの数、最大アドレスサイズを返します。

参照

BREW API IADDRINFO_GetResult | SFBAddrInfo::GetResultAddr


SFBAddrInfo::GetResultAddr
トランザクションの解決後、エレメント クエリ結果の特定のアドレス情報を取得します。
[ public ]
SFCError GetResultAddr(
    SInt32 index             // 取得するアドレス情報エレメントの0ベースのインデックス
    AEEAddrInfo * addrinfo   // 記入される AEEAddrInfo へのポインタ
    SInt32Ptr size           // サイズへのポインタ
);
[ public ]
SFCError GetResultAddr(
    SInt32 index             // 取得するアドレス情報エレメントの0ベースのインデックス
    AEEAddrInfo * addrinfo   // 記入される AEEAddrInfo へのポインタ
    SIntNPtr size            // サイズへのポインタ
);

引数

index

取得するアドレス情報エレメントの0ベースのインデックス。

addrinfo

記入される AEEAddrInfo へのポインタ。メモリはクライアント側で事前に割り当てる必要がある。

size

入力時: アドレスを含んでいるアドレス情報エレメントを入れるために十分な大きさでなければならない pai のバイト単位でのサイズをポイント。 出力時: アドレスそのものを含んでいるアドレス情報エレメントの実際のサイズで更新される。 *pnAddrInfoBytes が 0 の場合、pai は使用されないことに注意。

戻り値

  • AEE_SUCCESS: クエリ結果が戻された。
  • AEE_EBADSTATE: オブジェクトは正常に処理できる状態ではない。つまり、クエリが開始されていない。
  • AEE_NET_EFAULT: 無効なバッファまたは引数が指定されている。

解説

アドレス情報エレメントのサイズを取得するには、0の *pnAddrInfoBytes を使用します。

参照

BREW API IADDRINFO_GetResultAddr | SFBAddrInfo::GetResult


SFBAddrInfo::NewInstance
SFBAddrInfo インスタンスを生成します。
[ public, static ]
SFBAddrInfoSmp NewInstance(
    SFCErrorPtr exception = null   // エラー値
);
[ public, static ]
SFBAddrInfoSmp NewInstance(
    AEECLSID id                    // クラスID
    SFCErrorPtr exception = null   // エラー値
);

SFBAddrInfo::SelectNetwork
特定のデータネットワークを選択します。
[ public ]
SFCError SelectNetwork(
    SInt32 network   // データネットワークタイプ
);

戻り値

  • AEE_NET_SUCCESS: データネットワークが選択された。
  • AEE_EBADSTATE: ネットワークが有効でない場合。
  • AEE_NET_EOPNOTSUPP: ネットワークが既に選択されている。
  • AEE_EFAILED: その他のエラー。

解説

SFBAddrInfoインスタンスの作成時にネットワークは選択されません。 SFBAddrInfo::SelectNetwork()の前に、ネットワーク (つまり、StartQuery) を必要とする SFBAddrInfoメソッドがコールされると、AEE_NETWORK_DEFAULTが暗示的に選択され、実際にどのネットワークを使用するかの決定は委任されます。

ネットワークが選択された後は、SFBAddrInfo::SelectNetwork() を介して明示的に、または上の説明のように暗黙的にネットワークを変更することはできません。別のネットワークを使用するには、新しい SFBAddrInfoインスタンスが必要になります。

参照

BREW API IADDRINFO_SelectNetwork


SFBAddrInfo::StartQuery
リゾルバ クエリ情報を設定し、開始します。
[ public ]
SFCError StartQuery(
    ACharConstPtr node          // NULL、ホスト名、IP アドレス、または"\brewloopback"
    ACharConstPtr server        // NULLまたは 10進数のポート番号ストリング
    AEEAddrInfo const * hints   // 解決プロセスに対するいくつかのヒント
    SFXCallbackPtr callback     // 完了後に継続されるユーザー指定のコールバック
);
[ public ]
SFCError StartQuery(
    SFXAnsiStringConstRef node     // NULL、ホスト名、IP アドレス、または"\brewloopback"
    SFXAnsiStringConstRef server   // NULLまたは 10進数のポート番号ストリング
    AEEAddrInfo const * hints      // 解決プロセスに対するいくつかのヒント
    SFXCallbackPtr callback        // 完了後に継続されるユーザー指定のコールバック
);

引数

node

NULL、ホスト名、IP アドレス、または"\brewloopback"

server

NULLまたは 10進数のポート番号ストリング

hints

解決プロセスに対するいくつかのヒント

callback

完了後に継続されるユーザー指定のコールバック − 結果はその時点でのみ得られます。 NULL なら、同期クエリを開始します。同期クエリは、(ネットワーク アクセスなしで)すぐに得られる結果と、(アドレス キャッシュがある場合)キャッシュされた結果だけを返します。 StartQuery() が SUCCESS を返す場合、結果はただちに得られます。 アドレスが解決される必要があり、キャッシュ内に見つからない場合、AEE_NET_UNKDOMAIN が返されます。

戻り値

  • AEE_SUCCESS: クエリ情報が設定された。
  • AEE_EBADSTATE: オブジェクトは正常に処理できる状態ではありません。つまり、トランザクションの開始後に、StartQuery をもう一度コールすることはできない。
  • AEE_NET_EAI_BADFLAGS: paiHints の dwFlags が無効な値。
  • AEE_NET_GENERAL_FAILURE: パラメータの処理中に、修復不能なエラーが発生。
  • AEE_NET_EAFNOSUPPORT: アドレス ファミリーを認識できない。
  • AEE_NET_ENOMEM: メモリ アロケーションに失敗。
  • AEE_NET_EAI_BADREQUEST: リクエスト パラメータにエラー。つまり、szNodeName も szServName も与えられていない(少なくとも、どちらかが与えられている必要がある。)
  • AEE_NET_ESOCKNOSUPPORT: 目的のソケット タイプを認識できなかった。
  • AEE_NET_EAI_UNSUPPFLAGS: paiHints の dwFlags がサポートされていない値を持っている。
  • AEE_NET_UNKDOMAIN: 同期クエリで、アドレスが解決されなければならないが、アドレス キャッシュ内に見つからない。
その他のエラーが返されることもあり、IAddrInfo_StartQuery() が正常終了したかどうかをコール側で確認する必要がある。

解説

詳細は、「RFC 3493 セクション 6.1」を参照してください。 1つのクエリは1回しか開始できません。

参照

BREW API IADDRINFO_StartQuery