ACE的源码划分和library subsetting

本文介绍了如何对ACE的源码进行重新组织,以降低学习难度。作者参照ACE官方文档,特别是ACE-subsets.html和ACE-categories.html,对ACE的代码进行了功能分类,如ACE_OS、ACE_Connection、ACE_Demux等,并分享了自己的源码划分方法。同时,讨论了如何通过修改Makefile实现library subsetting,生成OS、Thread等子库。尽管这种方法可能不完全准确,但对于初学者理解和整理ACE代码有一定帮助。
摘要由CSDN通过智能技术生成

前几篇文章也提到过,ACE的所有源文件和头文件都杂乱堆在了ACE_wrappers/ace目录下。这样的代码组织方式给学习ACE带来了很大的困难,很多朋友在看到ace目录下庞大的代码的时候,几乎就失去了学习ACE的信心^_^。因此,我们有必要对ACE的代码进行重新组织,以降低学习曲线。下面,我将给出我对ACE源码的划分方法。其实,我也是刚学习ACE没有多久,对ACE的了解还甚少,所以,我的源码划方式法不一定十分正确,这里共享出来,仅供大家参考。

其实,在ACE的帮助文档里,ACE-subsets.html和ACE-categories.html,这两个文档对指导ACE的源码划分起到了很大的作用,否则,我刚刚接触ACE,就想对其进行源码划分,是不可能完成的。ACE-subsets.html,这个文档主要介绍了ACE的library subsetting。正常情况下,在编译完ACE后,只会产生一个ACE的库。我们可以根据该文档的介绍,简单的修改一下Makefile,就可以对ACE的库进行子集化,我们可以编译出OS、Thread等这样的子库。ACE-categories.html,这个文档对ACE中的代码进行了一些功能上的分类。具体大家可以详细的参考一下这两个文档,这两个文档对学习ACE还是有一定的帮助的。

在ACE的源代码目录ace下,我将建立很多子目录,来对ACE的代码进行按功能分类:


ACE_OS:该目录里包含的代码是OS的API的wrapper,也就是ACE的OS适配层;
 包含代码: ARGV.cpp         OS_Memory.cpp
  Argv_Type_Converter.cpp    OS_QoS.cpp
  Base_Thread_Adapter.cpp    OS_String.cpp
  Basic_Types.cpp            OS_TLI.cpp
  Copy_Disabled.cpp          OS_Thread_Adapter.cpp
  Env_Value_T.cpp            Sched_Params.cpp
  Handle_Set.cpp        Template_Instantiations.cpp
  Makefile                   Thread_Hook.cpp
  OS.cpp                     Time_Value.cpp
  OS_Dirent.cpp                
  OS_Errno.cpp                 
  OS_Log_Msg_Attributes.cpp

ACE_Codec:该目录包含的是ACE的各种编码类型的处理代码,目前只包含了BASE64编码的处理;
    包含代码:Codecs.cpp   Makefile


ACE_Connection:该目录包含的是ACE中的Acceptor-Connector框架代码和异步通讯类代码;
  包含代码:Acceptor.cpp           Connector.cpp
   Asynch_Acceptor.cpp             Makefile
   Asynch_Connector.cpp        POSIX_Asynch_IO.cpp
   Asynch_IO.cpp                   Strategies_T.cpp
   Asynch_IO_Impl.cpp              Svc_Handler.cpp
   Asynch_Pseudo_Task.cpp      WIN32_Asynch_IO.cpp
   Cached_Connect_Strategy_T.cpp  
   Caching_Strategies_T.cpp       

ACE_Demux:该目录包含的是ACE中的Reactor和Proactor框架代码;
    包含代码:Dev_Poll_Reactor.cpp     Priority_Reactor.cpp      TP_Reactor.cpp        Event_Handler.cpp         Proactor.cpp              TkReactor.cpp
  Event_Handler_T.cpp       QtReactor.cpp             WFMO_Reactor.cp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值