GetTransferStatus
产品支持情况
|
产品 |
是否支持 |
|---|---|
|
|
√ |
|
|
√ |
|
|
x |
|
|
x |
|
|
x |
说明:针对
函数功能
获取异步内存传输的状态。
函数原型
Status GetTransferStatus(const TransferReq &req, TransferStatus &status)
参数说明
|
参数名称 |
输入/输出 |
取值说明 |
|---|---|---|
|
req |
输入 |
请求的句柄,通过调用TransferAsync产生。 |
|
status |
输出 |
传输状态。枚举值如下。
|
调用示例
//初始化客户端和服务端engine,并完成链接 Status transfer_status = client_engine.TransferAsync(remote_engine, operation, op_descs, optional_args, req); //req是TransferAsync()的输出值,使用这个请求句柄进行传输状态查询 Status query_status = GetTransferStatus(req, status); //对传输状态进行检查,判断传输是否完成 ...
返回值
- SUCCESS:成功
- PARAM_INVALID:参数错误
- NOT_CONNECTED:没有与对端创建链接
- 其他:失败
约束说明
- 调用该接口之前,需要先调用Connect接口完成与对端的建链。
- 该接口需要和Initialize运行在同一个线程上,如需切换线程调用该接口,需要在Initialize所在线程调用“aclrtGetCurrentContext”获取context,并在新线程调用“aclrtSetCurrentContext”设置context。
- 在调用TransferAsync接口进行异步传输后,需要使用该接口进行对应请求状态的查询,如果查询状态是COMPLETED或者FAILED,将释放相关资源。该场景下不支持再次查询。
- 异步传输时,用户自行判断是否超时。如果用户判断任务超时,建议调用Disconnect销毁链路,清理相关资源。
- 异步传输任务失败后,调用该接口查询的状态和接口返回状态都是FAILED。
父主题: HIXL接口