TransferSync
产品支持情况
产品 |
是否支持 |
---|---|
|
√ |
|
√ |
|
x |
|
x |
|
x |
|
x |
函数功能
与远端AdxlEngine进行内存传输。
函数原型
1 2 3 4 |
Status TransferSync(const AscendString &remote_engine, TransferOp operation, const std::vector<TransferOpDesc> &op_descs, int32_t timeout_in_millis = 1000) |
参数说明
参数名称 |
输入/输出 |
取值说明 |
---|---|---|
remote_engine |
输入 |
远端AdxlEngine的唯一标识。 |
operation |
输入 |
将远端内存读到本地或者将本地内存写到远端。 |
op_descs |
输入 |
批量操作的本地以及远端地址。 |
timeout_in_millis |
输入 |
断链的超时时间,单位:ms,默认值:1000。 |
返回值
- SUCCESS:成功
- PARAM_INVALID:参数错误
- NOT_CONNECTED:没有与对端创建链接
- TIMEOUT:传输超时
- 其他:失败
约束说明
- 调用该接口之前,需要先调用Connect接口完成与对端的建链。
- 该接口需要和Initialize运行在同一个线程上,如需切换线程调用该接口,需要在Initialize所在线程调用“aclrtGetCurrentContext”获取context,并在新线程调用“aclrtSetCurrentContext”设置context。
- 系统默认开启中转内存池,如果op_desc内包含<256K的,则默认使用中转传输模式来提升性能,否则会通过判断是否有未注册的内存来决定走中转还是直传;
- 在开启中转内存池情况下,op_desc中本地内存和远端内存有一个未注册就会判断为需要走中转传输模式,且没有注册过的内存判断为Host内存,用户需保证地址合法;
- 在中转传输模式下,所有op_desc的传输类型需要相同,举例:所有的op_desc都是本地Host内存往远端Host内存写;
父主题: ADXL接口