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
对要开始转移的节点的绑定。它用于为此转移作业创建关联的 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
如果没有准备好绑定

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