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
)

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
)

ShutdownTransfer

void ShutdownTransfer(
  BDXTransfer *aXfer
)

关停给定的传输对象并将其返回到池。

这只是遵循 BDXTransfer::Shutdown()

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