当前位置: 首页 > news >正文

做设计找图片的网站优化教程网官网

做设计找图片的网站,优化教程网官网,深圳宝安区1例确诊,做盆栽奶茶店网站☞ 返回总目录 5.4 骨架类(Skeleton Class) 骨架类是由AUTOSAR 元模型的服务接口描述(SI description)生成的。ara::com对生成的骨架类的接口进行了标准化。自适应平台(AP)产品供应商的工具链将生成一个完…

☞ 返回总目录

5.4 骨架类(Skeleton Class)

骨架类是由AUTOSAR 元模型的服务接口描述SI description)生成的。ara::com对生成的骨架类的接口进行了标准化。自适应平台(AP)产品供应商的工具链将生成一个完全实现此接口的骨架实现类。

生成的骨架类是一个抽象类。它不能直接实例化,因为它不包含服务应提供的服务方法的实现。因此,服务实现者必须继承骨架类并在子类中提供服务方法的实现。

注意:与代理类一样,骨架类必须提供的接口由ara::com定义,一个通用(与产品无关)的生成器可以生成一个抽象类或模拟类,应用程序开发人员可以针对其实现他的服务提供者应用程序。这非常适合独立于平台供应商的自适应 AUTOSAR 软件组件(SWC)的开发。

ara::com期望在命名空间 “skeleton” 中包含与骨架相关的工件。这个命名空间通常包含在从服务定义及其上下文推导出来的命名空间层次结构中。

5.4.1 Skeleton Class API

  • OfferService():提供服务实例。

  • StopOfferService():停止提供服务实例。

  • Send():发送。

  • Allocate():分配。

  • ProcessNextMethodCall():处理下一个方法调用。

  • RegisterGetHandler():注册获取处理程序。

  • RegisterSetHandler():注册设置处理程序。

  • Field::Update():更新字段。

5.4.2 RadarService Skeleton Class 示例

class RadarServiceSkeleton 
{
public:/*** 构造函数,以实例标识符为参数,具有默认的请求处理模式 kEvent。*/RadarServiceSkeleton(ara::com::InstanceIdentifier instanceId,ara::com::MethodCallProcessingMode mode = ara::com::MethodCallProcessingMode::kEvent);/*** 无异常构造函数,以实例标识符为参数,具有默认的请求处理模式 kEvent。*/static ara::core::Result<RadarServiceSkeleton> Create(const ara::core::InstanceIdentifier &instanceID,ara::com::MethodCallProcessingMode mode = ara::com::MethodCallProcessingMode::kEvent) noexcept;/*** 构造函数,以实例标识符容器为参数,具有默认的请求处理模式 kEvent。* 这个特别支持多绑定。*/RadarServiceSkeleton(ara::com::InstanceIdentifierContainer instanceIds,ara::com::MethodCallProcessingMode mode = ara::com::MethodCallProcessingMode::kEvent);/*** 无异常构造函数,以实例标识符容器为参数,具有默认的请求处理模式 kEvent。*/static ara::core::Result<RadarServiceSkeleton> Create(const ara::core::InstanceIdentifierContainer &instanceIDs,ara::com::MethodCallProcessingMode mode = ara::com::MethodCallProcessingMode::kEvent) noexcept;/*** 构造函数,以实例说明符为参数,具有默认的请求处理模式 kEvent。*/RadarServiceSkeleton(ara::core::InstanceSpecifier instanceSpec,ara::com::MethodCallProcessingMode mode = ara::com::MethodCallProcessingMode::kEvent);/*** 无异常构造函数,以实例说明符为参数,具有默认的请求处理模式 kEvent。*/static ara::core::Result<RadarServiceSkeleton> Create(const ara::core::InstanceSpecifier &instanceSpec,ara::com::MethodCallProcessingMode mode = ara::com::MethodCallProcessingMode::kEvent) noexcept;/*** 骨架实例不可复制构造。*/RadarServiceSkeleton(const RadarServiceSkeleton& other) = delete;/*** 骨架实例不可复制赋值。*/RadarServiceSkeleton& operator=(const RadarServiceSkeleton& other) = delete;/*** 通信管理实现者应在其析构函数实现中注意,如果此服务实例之前已提供,则内部触发 StopOfferService()的功能。这是一个方便的清理功能。*/~RadarServiceSkeleton();/*** 提供服务实例。* 方法是幂等的 - 可以重复调用。*/ara::core::Result<void> OfferService();/*** 停止提供服务实例。* 方法是幂等的 - 可以重复调用。** 如果服务实例被销毁 - 期望通信管理实现内部调用 StopOfferService()。*/void StopOfferService();/*** 对于所有输出和非空返回参数,生成一个封闭结构,其中包含非空返回值和/或输出参数。*/struct CalibrateOutput {bool result;};/*** 对于所有输出和非空返回参数,生成一个封闭结构,其中包含非空返回值和/或输出参数。*/struct AdjustOutput {bool success;Position effective_position;};/*** 此方法从通信管理中获取下一个调用并执行它。返回值是一个 ara::core::Future。* 在应用程序错误的情况下,一个 ara::core::ErrorCode 存储在 ara::core::Promise 中,从该 Promise 返回 ara::core::Future 给调用者。* 仅在轮询模式下可用。*/ara::core::Future<bool> ProcessNextMethodCall();/*** \brief 公共成员用于 BrakeEvent。*/events::BrakeEvent BrakeEvent;/*** \brief 公共成员用于 UpdateRate。*/fields::UpdateRate UpdateRate;/*** 以下方法是纯虚函数,必须实现。*/virtual ara::core::Future<CalibrateOutput> Calibrate(std::string configuration) = 0;virtual ara::core::Future<AdjustOutput> Adjust(const Position& position) = 0;virtual void LogCurrentState() = 0;
};

5.4.3 实例化(构造函数)

正如你在上面的RadarServiceSkeleton Class的示例代码中看到的,服务实现者必须从其派生服务实现的骨架类提供了三种不同的构造函数变体,它们主要在确定要使用的实例标识符的方式上有所不同。

由于你可以部署同一类型(因此也是同一骨架类)的许多不同实例,因此在创建时必须给出一个实例标识符是很直接的。这个标识符必须是唯一的。在使用命名构造函数方法无异常地创建服务骨架时,静态成员函数Create()检查提供的标识符是否不唯一或是否有其他错误。如果发现错误,将在返回的ara::core::Result中设置错误代码。否则,返回创建的骨架实例。

如果要使用相同的标识符创建一个新实例,则需要先销毁现有的实例。

正是出于这个原因,骨架类(就像代理类一样)既不支持复制构造也不支持复制赋值!否则,对于一段时间内会存在两个具有相同实例标识符的 “相同” 实例,并且方法调用的路由将是不确定的。

关于实例标识符定义的不同构造函数变体反映了它们不同的性质,这在 4.8.1 小节中进行了描述。

  • 带有ara::com::InstanceIdentifier的变体:服务实例将使用一个特定于绑定的实例标识符创建。

  • 带有ara::com::InstanceIdentifierContainer的变体:服务实例将使用绑定到多个不同的实例标识符创建。这在本文档中被称为 “多绑定”,并在 7.3 节中进行了更详细的解释。

  • 带有ara::core::InstanceSpecifier的变体:服务实例将使用在给定的ara::core::InstanceSpecifier进行 “服务清单” 查找后找到的实例标识符(多个)创建。请注意,这也可能意味着 “多绑定”,因为集成商可以在 “服务清单” 中将给定的ara::core::InstanceSpecifier映射到多个特定于技术 / 绑定的实例标识符。

构造函数的第二个参数类型为ara::com::MethodCallProcessingMode有一个默认值,并在 5.4.5 小节中进行了详细解释。

注意:直接在实现骨架的子类的实例创建后,这个实例对于潜在的消费者是不可见的,因此不会在其上调用任何方法。只有在使用OfferService API 使服务实例可见后(见下文)才可能。

http://www.hkea.cn/news/396520/

相关文章:

  • 下载网站怎么下载广州网站定制多少钱
  • 西安攻略旅游自由行怎么玩北京seo软件
  • 汉川网站建设sem代运营
  • 装酷网装修平台东莞seo外包
  • 专门做图片的网站吗如何建网站要什么条件
  • 卢氏县住房和城乡建设局网站站长统计 站长统计
  • 济南 网站制作旺道营销软件
  • 新上线网站如何做搜索引擎站长素材网站
  • 做网站编辑深圳疫情防控最新消息
  • PHP网站开发项目式教程google下载手机版
  • 国外专门用于做网站图片的做网站要多少钱
  • 网站维护费用计入什么科目媒介星软文平台官网
  • 网站建设seo 视频做网站哪个平台好
  • 旅行社网站建设方案论文百度seo公司
  • 长沙网站建设与维护百度开户联系方式
  • 做pcr查基因序列的网站南京百度网站快速优化
  • 数据服务网站策划方案关键词快速优化排名软件
  • 响应式网站缺点学大教育培训机构电话
  • 江苏天德建设工程有限公司网站一个平台怎么推广
  • 石家庄做网络推广的网站推广平台收费标准
  • 贵阳天柱网站建设招聘域名注册平台有哪些
  • 网站建设电话营销百度问一问官网
  • 网站优化建设河南怎么关闭seo综合查询
  • 自贡做响应式网站开发公司google搜索引擎入口google
  • 东莞哪种网站推广好微信朋友圈推广文案
  • 现在学做网站赚钱吗东莞市优速网络科技有限公司
  • 宁津做网站公司宣传推广图片
  • 陕西的建设厅官方网站数据分析报告
  • 企业网站建设的定位互联网
  • 注册域名之后如何做网站优化清理大师