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

継承図

SFBQoSBundle クラスの継承図

バージョン

BREW 2.0 BREW 2.1 BREW 3.1 BREW 4.0
× × ×

参照

BREW API IQoSBundle

メンバ

パブリック関数
SFCError AddRetryCB( AEECallback * retry )
この関数は、SFBQoSBundle::Open() 操作が再試行可能になったら通知されるように、クライアントが使用します。
SFCError Close( SFBQoSListSmpConstRef sessions )
複数の QoS セッションを閉じる要求を発行します。要求は、QoS リンクのリソースを解放するために下層へ転送されます。
SFCError Deactivate( SFBQoSListSmpConstRef sessions )
複数の QoS リンクを中断させます。
SFCError GetError( AEEQoSSessionError * error )
クライアントが失敗の原因に関する情報を取得するための AEEQoSSessionError を返します。
SFCError GoActive( SFBQoSListSmpConstRef sessions )
複数の QoS リンクをアクティブにします。
static
SFBQoSBundleSmp
NewInstance( SFCErrorPtr exception = null )
SFBQoSBundle インスタンスを生成します。
static
SFBQoSBundleSmp
NewInstance( AEECLSID id , SFCErrorPtr exception = null )
SFBQoSBundle インスタンスを生成します。
SFCError Open( SFBQoSListSmpConstRef sessions , SFBQoSListSmpConstRef specs )
同じデータネットワークにリンクされた、新しい複数の QoS セッションの確立要求を発行します。要求は、新しい QoS リンクを確立するために下層へ転送されます。
SFCError SelectNetworkEx( SInt32 network , SInt16 family )
QoS バンドルに関連付ける特定のデータネットワークを選択します。
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 インスタンスを使用して生成します。

SFBQoSBundle::AddRetryCB
この関数は、SFBQoSBundle::Open() 操作が再試行可能になったら通知されるように、クライアントが使用します。
[ public ]
SFCError AddRetryCB(
    AEECallback * retry   // クライアントのコールバック
);

戻り値

  • AEE_SUCCESS: クライアントのコールバックが正常に格納された。
  • AEE_EBADSTATE: QoSBundle の状態がこの操作に対して適切でない。
  • AEE_EBADPARM: クライアントのコールバックが無効。

他のエラーコードが戻ることもある。

解説

SFBQoSBundle::Open() が AEE_NET_WOULDBLOCK を返した場合は、最終結果 (エラーまたは成功) を取得するために、 SFBQoSBundle::Open() を後で再コールする必要があります。

SFBQoSBundle::Open() をいつ再コールするかの通知を受けるため、クライアントは SFBQoSBundle::AddRetryCB() を介してコールバックを登録する必要があります。

クライアントのコールバックが再開したとき、続いてコールする SFBQoSBundle::Open() が完了するという保証はないので、クライアントは AEE_NET_WOULDBLOCKを再度受け取る準備をしておく必要があります。

参照

BREW API IQoSBundle_AddRetryCB


SFBQoSBundle::Close
複数の QoS セッションを閉じる要求を発行します。要求は、QoS リンクのリソースを解放するために下層へ転送されます。
[ public ]
SFCError Close(
    SFBQoSListSmpConstRef sessions   // 解放する有効な QoS セッションのリスト。
);

戻り値

  • AEE_NET_SUCCESS: 要求が正常に発行された。これは、すべての QoS リソースが解放されたことは意味しない。
  • AEE_EBADPARM: QoS セッションリストが無効。
  • AEE_NET_EQOS_NET_CONFLICT: QoS セッションのネットワーク間に競合。
  • AEE_NET_EQOS_SESSION_INVALID_OPT: リスト内の 1 つ以上の QoS セッションが無効、または Close 操作の正常終了を妨げた (たとえば、QoSSession の状態がこの操作に対して適切でない)。SFBQoSBundle::GetError() を使用して、失敗の原因となったリスト内の最初の QoS セッションへのインデックスを識別し、エラーコードを取得すること ( AEEQoSSessionError を参照)。
  • AEE_EBADSTATE: QoSSession の状態がこの操作に対して適切でない。
  • AEE_ENOMEMORY: メモリー不足。

他のエラーコードが戻ることもある。

解説

要求できる QoS セッションの数には制限があり、 MAX_UINT8 を超えてはなりません。

閉じるように要求した QoS セッションはすべて同じネットワークにリンクされている必要があり、そうでない場合は操作に失敗し、QoS セッションインスタンスはどれも解放されません。

さらに、閉じるように要求した QoS セッションはすべて閉じることが可能な状態になければならず、そうでない場合は操作に失敗し、QoS セッションインスタンスはどれも解放されません。

AEE_SUCCESS の戻り値は、要求が正常に発行されたことを示しますが、すべての QoS セッションが解放されたことは示さないので注意してください。

SFBQoSBundle::Close() が AEE_SUCCESSを返した後、クライアントは、QoS が解放されたことを示す QoS イベント (AEE_QOS_UNAVAILABLE_EV) の発生を、各 QoS セッションについて個別にリッスンする必要があります ( SFBQoSSession::AddListener() を参照)。

IQoSBundle_Close() をコールした後、QoS バンドルオブジェクトを、任意の IQoSSession オブジェクトのバンドルで他の複数セッションの操作に再使用することができます。

参照

BREW API IQoSBundle_Close


SFBQoSBundle::Deactivate
複数の QoS リンクを中断させます。
[ public ]
SFCError Deactivate(
    SFBQoSListSmpConstRef sessions   // 中断する有効な QoS セッションのリスト。
);

戻り値

  • AEE_SUCCESS: 要求が正常に発行された。これは、すべての QoS セッションが中断されたことは意味しない。
  • AEE_EBADPARM: QoS セッションリストが無効。
  • AEE_NET_EQOS_NET_CONFLICT: QoS セッションのネットワーク間に競合。
  • AEE_NET_EQOS_SESSION_INVALID_OPT: リスト内の 1 つ以上の QoS セッションが無効、または Deactivate 操作の正常終了をさまたげた (たとえば、QoSSession の状態がこの操作に対して適切でない)。 IQoSBundle_GetError() を使用して、失敗の原因となったリスト内の最初の QoS セッションへのインデックスを識別し、エラーコードを取得すること ( AEEQoSSessionError を参照)。
  • AEE_NET_EQOSUNAWARE: 現在のネットワークが CDMA QoS 非認識システム (QoS をサポートしない)。
  • EAEE_NOMEMORY: メモリー不足。

他のエラーコードが戻ることもある。

解説

要求できる QoS セッションの数には制限があり、 MAX_UINT8 を超えてはなりません。

中断するように要求した QoS セッションはすべて同じネットワークにリンクされている必要があり、そうでない場合は操作に失敗し、QoS セッションインスタンスはどれも中断されません。

さらに、中断するように要求した QoS セッションはすべて中断することが可能な状態になければならず、そうでない場合は操作に失敗し、QoS セッションインスタンスはどれも中断されません。

AEE_SUCCESS の戻り値は、要求が正常に発行されたことを示しますが、QoS が中断されたことは示さないので注意してください。 SFBQoSBundle::Deactivate() が AEE_SUCCESSを返した後、クライアントは、QoS が中断されたことを示す QoS イベント (DSS_IFACE_IOCTL_QOS_AVAILABLE_DEACTIVATED_EV) の発生を、各 QoS セッションについて個別にリッスンする必要があります ( SFBQoSSession::AddListener() を参照)。

IQoSBundle_Deactivate() をコールした後、QoS バンドルオブジェクトを、任意の IQoSSession オブジェクトのバンドルで他の複数セッションの操作に再使用することができます。

参照

BREW API IQoSBundle_Deactivate


SFBQoSBundle::GetError
クライアントが失敗の原因に関する情報を取得するための AEEQoSSessionError を返します。
[ public ]
SFCError GetError(
    AEEQoSSessionError * error   // QoS セッションエラーを返す
);

戻り値

  • AEE_SUCCESS: エラーが pError 内に取得された。
  • AEE_EBADPARM: 指定した pError パラメータが無効。

解説

クライアントは、QoS バンドル操作 ( SFBQoSBundle::Open()、 SFBQoSBundle::Close()、 SFBQoSBundle::GoActive()、 SFBQoSBundle::Deactivate()) から AEE_NET_EQOS_SESSION_INVALID_OPT が返された後に、この関数をコールします。

このとき AEEQoSSessionError には、バンドル内のどの QoS セッションが失敗の原因であったかと、エラーのタイプが示されます。返されたエラーコードが AEE_QOS_SESSION_ERR_CODE_INVAL_SPEC であった場合、クライアントは ( AEEQoSSessionError インデックス値に従い) QoS セッションリスト内の該当する QoS セッションを参照して、 SFBQoSSession_GetError() をコールし、QoS 仕様エラーに関する詳細情報を取得することができます。

AEEQoSSessionError メンバが適用されない場合、そのインデックスは AEE_QOS_SESSION_ERR_INDEX_UNSPEC とマークされます。

参照

BREW API IQoSBundle_GetError


SFBQoSBundle::GoActive
複数の QoS リンクをアクティブにします。
[ public ]
SFCError GoActive(
    SFBQoSListSmpConstRef sessions   // アクティブにする有効な QoS セッションのリスト。
);

戻り値

  • AEE_SUCCESS: 要求が正常に発行された。これは、すべての QoS セッションが使用可能になったことは意味しない。
  • AEE_EBADPARM: QoS セッションリストが無効。
  • AEE_NET_EQOS_NET_CONFLICT: QoS セッションのネットワーク間に競合。
  • AEE_NET_EQOS_SESSION_INVALID_OPT: リスト内の 1 つ以上の QoS セッションが無効、または Activate 操作の正常終了を妨げた (たとえば、QoSSession の状態がこの操作に対して適切でない)。 IQoSBundle_GetError() を使用して、失敗の原因となったリスト内の最初の QoS セッションへのインデックスを識別し、エラーコードを取得すること ( AEEQoSSessionError を参照)。
  • AEE_NET_EQOSUNAWARE: 現在のネットワークが CDMA QoS 非認識システム (QoS をサポートしない)。
  • AEE_ENOMEMORY: メモリー不足。

他のエラーコードが戻ることもある。

解説

要求できる QoS セッションの数には制限があり、 MAX_UINT8 を超えてはなりません。

アクティブになるように要求した QoS セッションはすべて同じネットワークにリンクされている必要があり、そうでない場合は操作に失敗し、QoS セッションインスタンスはどれもアクティブになりません。

さらに、アクティブになるように要求した QoS セッションはすべてアクティブになることが可能な状態になければならず、そうでない場合は操作に失敗し、QoS セッションインスタンスはどれもアクティブになりません。

AEE_SUCCESS の戻り値は、要求が正常に発行されたことを示しますが、QoS がアクティブになったことは示さないので注意してください。SFBQoSBundle::GoActive() が AEE_SUCCESSを返した後、クライアントは、QoS がアクティブになったことを示す QoS イベント (AEE_QOS_AVAILABLE_MODIFIED_EV) の発生を、各 QoS セッションについて個別にリッスンする必要があります ( SFBQoSSession::AddListener() を参照)。

SFBQoSBundle::GoActive() をコールした後、QoS バンドルオブジェクトを、任意の SFBQoSSession オブジェクトのバンドルで他の複数セッションの操作に再使用することができます。

参照

BREW API IQoSBundle_GoActive


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

SFBQoSBundle::Open
同じデータネットワークにリンクされた、新しい複数の QoS セッションの確立要求を発行します。要求は、新しい QoS リンクを確立するために下層へ転送されます。
[ public ]
SFCError Open(
    SFBQoSListSmpConstRef sessions   // 要求した QoS セッションのリスト
    SFBQoSListSmpConstRef specs      // 新しいセッションに希望する QoS 仕様のリスト
);

戻り値

  • AEE_SUCCESS: 要求が正常に発行された。これは、すべての QoS セッションが使用可能になったことは意味しない。
  • AEE_NET_WOULDBLOCK: 今は操作を完了できない。 SFBQoSBundle::AddRetryCB() を使用して後で再試行すること。
  • AEE_EBADPARM: QoS セッションリストか QoS 仕様リストが無効、またはリストが同じ長さでない。
  • AEE_NET_EQOS_SESSION_INVALID_OPT: リスト内の 1 つ以上の QoS セッションが無効、または Open 操作の正常終了を妨げた (たとえば、QoSSession の状態がこの操作に対して適切でない、QoSSession のネットワークが QoS バンドルのネットワークに一致しない、QoS 仕様が無効など)。 SFBQoSBundle::GetError() を使用して、失敗の原因となったリスト内の最初の QoS セッションへのインデックスを識別し、エラーコードを取得すること ( AEEQoSSessionError を参照)。
  • AEE_NET_EQOSUNAWARE: 現在のネットワークが CDMA QoS 非認識システム (QoS をサポートしない)。
  • AEE_ENOMEMORY: メモリー不足。

他のエラーコードが戻ることもある。

解説

要求できる QoS セッションの数には制限があり、 MAX_UINT8 を超えてはなりません。

QoS バンドルのネットワークが、バンドル内のすべての QoS セッションのデータネットワークとして使用されます。要求したバンドル内の各QoS セッションは、バンドルのネットワークと同じネットワークを指定するか、ネットワークを全く指定しないかのいずれかでなければなりません。それ以外のどの場合も操作に失敗し、QoS セッションは確立されません。

AEE_SUCCESS Open 要求の後、バンドル内のすべての QoS セッションがバンドルと同じネットワークに関連付けられます。

SFBQoSBundle インスタンス ( SFBQoSBundle::SelectNetworkEx()) 用にネットワークがまだ選択されていない場合、AEE_NETWORK_DEFAULT が暗黙に選択されます。

AEE_SUCCESS の戻り値は、要求が正常に発行されたことを示しますが、すべての QoS セッションが使用可能になったことは示さないので注意してください。SFBQoSBundle::Open() が AEE_SUCCESSを返した後、クライアントは、操作の成功を示す QoS イベント (AEE_QOS_AVAILABLE_MODIFIED_EV) の発生を、各 QoS セッションについて個別にリッスンする必要があります ( SFBQoSSession::AddListener() を参照)。

また、AEE_NET_WOULDBLOCK 戻り値の発生にも注意が必要です。これは、ネットワーク接続 (PPP リンクなど) を確立する必要がある場合にのみ発生します。その場合は、最終端果(エラーまたは成功)を取得するために、SFBQoSBundle::Open() を再コールする必要があります。SFBQoSBundle::Open() をいつ再コールするかの通知を受けるため、クライアントは SFBQoSBundle::AddRetryCB() を介してコールバックを登録する必要があります。クライアントのコールバックが再開したとき、続いてコールするSFBQoSBundle::Open() が完了するという保証はないので、クライアントは AEE_NET_WOULDBLOCK を再度受け取る準備をしておく必要があります。

SFBQoSBundle::Open() をコールした後、QoS バンドルオブジェクトを、任意の SFBQoSSession オブジェクトのバンドルで他の複数セッションの操作に再使用することができます。

参照

BREW API IQoSBundle_Open


SFBQoSBundle::SelectNetworkEx
QoS バンドルに関連付ける特定のデータネットワークを選択します。
[ public ]
SFCError SelectNetworkEx(
    SInt32 network   // データネットワークタイプ (AEE_NETWORK_*)
    SInt16 family    // アドレスファミリ (AEE_AF_*)
);

戻り値

  • AEE_SUCCESS: データネットワークが選択された。
  • AEE_NET_EINVAL: ネットワークが有効でない。
  • AEE_EBADSTATE: 現在、この操作は適用できない。
  • AEE_EFAILED: その他の失敗。

他のエラーコードが戻ることもある。

解説

各 QoS セッションが 1 つのデータネットワークに関連付けられます。SFBQoSBundle::SelectNetworkEx() は QoS セッションのデータネットワークを変更しません。

SFBQoSBundle::Open() の後、バンドル内の各QoS セッションは、バンドルに選択されたネットワークと同じデータネットワークに関連付けられるか、ネットワークを全く指定しないかのいずれかでなければなりません。それ以外の場合、Open 要求は失敗します。

SFBQoSBundle インスタンスの作成時にネットワークは選択されません。SFBQoSBundle::SelectNetworkEx() の前に SFBQoSBundle::Open() をコールした場合は、AEE_NETWORK_DEFAULT が暗黙に選択されます。

SFBQoSBundle インスタンスは再使用可能であるため、クライアントは同じバンドルインスタンスに対して SFBQoSBundle::SelectNetworkEx() を複数回コールできます。

参照

BREW API IQoSBundle_SelectNetworkEx