构建基于 CDT 的编辑器,第 1 部分: C/C++ 开发工具模型
2009-12-19 00:00:00 来源:WEB开发网
图 2. CDT 工作空间结构
ITranslationUnit
ITranslationUnit 代表了单个 C/C++ 代码文件,是 CDT 模块中最重要的元素。每一个单元都包含了代表源代码文件不同方面的子文件,如 IInclude、IUsing 和 INamespace。(我将在后面讨论 CDT 解析时对 ITranslationUnit 结构进行更为详细的探讨。)
另外,每个 ITranslationUnit 持有单个的 IWorkingCopy,来管理未保存的代码修改。ITranslationUnit 和 IWorkingCopy 都将其内容存储到单独的 IBufferCache 实例中,该实例由一个 BufferManager 来分配,并像最近最少使用(LRU)算法缓存一样运行。文章包含了这个主题,但如果您对此感兴趣,可以浏览 org.dworks.bbcdt.internal.core.util 包。
信息对象
每个 ICModel、ICContainer、ICProject 和 ITranslationUnit 都有一个相应的信息对象(CModelInfo、CContainerInfo 等等)。这些信息对象包含了对其子元素的引用并提供对其子元素的访问。如果您想要一份 CModel 中 ICProject 的列表,需要调用 CModelInfo.getCProjects() 方法,此方法调用了 CModelInfo.getChildren() 方法。CDT 在元素首次打开时创建了一个信息对象,并在其关闭时对其进行资源清理。
CDT 模型的三个阶段
既然您已经了解了该模型的基本元素,那么,您还需要了解这些元素在 CDT 操作时是如何进行交互的。CDT 模型生命周期由三个重要步骤组成:初始创建、创建 CProject 以及在 CDT 编辑器中创建 TranslationUnit。
- ››基于JavaScript的网页版塔防游戏
- ››基于Android平台 QQ大战360手机游戏爆红
- ››构建Android平台Google Map应用
- ››基于Windows Azure的云计算应用设计
- ››构建WinForm 通用速选(全选、反选、清空)组件
- ››基于AES算法实现对数据的加密
- ››基于SoPC目标板Flash编程设计的创建及应用
- ››基于SolidWarks齿轮机构的运动分析与仿真
- ››基于Windwos Server 2008故障转移群
- ››基于JavaScript的REST客户端框架
- ››基于JavaScript和CSS的Web图表框架横向对比
- ››基于JQuery地区三级联动列表
更多精彩
赞助商链接