Lotus Notes/Domino C API 内存管理机制介绍
2008-01-16 14:33
411 查看
Lotus C API Toolkit 是 Notes/Domino 公布出来的一系列基于 Notes/Domino 的 API 编程接口和数据结构,用户可以用来开发自主应用程序来访问 Domino 的数据库,在 Domino 二次开发中被广泛的应用。Lotus C API 的内存管理机制是其核心内容之一,是开发高效实用的 Domino 应用程序的必备知识。
本文主要详细介绍了 Domino 数据库在内存中的存贮结构,以及 Lotus C API 提供的有关内存管理的常用数据结构和 API 接口,并通过实例说明如何遵循其内存管理机制进行高效实用的应用程序开发。
Domino 数据库模型
在介绍 Lotus C API 内存管理机制之前,首先来了解一下典型的 Domino 数据库的存贮模型(如图 1)。一个 Domino 的数据库由数据库的头信息和多个 note 数据结构组成。数据库头信息包括
如图 1 所示,Lotus C API Toolkit 使用了“容器”(container)模型来构造 Domino 的数据库存贮模型:一个 Domino 数据库可以包含多个 notes,每个 note 又包含多个 item,以此类推。关闭一个 container 对象的时候会自动地关闭和释放包含在该 container 内的所有对象。例如,如果你调用 Lotus C API 打开一个 database,并在该 database 中创建了一个 document,当关闭该 database 的时候,创建的 document 也会被关闭并释放其存贮空间。因此,特别注意的是,在关闭容器对象之前,一定要保存包含在该容器中的对象。此外,当调用 Lotus C API 函数
本文转自:IBM developerWorks 中国
请点击此处查看全文
本文主要详细介绍了 Domino 数据库在内存中的存贮结构,以及 Lotus C API 提供的有关内存管理的常用数据结构和 API 接口,并通过实例说明如何遵循其内存管理机制进行高效实用的应用程序开发。
Domino 数据库模型
在介绍 Lotus C API 内存管理机制之前,首先来了解一下典型的 Domino 数据库的存贮模型(如图 1)。一个 Domino 的数据库由数据库的头信息和多个 note 数据结构组成。数据库头信息包括
title,
categories,
class,
design class,
ID,
Replica info等,用于描述该数据库的相关属性。头信息之后是多个 note 数据结构。note 是 Domino/Notes 用来存贮和各种信息的通用数据结构。note 可以分为
design notes (forms, views, folders, navigators, outlines, pages, framesets, agents, and resources), data documents, profiles documents, access control list和
collections (indexes)。一个 note 又可以分为 note 头信息和多个 item。note 头信息包括
database handle,
note ID,
originator ID,
note class,
note flag等。note 中的 item 由多个属性,如
item name,
type,
length等,以及存贮的数据信息
content组成。
如图 1 所示,Lotus C API Toolkit 使用了“容器”(container)模型来构造 Domino 的数据库存贮模型:一个 Domino 数据库可以包含多个 notes,每个 note 又包含多个 item,以此类推。关闭一个 container 对象的时候会自动地关闭和释放包含在该 container 内的所有对象。例如,如果你调用 Lotus C API 打开一个 database,并在该 database 中创建了一个 document,当关闭该 database 的时候,创建的 document 也会被关闭并释放其存贮空间。因此,特别注意的是,在关闭容器对象之前,一定要保存包含在该容器中的对象。此外,当调用 Lotus C API 函数
NotesTerm结束一个 Notes session 时,所有在该 seesion 周期内分配的内存会全部释放。
本文转自:IBM developerWorks 中国
请点击此处查看全文
相关文章推荐
- 全面介绍Windows内存管理机制及C++内存分配实例(二):内存状态查询
- 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
- 全面介绍Windows内存管理机制及C++内存分配实例(六):堆栈
- 全面介绍Windows内存管理机制及C++内存分配实例
- 全面介绍Windows内存管理机制及C 内存分配实例(一):进程空间
- 全面介绍Windows内存管理机制及C++内存分配实例(一):进程空间
- 全面介绍Windows内存管理机制及C++内存分配实例(一):进程空间
- 全面介绍Windows内存管理机制及C++内存分配实例(五):堆
- 全面介绍Windows内存管理机制及C++内存分配实例(二):内存状态查询
- 全面介绍Windows内存管理机制及C++内存分配实例
- 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
- 性能指标之资源指标-内存-结合案例介绍JVM内存管理机制
- 全面介绍Windows内存管理机制及C++内存分配实例(二):内存状态查询
- 全面介绍Windows内存管理机制及C++内存分配实例(六):堆栈
- 全面介绍Windows内存管理机制及C++内存分配实例(三):虚拟内存
- 全面介绍Windows内存管理机制及C++内存分配实例
- 全面介绍Windows内存管理机制及C++内存分配实例(一):进程空间 zz
- 全面介绍Windows内存管理机制及C++内存分配实例
- 全面介绍Windows内存管理机制及C++内存分配实例
- 全面介绍Windows内存管理机制及C++内存分配实例(三):虚拟内存