OpneOffice--C++ 语言绑定

来源:互联网 发布:路由器桥接网络不稳定 编辑:程序博客网 时间:2024/06/05 16:06
   
UNO 语言绑定是UNO 映射到各种编程语言或组件模型。此语言绑定有时称为 UNO 运行时环境 (URE)
 
C++ 语言绑定
程序库概述
所有UNO程序库的基础是sal程序库.sal程序库包含系统抽象层(sal)和附加的运行时库功能,但不包含任何UNO特有的信息.可以通过C++内联包装类访问sal程序库中的常用C函数.这样就可以从任何其他编程语言调用函数,因为多数编程语言都具有某种调用C函数的机制.
 Salhelper程序库是一个小型C++程序库,提供无法通过内联方式实现的附加运行时库功能.
cppu (C++ UNO) 程序库是核心 UNO 程序库。它提供访问 UNO 类型库的方法,并允许以普通方式建立、复制和比较 UNO 数据类型的值。另外,还在此库中管理所有 UNO 桥(= 映射 + 环境)。
cppuhelper 程序库是一个 C++ 程序库,包含 UNO 对象的重要基类以及用于引导 UNO 核心的函数。C++ 组件和 UNO 程序必须链接 cppuhelper 程序库。
 
系统抽象层
C++ UNO 客户机程序和 C++ UNO 组件在类型、文件、线程、进程间通信和字符串处理中使用系统抽象层 (sal)sal 程序库将与操作系统相关的功能作为 C 函数进行提供。目的是最大限度地减少或消除 sal 上面的程序库中与操作系统相关的 #ifdefsal 提供高性能访问,因为 sal 是每个操作系统提供的位于 API 之上的一个薄层。
 
文件访问
下面列出的类管理与平台无关的文件访问。它们属于内部调用相应 C 函数的 C++ 类。
osl::FileBase
osl::VolumeInfo
osl::FileStatus
osl::File
osl::DirectoryItem
osl::Directory
 
线程安全的引用计数
全局 C++ 命名空间中的函数 osl_incrementInterlockedCount() osl_decrementInterlockedCount() 以线程安全方式增加和减少一个 4 字节计数器。引用计数的对象需要此计数器。许多 UNO API 通过引用计数控制对象的生存期。由于并行递增的同一计数器不会可靠地增加引用计数,因此应该使用这些函数。对于大多数平台来说,这比使用互斥体快。
 
线程和线程同步
osl::Thread 可用作您自己线程的基类。改写 run() 方法。
下面的类是常用的同步基元:
osl::Mutex
osl::Condition
osl::Semaphore
 
套接字和管道
下面的类使您可通过一种与平台无关的方式使用进程间通信:
osl::Socket
osl::Pipe