CommonAPI

关于CommonAPI 使用说明

    程序员在开发中常用到进程间通讯,进程间通讯方式有很多种,如管道、信号量、FIFO、共享内存区,还有今天想说的CommonAPI进程间通信。
   CommonAPI C ++是用于进程间和网络通信的C ++框架。 基本目标不是提供用于进程间或网络通信(IPC)的新机制,而是定义可用于不同机制的高级C ++ API。 对于C ++开发人员而言,好处是应避免使用专有或鲜为人知的通信框架或协议的细节。
   CommonAPI C++依靠FrancaIDL来描述静态接口,根据通信协议部署参数,一起组建完整的实例依赖关系模型。目的是封装通信协议和相邻的中间件,使应用程序的C++接口独立于底层IPC堆栈。也就是IPC Common API允许针对开发的应用程序(即使用C++的客户端和服务器)可以与不同的IPC后端链接(someip,或D-Bus),而无需更改应用程序代码。因此,为使用特定IPC X(例如someip)的系统开发的组件可以轻松地部署到另一个使用IPC Y(例如D-Bus)的系统,只需要交换IPC Common API后端(someip或D-Bus),而无需重新编译应用程序代码。实际的接口定义将使用Franca IDL创建(*.fild文件)。而各项部署根据部署文件定义(*.fdepl文件)。

CommonAPI_第1张图片
CommonAPI C++分为独立于中间件的部分(CommonAPI Core,仅仅指CommonAPI接口)和特定于中间件的部分(CommonAPI Binding,用于选择使用的IPC协议的代码)。
CommonAPI将接口描述语言Franca IDL用于接口规范(逻辑接口规范,.fidl文件)。Franca IDL的代码生成的是CommonAPI的组合部分。主要指逻辑接口的变量部分,那是接口的一部分,它取决于Franca IDL文件中的规范(数据类型,数组,枚举和就基础知识,包括属性,方法,回调,错误处理,广播)。
CommonAPI C++ binding的代码生成器需要特定于中间件的参数(部署参数,例如String数据类型的编码/解码格式)。这些参数在Franca部署文件(
.fdepl)中定义。主要独立于接口规范。
CommonAPI的用户API分为两部分:
基于FrancaIDL的生成部分,其中包含与FrancaIDL文件的类型,属性和方法有关的API函数。也就是根据*.fidl文件生成的API函数。
“公共”部分(Runtime API),其中包含用于加载运行时环境,创建proxy等的API函数。也就是根据*.fidl文件与*.fdepl文件生成的代码中所包含的头文件所链接的库(CommonAPI lib files + CommonAPI someip/d-bus lib files)。
CommonAPI_第2张图片
用户API的绝大多数是CommonAPI的生成部分,CommonAPI Core和IPC堆栈之间没有直接关系,CommonAPI binding的生成代码具有CommonAPI其他部分的所有接口。
CommonAPI_第3张图片
应用程序开发人员的工作流程如下:
创建具有方法和属性的接口规范的FrancaIDL文件。通过启动CommonAPI代码生成器为客户端和服务端生成代码。通过实现所生成框架中的方法来实现服务;或设置为默认实现。在应用程序中通过创建proxy并使用proxy调用这些方法来实现客户端。

你可能感兴趣的:(c++)