ptlib (pwlib)介绍和在可移植性代码中的运用

PWLib是Portable Windows Library的缩写,翻译为轻便的Windows类库.PWLib采用C++编写,设计初衷是为了能让Openh323在Windows和Unix的 X-Windows下运行, 不过随着一步步的完善PWLib已经被跨平台的程序所广泛采用.在最新的Pandora版本中,Equivalence已经停止了PWLib中GUI部分的开发,全面转向了更能为Openh323所利用的PTLib,GUI部分交给了wxWindows来完成.PWLib主要功能侧向网络,I/O和多线程,主要用在高性能的可移植网络程序.
  PWLib分为两部分:基类部分和控制台部分.基类部分主要包括网络,多线程,ASN等...,所有使用PWLib的应用程序必然用到基类部分.而控制台部分则定义了一些基本的数据和设备类型,它是可选的,不过要方便移植的话还是要用到它.
  下面从Hello World开始说PWLib框架:
  #include <ptlib.h> //所用使用PWLib都用包含的头文件
  class Hello : public PProcess //继承主线程类PProcess
  {
   PCLASSINFO(Hello, PProcess) //连接PProcess的运行时函数
   public:
   void Main(); //主线程是从PProcess的Main()开始的
  };
  PCREATE_PROCESS(Hello) //定义Main()函数和初始化Hello类
  void Hello::Main()
  {
   cout << "Hello world!/n";
  }


  下面详细介绍各个类:


  基本对象类:
  PObject - PWLib中的根类,所有的类都派生于此
  PContainer - 抽象容器类
  PAbstractArray - 所有数组对象的基类
  PAbstractList - 所有列表对象的基类
  PAbstractDictionary - 字典对象的基类
  PString - 字符类,在Openh323中随处可见


  I/O通道类
  PChannel - I/O通道的基类,下面类都派生于此
  PIndirectChannel - 可以交换的操作不同的I/O通道
  PConsoleChannel - 进入系统命令行的通道
  PPipeChannel - 在当前进程和子进程剪建立管道
  PSerialChannel - 串口通信通道


  PFile - 文件操作类.
  PTextFile - 文本文件操作类
  PStructuredFile - 结构文件操作类,不同操作文件类型都不尽相同
  PFilePath -对文件的路径描述的类
  PVideoChannel - 视频的输入,输出通道,采用YUV格式
  PSoundChannel - 音频的输入,输出通道,使用线性的PCM通道


  套接字类:
  PSocket - 套接字的基类,所有网络操作类派生于此
  PIPSocket - IP协议层的描述类
  PUDPSocket - IP协议中UDP描述类
  PTCPSocket - IP协议中TCP/IP描述类
  PICMPSocket - IP协议中ICMP描述类
  PIPXSocket - IPX协议的基类
  PEthSocket - 底层的以为网接口类,可以直接操作底层数据包


  进程和线程类:
  PProcess - 实现程序的主线程控制类
  PServiceProcess - 后台程序或系统进程使用的类
  PThread - 普通线程的控制类
  PSemaphore - 使用信号量的线程同步类
  PMutex - 使用互斥对象的线程同步类
  PCriticalSection - 使用临界区的线程同步类
  PSyncPoint - 使用事件的线程同步类
  PAtomicInteger - 描述了信号量及PV操作


  其他杂类:
  PArgList - 命令行参数类
  PConfig - 存储应用程序的配置内容
  PTime - 时间和日期的抽象类
  PTimeInterval - 以毫秒为单位的记时类
  PDynaLink - 动态连接类
  PRemoteConnection - 网络连接控制类
  PMail - 调用系统默认程序发邮件
  PPluginManager - 插件管理模块
  PSmartPointer - 智能指令类
  PNotifier - 通告类,可以调用任何类的任何函数
  PSmartNotifierFunction - 智能的通告函数类,使用对象ID

 

 


  控制台部分:


  HTTP协议类:
  PHTTP - HTTP协议基类
  PURL - URL的具体描述
  PHTML - HTML的具体描述
  PHTTPServiceProcess - 后台的HTTP服务程序类


  其他协议类
  PInternetProtocol - Interner文本协议基类
  PPOP3 - POP3协议的基类
  PSMTMP - SMTP协议的基类
  PFTP - FTP协议的基类
  PMIMEInfo - 描述MIME信息
  PTelnetSocket - 描述TELNET协议
  PSocksProtocol - Socks协议的基类
  PSTUNClient - 实现STUN登陆操作
  PSNMP - SNMP协议的基类
  PSSLChannel - 在OpenSSL基础上建立的SSL协议类
  PSASL - 在Cyrus SASL基础上建立的SAS协议L类
  PXMLRPC - 在XML和HTTP基础上建立的XMLRPC协议描述
  PSOAPClient - 实现SOAP登陆
  PLDAPSession - 使用OpenLDAP进行LDAP登陆
  PILSSession - 使用OpenLDAP进行ILS登陆
  XMPP::Stream - 实现XMPP(Jabber)流


  其他杂类:
  PModem -操作Modem,使用AT命令和Modem串口通信
  PIpAccessControlList - 子网掩码的描述
  PRandom - 产生随机数类
  PCypher - 不同编码的解码和编码
  PWAVFile - AIFF格式的WAV文件操作类
  PDTMFDecoder - 对PCM流进行DTMF解码
  PMemoryFile - 让数据存储在内存中
  PSDLVideoDevice - 使用SDL库实现视频设备
  PXML - XML的解析器
  PVXMLChannel - VXML的解析器
  PTextToSpeech - 实现文本到语音的语音合成转换

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值