- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ACE Service Configurator框架
ACE Service Configurator 框架 概述 ACE Service Configurator 框架是Component Configurator 模式的一种实现。使用它可 以在运行时动态地配置服务和流,无论它们是动态地链接进你的程序的,还是其对象是从共 享库中动态加载的。你既可以配置服务(对象),也可以配置流(基于配置文件而非在编译 时装配模块)。 配置静态服务 静态服务是代码已经链接进可执行的服务。ACE Service Configurator 使我们能把服务 构建成静态链接的、可配置的服务:将所有代码都链接进可执行程序中,但是在框架显式地 激活服务之前,服务不会实例化或者激活。配置静态服务牺牲了一定的灵活性换取更好的安 全性。对于某些服务来说――它们必须只含有受信任的、静态链接的服务(代码)――这是 非常有用的。激活静态服务可以从代码中设置激活方法,也可以在配置文件中进行配置。服 务要求被设计成为一个ACE_Service_Object 的子类。我们将会实现一个最简单地服务:它 什么都不做,除了在激活、挂起、恢复、移除时打印出一行消息。 class MyStaticObj : public ACE_Service_Object { public: MyStaticObj(ACE_Reactor *r = ACE_Reactor::instance()):ACE_Service_Object(r) {;} virtual ~MyStaticObj(){;} //初始化。服务激活时调用。若返回-1 表示出错,此时服务会被移除。 virtual int init (int argc, ACE_TCHAR *argv[]) { printf(MyStaticObj::init\n); return 0; } //服务结束。移除时 virtual int fini() { printf(MyStaticObj::fini\n); return 0; } virtual int suspend() { printf(MyStaticObj::suspend\n); return 0; } virtual int resume() { printf(MyStaticObj::resume\n); return 0; } }; ACE_FACTORY_DEFINE (ACE_Local_Service, MyStaticObj) ACE_STATIC_SVC_DEFINE ( MyStaticObj-Discriptor, ACE_TEXT (MyStaticObj), ACE_SVC_OBJ_T, ACE_SVC_NAME (MyStaticObj), ACE_Service_Type::DELETE_THIS|ACE_Service_Type::DELETE_OBJ, 0 // This object is not initially active.) ACE_STATIC_SVC_REQUIRE (MyStaticObj-Discriptor) 说明 后面三行是ACE Service Configurator 设计的一些宏。ACE 把已知的、可配置的静态服 务放在一个内部仓库中。每个静态服务都必须用ACE 提供的一些宏把一些薄记信息插入这个 仓库。这样框架就能实例化一个MyStaticObj 对象,以在服务激活时执行服务。 ACE_FACTORY_DEFINE (CLS,SERVICE_CLASS) 它生成不依赖于编译器的工厂方法,并且一致地管理动态内存 CLS 是我们的程序/库用来导入/导出声明的标识符,如果服
文档评论(0)