Skip to main content

acltdtGrantQueue

acltdtUnbindQueueRoutes

函数功能

解绑定数据队列路由关系。同步接口。

函数原型

aclError acltdtUnbindQueueRoutes(acltdtQueueRouteList *qRouteList)

参数说明

参数名输入/输出说明
qRouteList输入/输出路由关系数组的指针,接口调用完成后返回路由去绑定结果。 可先通过acltdtQueryQueueRoutes获取路由关系数组。

返回值说明

返回0表示成功,返回其它值表示失败。

只有当所有队列关系解绑定成功,本接口才会返回成功;任何一条解绑定失败,本接口返回失败,如果您需要知道具体哪个路由关系解绑定失败,您可以先调用acltdtGetQueueRoute接口从路由关系数组中获取每一个路由关系,再调用acltdtGetQueueRouteParam接口查询绑定关系状态。

父主题: 共享队列管理

acltdtQueryQueueRoutes

函数功能

根据指定条件查询数据队列路由关系。同步接口。

函数原型

**aclError**acltdtQueryQueueRoutes(const acltdtQueueRouteQueryInfo *queryInfo, acltdtQueueRouteList *qRouteList)

参数说明

参数名输入/输出说明
queryInfo输入查询条件的指针。 需提前调用acltdtCreateQueueRouteQueryInfo接口创建acltdtQueueRouteQueryInfo类型的数据。
qRouteList输入&输出路由关系数组的指针。 需提前调用acltdtCreateQueueRouteList接口创建acltdtQueueRouteList类型的数据。

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: 共享队列管理

acltdtGrantQueue

函数功能

进程间需要共享队列信息时,可以调用本接口给其它进程授予队列相关的权限,例如Enqueue(指向队列中添加数据)权限、Dequeue(指从队列中获取数据)权限等。同步接口。

Atlas 200/500 A2推理产品,不支持该接口。

约束说明

进程间传递队列相关信息时,安全性由用户保证。

函数原型

aclError acltdtGrantQueue(uint32_t qid, int32_t pid, uint32_t permission, int32_t timeout)

参数说明

参数名输入/输出说明
qid输入队列ID。
pid输入被授权进程的ID。
permission输入权限标识(队列生产者/消费者)。 用户选择如下多个宏进行逻辑或(例如:ACL_TDT_QUEUE_PERMISSION_DEQUEUE | ACL_TDT_QUEUE_PERMISSION_ENQUEUE),作为permission参数值。每个宏表示某一权限,详细说明如下:
- ACL_TDT_QUEUE_PERMISSION_DEQUEUE:表示Dequeue权限。
- ACL_TDT_QUEUE_PERMISSION_ENQUEUE:表示Enqueue权限。
timeout输入等待超时时间,取值范围如下:
- -1:阻塞方式,一直等待直到数据成功加入队列。
- 0:非阻塞方式,立即返回。
- >0:配置具体的超时时间,单位为毫秒,等到到达超时时间后返回报错。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的超时时间为1ms,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: 共享队列管理

acltdtAttachQueue

函数功能

进程间需要共享队列信息时,在被授权的进程中调用本接口确认当前进程对队列有相应权限。同步接口。

Atlas 200/500 A2推理产品,不支持该接口。

函数原型

aclError acltdtAttachQueue(uint32_t qid, int32_t timeout, uint32_t *permission)

参数说明

参数名输入/输出说明
qid输入队列ID。
timeout输入等待超时时间,取值范围如下:
- -1:阻塞方式,一直等待直到数据成功加入队列。
- 0:非阻塞方式,立即返回。
- >0:配置具体的超时时间,单位为毫秒,等到到达超时时间后返回报错。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的超时时间为1ms,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。
permission输出权限标识。
- 根据输出参数值的倒数第二个bit位判断是否有从队列中获取数据的权限,0就是没有,1就是有。
- 根据输出参数值的倒数第三个bit位判断是否有向队列中添加数据的权限,0就是没有,1就是有。

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: 共享队列管理

acltdtAllocBuf

函数功能

申请共享Buffer内存。同步接口。

约束说明

  • 使用acltdtAllocBuf接口申请内存后,数据区的长度为size参数的大小,在用户还未填入有效数据前,该内存的有效数据长度初始值为0,可在用户向内存中填入有效数据后,再通过acltdtSetBufDataLen接口设置有效数据长度。
  • 使用acltdtAllocBuf接口申请的内存,需要通过acltdtFreeBuf接口释放内存。
  • 仅支持在Control CPU开放形态RC模式下使用该接口。

函数原型

aclError acltdtAllocBuf(size_t size, uint32_t type, acltdtBuf *buf)

参数说明

参数名输入/输出说明
size输入用于指定申请数据区大小,单位Byte,不能超过4G。
type输入共享Buffer内存类型,支持设置如下枚举值。
text<br>typedef enum &#123;<br> ACL_TDT_NORMAL_MEM = 0,<br> ACL_TDT_DVPP_MEM<br>&#125; acltdtAllocBufType;<br>
buf输出申请成功,输出共享Buffer指针。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用流程及示例,参见共享Buffer管理

父主题: 共享Buffer管理

在线提单