poco c++感性认识
学习一个框架前,要先明白它的是什么,为什么,怎么用.下面这些文字,是从中文poco官网上转过来的,正如poco c++库的特点,非常清晰,代码风格更是一目了然.
poco开发库的特点,非常适合写后台处理程序,效率也是很高的.前台界面程序使用Qt框架库,非常好,两个库相辅相成,可解决项目上的大部分问题.
一 概述
Poco C++库是:
一系列C++类库,类似Java类库,.Net框架,Apple的Cocoa;
侧重于互联网时代的网络应用程序
使用高效的,现代的标准ANSI/ISO C++,并基于STL
高可移值性,并可在多个平台下可用
开源,并使用Boost Software License发布
不管是否商用,都完全免费
Poco库概览
特性:
DynamicAny与Any类
Cache框架
基于OpenSSL的密码系统
日期,时间类库
事件和通知框架
FTP客户端
跨平台的文件系统类库
HTML表单类库
HTTP客户端和服务端(支持SSL),C++ 服务器页面编译器
日志框架
多线程框架(线程池,活动对象,工作队列等)
POP3客户端类库
跨平台,一次编写,多平台编译和运行
进程管理和进程间通信类库
反射框架
基于PCRE的正则表达式
SMTP客户端类库
数据库访问类库(SQLite,MySQL, ODBC)
支持SSL/TLS,基于OpenSSL
动态类库加载
先进的内存和指针管理(Buffer, Pool)
Socket类库
网络数据流类库,支持Base64,HexBinary编解码,压缩等等
字符串格式化和其它字符串工具类库
TCP服务器框架(多线程)
文本编码和转换
Tuples
URI支持
支持UTF8和Unicode编码
UUID生成器
XML生成和解析器
Zip文件操作类库
Poco的使命
Poco是一个强大的类库,并易于构建自己的应用程序
Poco帮助你创建跨平台的应用程序(一次编写,多平台编译和运行)
模块化和可扩展,可应用于嵌入式到企业级程序
提供全面,易懂的编程接口
使用C++语言,快速且高效
Poco崇尚简易
在设计,代码风格和文档上保持一致
Poco强调代码质量,包括可读性,综合性,一致性,编码风格和可测试性
Poco使得C++编程更加容易
指导方针
高度关注代码质量,编码风格,一致性,可读性
高度关注测试
注重实用性
基于现有的,可靠的组件开发
版本历史
Summer 2004: Günter Obiltschnig started development
February 2005: First release on SourceForge
(Release 0.91 under Sleepycat license)
May 2005: First contributions by Aleksandar Fabijanic
January 2006: Release 1.0
March 2006: Release 1.1
July 2006: Moved to Boost license, POCO Community Website
August 2006: Release 1.2
May 2007: Release 1.3
July 2010: Stable Release 1.3.7,
about 20 contributors, used in 100s of projects
支持平台
Microsoft Windows
Linux
Mac OS X
HP-UX, Solaris, AIX*
Embedded Linux (uClibc, glibc)
iOS
Windows Embedded CE
QNX
Poco应用场景
创建自动化的中间件和设备
工业自动化和工业设备
流量控制系统
健康系统
测量,数据收集和测试系统
消费电子产品和家庭自动化产品
测量
航空交通管理系统
VoIP
票务和入口控制系统
包装应用程序
Poco的优势
全面的,完整的C++框架,可减少开发工作,快速让产品走向市场
易学易使用,以及相当多的示例代码和良好的文档
原生的C++代码,性能优秀,低内存占用
平台无关,一处编写,跨平台编译和运行
大多数情况下,可以开发机上完成开发和调试工作
可以非常容易的迁移到新平台
设计 & 实现
基于现代的、标准的ANSI C++编写,使用C++ STL库。模块化设计,极少的外部依赖,易于编译和使用。结合传统的面向对象与现代的C++设计,代码易读,代码风格统一,以及相当全面的测试用例。
支持平台
桌面/服务器: Windows, Linux, Mac OS X, Solaris, HP-UX, AIX
嵌入式系统: Windows Embedded CE, Embedded Linux (uClibc or glibc), iOS, QNX, VxWorks, Android
最低系统要求: 75 MHz ARM9, 8 MB RAM (Embedded Linux).
License
Boost Software License 1.0
核心特性
支持Any 和 DynamicAny 的动态类型
提供缓存框架
日期和时间
事件与通知框架
(libPoco.com翻译,转载请注明)
基于PCRE的正则表达式
动态库加载
完美的指针和内存管理 (buffer, pool)
字符串格式化和工具
tuples
压缩
基于zlib的压缩/解压类
创建和解压ZIP文件
加密
支持多种hash算法
支持X509数字证书
对称的和 RSA算法
支持streams加解密
基于OpenSSL
数据库
不同的数据库提供了统一的访问接口(SQLite, MySQL, ODBC)
自动数据类型匹配
支持集合类 (std::vector, std::set, std::map, etc.)
支持记录集和tuples
支持连接池
文件系统
跨平台的文件路径操作
目录列表
通配符支持
文件属性管理
日志
可扩展的日志框架,可拔插的日志通道和消息格式化
日志可输出到终端,日志文件,syslog,远程syslog,Windows事件服务
多线程
线程和线程同步类库
线程池
工作队列
活动对象
任务管理
定时器
网络
流,数据报,多播,服务器和原生socket.
TCP服务器框架(多线程)
反射服务器框架
HTTP(S)客户和服务器框架
HTTP认证
CSP(C++ Server Page)编译器
FTP客户端
SMTP和POP3客户端
(libPoco.com翻译,转载请注明)
支持URI, UUID
HTML表单处理
MIME支持
基于 OpenSSL支持SSL/TLS
WebSocket (RFC 6455) 客户和服务器
进程管理和 IPC
进程启停
进程间同步
共享内存
流
Base64 和 HexBinary 编解码
压缩(zlib)
行结束符车换
内存stream
文本编码转换
URI流读取
文本编码
支持UTF-8 和 Unicode
文本编码和转换
字符分类
工具类
支持命令行和服务器程序框架
命令行参数解析器
配置文件解析
支持Unix和Windows后台服务
XML
基于 Expat 的XML解析
SAX2 (Simple API for XML, version 2) 解析器
DOM (Document Object Model, Level 1-3) 解析器
XML生成器
转载于:https://blog.51cto.com/qtlinux/1697846
poco c++感性认识相关推荐
- 【POCO】POCO学习总结(四)——MinGW编译poco
在window下使用MinGW编译poco 使用MSYS 下载MSYS 官网介绍:http://www.mingw.org/wiki/Getting_Started 官网下载:https://jais ...
- 【POCO】POCO学习总结(三)——交叉编译
最小功能编译 编译选项:–minimal :只构建XML, JSON, 工具 and 网络 1 修改配置文件 $ vi poco-1.7.8p3-all/build/config/ARM-Linux ...
- Petapoco 连接oracle11g 自动生成poco时遇到的问题
偶尔在园子里看到.net的轻量级ORM框架Petapoco的介绍,觉得很有趣.相关介绍:PetaPoco:适用于.NET的微型ORM 正好最近有个C#+Oracle11g的项目,想趁此机会试试用pet ...
- poco vs Boost
Wooce Yang收集整理 POCO的优点: 1) 比boost更好的线程库,特别是一个活动的方法的实现,并且还可设置线程的优先级. 2) 比 boost:asio更全面的网络库.但是boos ...
- “超级”容易用错的几个Airtest和Poco的API,看看你有没有遇到过
前言 最近在我们的答疑群里面,经常遇到这样一类情况: 错把Airtest的API强行用在Poco控件上面 错把Poco的API强加在Airtest的截图脚本上面 不管API的实际用法如何,只按自己的臆 ...
- 网易UI自动化测试探索:Airtest+Poco
1. 自动化测试 自动化测试的目的,就是为了"更快更好"地发现产品问题,有效提升产品质量.目前比较主流的自动化测试包含单元测试自动化.接口自动化和UI自动化. 相比接口自动化测试来 ...
- POCO:InvalidOperationError:Mapping and metadata information could not be found for Entity Type
今天因为工作需要打开了几天前的一个项目,该项目使用了POCO,几天前都正常的项目今天突然报错: Mapping and metadata information could not be found ...
- windows x64 build c++ poco库
编译环境及工具: vs2008 windows server 2008 x64 poco源码(可以http://pocoproject.org/获取) Windows (x86, 64-bit), Z ...
- 定义一个dto对象_正确理解DTO、值对象和POCO
(此文章同时发表在本人微信公众号"dotNET每日精华文章") 今天推荐的文章比较技术化也比较简单,但是对于一些初学者而言,可能也是容易搞混的概念:就是如何理解DTO.值对象和PO ...
最新文章
- 靠Python数据分析已赚10w的本科生
- 学习OpenCV(一)从Mat讲起
- python开发需要掌握哪些知识-Python的8个基础知识点,新手必须背下来!
- Codeforces 1188
- Powershell基础(一)
- CSS实现【表格内容超过一行的部分,用省略号代替】
- mysql存储文件用什么类型_块存储、文件存储、对象存储的区别是什么?
- sklearn自学指南(part30)--特征选择
- 【渝粤教育】广东开放大学 物业服务营销管理 形成性考核 (59)
- 主进程中发生了一个javascript错误_知道html5 Web Worker标准吗?能实现JavaScript的多线程?
- php 生成小程序码
- oppo9s刷机教程_OPPOR9SPlus官方固件刷机教程_线刷|救砖教程图解
- deepfake 图片_找到那张假照片!对抗Deepfake之路
- 与计算机相关的格言,与机器相关的经典名言
- Java面试评语及录用建议_面试录用评语.doc
- 【Python学习】pandas 删除重复行
- 国产迪王耀全球(下)
- python中咕噜咕噜的冒泡函数
- 基于FPGA的DDS参考设计
- Orleans 2.0 官方文档 —— 4.5 Grains - 观察者
热门文章
- C++ 浅复制、深复制详解
- Android基础 《密西西比河谷州立大学:Android应用程序开发》(一)
- 桌面内存管理器(dwn.exe)占用内存过高时怎么办?
- 如何实现给table表头加斜线
- rd,pe,ae,fae,marketing,sales都是干嘛的?
- Android O(SDK 8.0)新特性,刘海屏
- 杂谈:渐进增强与优雅降级
- C# 生成图片缩略图
- c语言响铃编程,C语言C加加编程新手快速入门基础学习
- Tsi721和NRS1800连接调试问题记录