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(
  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
)

is_initialized ()

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
如果 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
)

关闭转移作业

void ShutdownTransfer(
  BDXTransfer *aXfer
)

关停指定的转移作业对象并将其返回到池。

这直接遵循 BDXTransfer::Shutdown()

详细信息
参数
[in] aXfer
要关闭的 BDXTransfer