8. 公共约定

许多ODP API与参数和返回值类型共享常见的约定。本节重点介绍一些比较常见和常用的惯例。

8.1. 句柄和特殊指示器

ODP资源通过具有抽象类型 odp_resource_t 的句柄表示。 所以池有类型为 odp_pool_t 的句柄表示,队列由类型 odp_queue_t 表示等等。 每个这样的类型都有一个不同类型的 ODP_RESOURCE_INVALID 用于指示一个句柄没有合法引用资源。 资源通常通过 odp_resource_create() API来创建,该API返回一个代表创建对象的类型为 odp_resource_t 的句柄。 如果资源耗尽,则无法创建,此时返回的句柄为 ODP_RESOURCE_INVALID 。 无效资源并不一定代表错误逻辑。 例如,ODP_EVENT_INVALID响应于从队列中获取事件的 odp_queue_deq() 调用,知识表示队列为空。

8.2. 涉及范围

除非在API中特别注明,否则所有ODP资源都是ODP应用程序的全局资源,无论它是作为一个进程还是多个进程运行。 因此,ODP句柄在ODP应用程序中具有通用意义,但在应用程序范围之外没有任何意义。

8.3. 资源和名称

许多ODP资源对象(如池和队列)在创建时支持与ODP对象关联的应用程序指定的字符串名称。 此名称有两个目的:文档和查找。 查找功能对于允许分为多个进程的ODP应用程序来获取公共资源的句柄特别有用。