您的位置:首页 > 其它

libevent参考手册翻译:热身

2014-01-17 00:36 176 查看
Table of Contents

1 libevent参考手册:热身

1.1 简介
1.2 模块划分

1.2.1 evutil
1.2.2 event and eventbase
1.2.3 bufferevent
1.2.4 evbuffer
1.2.5 evhttp
1.2.6 evdns
1.2.7 evrpc

1.3 目标库说明

1.3.1 libeventcore
1.3.2 libeventextra
1.3.3 libevent
1.3.4 libeventpthreads
1.3.5 libeventopenssl

1.4 头文件说明

1.4.1 API头文件
1.4.2 兼容头文件
1.4.3 结构化头文件

所有者:Nick Mathewson

翻译者:Magic_Gcc

1 libevent参考手册:热身

1.1 简介

libevent是一个用于编写高效、可移植、无阻塞IO的库。它的设计目标是:

可移植性:利用libevent编写的程序必须能在所有支持libevent的平台上工作。甚至当没有好的方式去实现无阻塞IO,libevent也应做到一定水准,以便应用能在严格的环境下运行。

效率:libevent试图使用每个平台上最快使用的无阻塞IO实现,而不引进其他开销。

可扩展性:libevent设计成让需要激活成千上万个socket的程序都能正常运行。

易用性:用libevent编写应用最自然的方式什么时候都应该是稳定和可移植的。

1.2 模块划分

1.2.1 evutil

提供通用功能,将在不同平台上网络实现的差异抽象出来。

1.2.2 event and event_base

这是libevent的核心部分。为不同特定平台、基于事件的无阻塞IO后端提供抽象的接口;能当sockets就绪时,通知你去做读写操作,或者做超时功能及检测系统信号。

1.2.3 bufferevent

这些函数在libevent event_base核心模块基础上提供更易用的封装。让程序请求带缓存的读和写,并当IO确实发生时通知程序,而不是当socket就绪时通知你。

1.2.4 evbuffer

该模块在bufferevent下面实现buffer,并为高效易用的访问提供接口。

1.2.5 evhttp

简单实现HTTP客户端/服务端

1.2.6 evdns

简单实现DNS客户端/服务端

1.2.7 evrpc

简单RPC实现

1.3 目标库说明

编译完libevent后,默认安装以下库:

1.3.1 libevent_core

所有关于核心的event和buffer的功能都在其中,它包含eventbase,evbuffer,bufferevent,和utility函数。

1.3.2 libevent_extra

定义应用可能会/可能不会用到的特定协议功能,包含HTTP,DNS和RPC。

1.3.3 libevent

这个库存在时有历史原因的;包含了以上提到的两个库的内容;目前不应该使用它,它将在未来的版本被去掉。

1.3.4 libevent_pthreads

增加基于可移植的三方线程库实现线程和锁。它和libevent_core分开以便开发者按是否需要多线程而去自主选择是否链接该库。

1.3.5 libevent_openssl

使用bufferevent和OpenSSL库实现加密通信,同样按项目需求决定是否链接该库。

1.4 头文件说明

当前所有公用的libevent头文件被安装在event2目录下,大体分为以下三类:

1.4.1 API头文件

开放当前libevent版本所有公用接口,这些接口都没有特殊的前缀。

1.4.2 兼容头文件

兼容的头文件包含被弃用函数的定义。如果你的程序不是从旧版本移植过来的话,请不要使用这些头文件。

1.4.3 结构化头文件

这些头文件定义一些相对易变的结构体。当你需要对一些结构化的模块进行快速访问时,这些接口是透明的。任何直接依赖这些结构体的程序都难以与旧版本兼容,有时候很难进行调试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: