功能及约束说明

功能说明

本章提供的接口用于实现Device侧的数据队列和数据转发功能,用户可以结合本章的队列管理和共享Buffer机制以实现数据驱动编程。

数据队列通过授权的方式支持多进程之间共享。数据队列的权限管理遵循“谁创建,谁管理”原则,即只有创建数据队列的属主进程有权限给其它进程授予访问权限,也只有属主进程能管理数据队列转发的路由关系。被授权进程可以根据被授予的权限进行Enqueue(指向队列中添加数据)或Dequeue(指从队列中获取数据)。

约束说明

队列只允许单个消费者或单个生产者操作,Enqueue(指向队列中添加数据)或Dequeue(指从队列中获取数据)时应单线程操作,不支持并发。

多进程之间共享数据队列场景下,授权须遵从“一主多从”,即一个主进程、多个从进程,主进程中可以调用acltdtGrantQueue接口给其它进程授权,从进程就是被授权的进程,在从进程中需调用acltdtAttachQueue接口确认被授权。

关于授权存在以下约束:

  1. 主进程可以授予多个从进程队列相关的权限,例如Enqueue(指向队列中添加数据)权限、Dequeue(指从队列中获取数据)权限等;
  2. 不支持两个主进程向同一个从进程授权;
  3. 从进程不支持调用acltdtGrantQueue接口向其它进程授权;
  4. 主进程不能被其它进程授权,因此也不能调用acltdtAttachQueue接口;
  5. 从进程应首先调用acltdtAttachQueue完成主从关系确认之后才可以创建本进程自己专用的Queue
图1 授权约束