nl::Weave::Profiles::BDX_Development::BdxNode

概要

コンストラクタとデストラクタ

BdxNode(void)
すべてのメンバーを NULL に設定するデフォルトのコンストラクタ。

パブリック関数

AllowBdxTransferToRun(bool aEnable)
void
BDX サーバーを完全にシャットダウンして再起動することなく有効/無効にするために使用します。
AwaitBdxReceiveInit(ReceiveInitHandler aReceiveInitHandler)
AwaitBdxSendInit(SendInitHandler aSendInitHandler)
CanBdxTransferRun(void)
bool
この時点で BDX サーバーが転送を開始できる場合は true、それ以外の場合は false を返します。
Init(WeaveExchangeManager *anExchangeMgr)
すべての転送をデフォルトの状態にして使用できるようにし、WeaveExchangeManager とその他の必要な Weave リソースを保存して、allowBdxTransferToRun(true) を設定します。
InitBdxReceive(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, ReferencedTLVData *aMetaData)
InitBdxSend(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, ReferencedTLVData *aMetaData)
InitBdxSend(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, SendInit::MetaDataTLVWriteCallback aMetaDataWriteCallback, void *aMetaDataAppState)
IsInitialized(void)
bool
この BdxNode がすでに初期化されている場合、true を返します。
NewTransfer(Binding *aBinding, BDXHandlers aBDXHandlers, ReferencedString & aFileDesignator, void *anAppState, BDXTransfer *& aXfer)
可能であれば、転送プールから新しい BDXTransfer を取得して設定します。それ以外の場合は NULL に設定して、エラーを返します。
NewTransfer(WeaveConnection *aCon, BDXHandlers aBDXHandlers, ReferencedString & aFileDesignator, void *anAppState, BDXTransfer *& aXfer)
可能であれば、転送プールから新しい BDXTransfer を取得して設定します。それ以外の場合は NULL に設定して、エラーを返します。
Shutdown(void)
すべての転送をシャットダウンし、Weave リソースをすべて解放します(現在は mExchangeMgr が NULL に設定されています)。

静的パブリック関数

HandleReceiveInit(ExchangeContext *anEc, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aWeaveMsgInfo, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
void
HandleSendInit(ExchangeContext *anEc, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aWeaveMsgInfo, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
void
ShutdownTransfer(BDXTransfer *aXfer)
void
指定された転送オブジェクトをシャットダウンし、プールに戻します。

パブリック関数

AllowBdxTransferToRun

void AllowBdxTransferToRun(
  bool aEnable
)

BDX サーバーを完全にシャットダウンして再起動することなく有効/無効にするために使用します。

詳細
パラメータ
[in] aEnable
有効(true)または無効(false)

AwaitBdxReceiveInit

WEAVE_ERROR AwaitBdxReceiveInit(
  ReceiveInitHandler aReceiveInitHandler
)

AwaitBdxSendInit

WEAVE_ERROR AwaitBdxSendInit(
  SendInitHandler aSendInitHandler
)

BdxNode

 BdxNode(
  void
)

すべてのメンバーを NULL に設定するデフォルトのコンストラクタ。

少なくとも init() を呼び出すまでは、サーバーに対して何かを試行しないでください。

CanBdxTransferRun

bool CanBdxTransferRun(
  void
)

この時点で BDX サーバーが転送を開始できる場合は true、それ以外の場合は false を返します。

詳細
戻り値
BDX 転送が許可されている場合は true、そうでない場合は false

init

WEAVE_ERROR Init(
  WeaveExchangeManager *anExchangeMgr
)

すべての転送をデフォルトの状態にして使用できるようにし、WeaveExchangeManager とその他の必要な Weave リソースを保存して、allowBdxTransferToRun(true) を設定します。

詳細
パラメータ
[in] anExchangeMgr
この一括移管操作に使用するエクスチェンジ マネージャー。
戻り値
WEAVE_NO_ERROR
成功した場合
WEAVE_ERROR_INCORRECT_STATE
mExchangeMgr が null でない場合、すでに初期化されています

InitBdxReceive

WEAVE_ERROR InitBdxReceive(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  ReferencedTLVData *aMetaData
)

InitBdxSend

WEAVE_ERROR InitBdxSend(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  ReferencedTLVData *aMetaData
)

InitBdxSend

WEAVE_ERROR InitBdxSend(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  SendInit::MetaDataTLVWriteCallback aMetaDataWriteCallback,
  void *aMetaDataAppState
)

IsInitialized

bool IsInitialized(
  void
)

この BdxNode がすでに初期化されている場合、true を返します。

詳細
戻り値
このオブジェクトが初期化されている場合は true

NewTransfer

WEAVE_ERROR NewTransfer(
  Binding *aBinding,
  BDXHandlers aBDXHandlers,
  ReferencedString & aFileDesignator,
  void *anAppState,
  BDXTransfer *& aXfer
)

可能であれば、転送プールから新しい BDXTransfer を取得して設定します。それ以外の場合は NULL に設定して、エラーを返します。

詳細
パラメータ
[in] aBinding
転送を開始するノードへの Binding。この転送に関連する ExchangeContext を作成するために使用されます。
[in] aBDXHandlers
転送中に呼び出される BDX コールバック ハンドラの構造
[in] aFileDesignator
転送されるファイルのファイル指定子。
[in] anAppState
ユーザー アプリケーションと関連するコールバックで使用するために BDXTransfer にアタッチされるアプリケーション固有の状態オブジェクト。
[in] aXfer
新しい BDXTransfer オブジェクトを参照する、参照可能なポインタ。利用可能な場合は NULL を返します。
戻り値
WEAVE_NO_ERROR
新しい BDXTransfer が正常に検出された場合。
WEAVE_ERROR_NO_MEMORY
ExchangeContext を作成できない場合
WEAVE_ERROR_TOO_MANY_CONNECTIONS
現在アクティブな転送が多すぎる場合、aXfer が NULL の場合
WEAVE_ERROR_INCORRECT_STATE
aBinding が準備されていない場合

NewTransfer

WEAVE_ERROR NewTransfer(
  WeaveConnection *aCon,
  BDXHandlers aBDXHandlers,
  ReferencedString & aFileDesignator,
  void *anAppState,
  BDXTransfer *& aXfer
)

可能であれば、転送プールから新しい BDXTransfer を取得して設定します。それ以外の場合は NULL に設定して、エラーを返します。

詳細
パラメータ
[in] aCon
転送を開始するノードへの WeaveConnection。この転送に関連する ExchangeContext を作成するために使用されます。
[in] aBDXHandlers
転送中に呼び出される BDX コールバック ハンドラの構造
[in] aFileDesignator
転送されるファイルのファイル指定子。
[in] anAppState
ユーザー アプリケーションと関連するコールバックで使用するために BDXTransfer にアタッチされるアプリケーション固有の状態オブジェクト。
[in] aXfer
新しい BDXTransfer オブジェクトを参照する、参照可能なポインタ。利用可能な場合は NULL を返します。
戻り値
WEAVE_NO_ERROR
新しい BDXTransfer が正常に検出された場合。
WEAVE_ERROR_NO_MEMORY
ExchangeContext を作成できない場合
WEAVE_ERROR_TOO_MANY_CONNECTIONS
現在アクティブな転送が多すぎる場合、aXfer が NULL の場合
WEAVE_ERROR_INCORRECT_STATE
mExchangeMgr がまだ設定されていない場合、または aCon が正常に接続されていない場合

シャットダウン

WEAVE_ERROR Shutdown(
  void
)

すべての転送をシャットダウンし、Weave リソースをすべて解放します(現在は mExchangeMgr が NULL に設定されています)。

AllowBdxTransferToRun(false) を設定し、現在のコールバック(SendInitHandler など)を切断します。

詳細
戻り値
正常にシャットダウンされた場合は WEAVE_NO_ERROR、AwaitBdxSend/ReceiveInit がエラーが返された場合はその他のエラー

静的パブリック関数

HandleReceiveInit

void HandleReceiveInit(
  ExchangeContext *anEc,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aWeaveMsgInfo,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

HandleSendInit

void HandleSendInit(
  ExchangeContext *anEc,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aWeaveMsgInfo,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

ShutdownTransfer

void ShutdownTransfer(
  BDXTransfer *aXfer
)

指定された転送オブジェクトをシャットダウンし、プールに戻します。

これは単に BDXTransfer::Shutdown() に従います。

詳細
パラメータ
[in] aXfer
シャットダウンする BDXTransfer