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 - 實現文本到語音的語音合成轉換

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章