分类:
2008-01-23 17:36:19
苹果开发人员技术文档
通知服务
Notification Services CFNotificationCenter 一种实现分布式通知的机制,它允许一个进程发送消息(通知)给同一台机器上的另外一个进程。
插件服务
Plug-in Services CFPlugIn 为Mac OS X应用程序(和Mac OS 9应用程序)提供了一种标准插件体系结构。
预置服务
Preferences Services CFPreference 允许程序保存和获取用户的预置参数。参见“软件配置”一章中的“预置系统”。
属性列表服务
Property List Services 提供了一种把数据组织成某种形式的方法,这种组织形式具有高度的结构化,可传递,可存储,和易于访问的特点,并能保持尽可能的高效。属性列表API允许基本数据类型的分层组织结构与标准XML之间的相互转换。
运行循环服务
Run Loop Services CFSocket, CFRunLoop (and related) 提供了低级事件处理和分派服务。
字符串服务
String Services CFString, CFCharacter- Set 提供了一整套快速高效的字符串处理和转换功能。字符串服务提供了对Unicode的完全支持,因此大大简化了国际化的过程。它同样也增强了字符串数据在Carbon和Cocoa应用程序之间的共享。
URL服务
URL Services CFURL CFURLAccess 允许程序通过URL来访问储存在本地或远程的资源。
实用工具服务
Utility Services CFDate, CFTimeZone, CFNumber, CFUUID, CFByteOrder 提供了各种杂项服务,例如:日期和时间的计算和显示,数字的“对象” 封装,字节交换和UUID的生成。
XML解析器
XML Parser CFXMLParser 为读取和分析XML文档的数据提供了一个XML解析器。
Carbon 核心(Carbon Core)
Carbon 核心是CoreServices.framework的一部分,包括许多Carbon管理器,并为所有应用程序环境提供低级服务。这些服务包括协作和抢占线程、资源管理、内存管理和文件系统操作。
核心服务层中的Carbon管理器
替身管理器
Alias Manager 使用替身来帮助定位指定的文件、目录或者卷。提供了创建和解析文件系统替身记录的规则。
集合管理器
Collection Manager 提供了一种存储信息集合的抽象数据类型。
组件管理器
Component Manager 使得您的应用程序在运行时能够找到并使用不同的软件对象(组件)。同时允许创建和管理组件。
日期,时间和度量单位工具
Date, Time, and Measurement Utilities 允许应用程序获取和处理日期时间、地理位置、时区和度量单位。
文件管理器
File Manager 赋予了程序访问储存在物理卷(包括硬盘,CD,和Zip碟)上的文件的能力。它能适应HFS+(Mac OS Extended)、HFS(Mac OS Standard)、UFS、NFS和其它被支持的文件格式。文件管理器能用于创建,打开,更新,保存和关闭文件;搜索特定的文件或目录;获取有关文件或目录的信息;和执行其它与文件有关的高级操作。文件管理器也支持Unicode,并且它的API是线程安全的。
文件夹管理器
Folder Manager 允许程序搜索和创建文件夹,并且控制文件在文件夹之间的移动。它新增了对域的支持。
内存管理工具
Memory Management Utilities 提供了一些实用的专用程序,用来检测或控制内存环境的某些方面。
内存管理器
Memory Manager 在应用程序的受保护地址空间内控制内存的动态分配。它包含了用来分配共享内存和永久内存的新规则,以及与Mac OS X中虚拟内存相关的各项功能。
多进程服务
Multiprocessing Services 使程序能够创建和管理单独的抢占式时序线程。另外,它还包含了同步服务和原子指令。
资源管理器
Resource Manager 为新建、删除、打开、读取、修改、写入和获取资源文件的有关信息提供了一些程序。它包括了对基于数据分支的资源的支持。
文本编码转换管理器
Text Encoding Conversion Manager 提供了两个工具--文本编码转换器和Unicode转换器,应用程序可以用它们来实现文本转换。
文本工具
Text Utilities 提供了一整套工具用来实现对文本的不同操作,含概了从字符串排序到单词边界查找的各种操作。
线程管理器
Thread Manager 允许程序创建和管理协同式时序线程。
时间管理器
Time Manager 赋予程序以一种方法,用于在指定时间定时执行程序(可以是只执行一次,也可以是重复多次)。这种执行时间相关任务的机制是与硬件相独立的。
Unicode 工具
Unicode Utilities Performs various operations on Unicode text, including Unicode key translation.实现对Unicode文本的多种操作,包括Unicode key 翻译。
CFNetwork
CFNetwork是CoreServices.framework的一部分,是用于用户级联网和通讯的首选API。CFNetwork提供了一套用于生成、串行化、非串行化和管理协议消息的函数。这些协议消息可以在客户端和服务器间进行常规的交换。CFNetwork使得您不必为了要交换协议消息而去学习和实现一个协议的具体细节。
CFNetwork的设计支持很多协议,包括:HTTP、SMTP、LDAP和FTP。CFNetwork的当前实现提供了处理http消息的功能。
Web服务
Web服务是CoreServices.framework的一部分,允许你调用互联网或本地企业内部网上的远程程序。Web服务使用如 SOAP(Simple Object Access Protocol,简单对象访问协议)和XML-RPC的标准协议,通过HTTP传递服务请求。这些标准协议允许在其它完全不同的计算平台之间进行通讯,也允许创建分布式服务。Web服务核心框架定义了一组API,用来发送请求给使用那些协议的远程服务器和处理有关响应。
应用程序开发人员也可以把Web服务机能结合到他们使用了Apple Event管理器和AppleScript的应用程序中。
Open Transport
Open Transport是CoreServices.framework中的Carbon兼容性API,它提供了对传统联网和通讯技术的支持。Open Transport使应用程序能够同时使用更多的网络系统(例如:AppleTalk与网络打印机进行通讯,TCP/IP连接到互联网)。有了Open Transport,用户就可以保存和修改不同的网络配置,也可以方便地在它们之间进行切换。
Mac OS X中的Open Transport版本支持Mac OS 8和Mac OS 9中那些普遍被使用的接口。例如,它支持IP协议的Open Transport终端规则。尽管如此,它不包括面向连接并基于事务的终端特性(这将只影响到AppleTalk协议的用户,例如ASP)。而且它既不支持本地XTI(X/Open Transport接口)接口也不支持BSD流的接口。
来自于Open Transport早期版本的一个重要变化是为许多功能附加了客户端上下文参数。每一个Open Transport客户端现在都拥有它自己的上下文,以使得Open Transport可以代表客户端来跟踪它所分配的资源。在这种情形中,客户端是一个应用程序或共享库,而资源则是像终端、计时任务和内存块那样的对象。
追踪用户事件
从鼠标点击到该事件在合适的应用程序环境里被合适的函数或方法来处理,追踪用户事件的轨迹贯穿了系统的不同层,通过函数请求引发了一个假定的事件链,作为结果,如可以在屏幕上绘制一个新对象(如,对话框)。
当设备驱动程序所控制的输入设备(例如:鼠标或键盘)探测到一个用户动作时,会触发一个低级事件。在Mac OS X中,由构成所有设备驱动程序基础的I/O Kit来创建事件,并把它们放入视窗服务器的事件队列中(对视窗服务器的探讨参见“Quartz Compositor”)。这个队列被放置在由I/O Kit和视窗服务器所共享使用的内存块中。一旦I/O Kit把一个事件放入队列中,它就通过Mach进程间通讯机制(IPC)通知视窗服务器。
这时,视窗服务器把事件从队列中取出,并查询当前打开窗口的数据库。视窗服务器再把事件发送到隶属于一个特定进程的运行循环的事件端口中,而该特定进程拥有事件发生所在窗口的所有权。Carbon事件管理器从运行循环端口获得事件,以合适的形式把事件打包,发送给特定的应用程序环境下的该进程的事件处理机制。这种机制确保了事件可由所点击控件(或按键)的相关函数和方法来进行处理。
事件处理机制对于每个应用程序环境都是不同的:
·Carbon Carbon具有几种供应用程序来处理事件的机制。主要的机制是使用EventRefs,这种隐含的低级事件结构。EventRefs的处理程序被安装在用户界面对象上(包括人性化接口工具箱的默认对象),这些处理程序自动接收全部或部分指定到这些对象上的事件。处理程序可以忽略事件、处理事件或把它传递给外围容器内的下一个处理程序。事件处理使用DefProc消息,并且可以使用函数回调