|
ACE的源码划分和library subsetting(1)
前几篇文章也提到过,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编码的处理;
|