WEB开发网
开发学院软件开发Java 构建基于 CDT 的编辑器,第 1 部分: C/C++ 开发工具... 阅读

构建基于 CDT 的编辑器,第 1 部分: C/C++ 开发工具模型

 2009-12-19 00:00:00 来源:WEB开发网   
核心提示: 图 2. CDT 工作空间结构ITranslationUnitITranslationUnit 代表了单个 C/C++ 代码文件,是 CDT 模块中最重要的元素,构建基于 CDT 的编辑器,第 1 部分: C/C++ 开发工具模型(3),每一个单元都包含了代表源代码文件不同方面的子文件,如 I


图 2. CDT 工作空间结构
构建基于 CDT 的编辑器,第 1 部分:  C/C++ 开发工具模型

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。

上一页  1 2 3 4 5 6 7  下一页

Tags:构建 基于 CDT

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接