【C++】POCO学习总结(五):功能介绍

【C++】郭老二博文之:C++目录

1、POCO 简介

github:https://github.com/pocoproject/poco
官网:https://pocoproject.org/index.html

POCO第一个版本于 2005 年 2 月发布

POCO完全免费:POCO C++ 库根据 Boost 软件许可证获得许可。非常自由的许可证,鼓励商业和非商业使用。

使用POCO开发的开源项目:

  • ClickHouse 是一个开源的面向列的数据库管理系统,能够使用SQL查询实时生成分析数据报告。
  • macchina.io 物联网应用开发平台构建在POCO之上。
  • Mantid 项目提供了一个支持高性能计算和材料科学数据可视化的框架。
  • MQWeb 是一个基于 Web 的 Websphere MQ 管理工具,由 POCO 贡献者 Franky Braem 开发。
  • openFrameworks 是一个用于创意编码的开源 C++ 工具包。
  • ROS(机器人操作系统)是一个用于编写机器人软件的灵活框架。

POCO官方自我评价(王婆卖瓜自卖自夸):

  • POCO使用 C++ 标准库用现代标准 ANSI C++ 编写。
  • 模块化设计,很少的外部依赖,开箱即用。
  • “经典”面向对象设计与现代 C++ 的完美结合。
  • 干净、易于理解的代码、一致的编码风格、全面的测试套件。

2、POCO PRO

POCO PRO是付费的:POCO PRO通过附加功能、库和框架扩展了 POCO C++ 库,可在商业源代码许可下使用。适用于 C++ 的 WEB 服务、微服务、REST API等。
官网:https://pocoproject.org/pocopro.html
在这里插入图片描述

3、平台支持

桌面/服务器:Windows、Linux、macOS、Solaris、HP-UX、AIX
嵌入式/移动:Windows Embedded CE、嵌入式 Linux(uClibc 或 glibc)、iOS、Android、QNX、VxWorks
最低系统要求:75 MHz ARM9、8 MB RAM(嵌入式 Linux)。

4、POCO功能模块

在这里插入图片描述

4.1 核心功能

  • 日期和时间
  • 事件(信号/槽机制)和通知框架
  • 正则表达式(基于PCRE)
  • 在运行时动态加载共享库和类
  • 智能指针和内存管理(缓冲区、池)
  • 字符串格式化和字符串实用方法
  • 元组tuples
  • 缓存框架

4.2 压缩

  • 用于基于 zlib 的压缩/解压的流
  • ZIP 文件的创建和提取

4.3 加密

  • 哈希加密
  • X509 证书处理
  • 对称RSA 加密
  • 可以使用OpenSSL对流加解密

4.4 数据库

  • 统一接口:可以访问不同的 SQL 数据库(SQLite、MySQL、ODBC、PostgreSQL)
  • 自动数据类型映射
  • 集合支持(std::vector、std::set、std::map 等)
  • 记录集set和元组tuples
  • 会话池
  • MongoDB 和 Redis 客户端

4.5 文件系统

  • 独立于平台的路径构建和操作
  • 目录列表
  • 通配
  • 目录更改通知
  • 文件属性

4.6 日志框架

  • 可扩展的日志记录框架
  • 具有可插入日志通道和消息格式化程序
  • 控制台日志记录
  • 日志文件
  • 系统日志
  • 远程系统日志
  • Windows 事件日志服务

4.7 多线程

  • 线程 和 线程同步类
  • 线程池
  • 工作队列
  • 活动对象和活动
  • 任务管理
  • 计时器

4.8 网络

  • 流、数据报、多播、服务器、Unix 域和原始套接字
  • TCP 服务器框架(多线程)
  • 反应堆(Reactor)模式服务器框架
  • HTTP(S) 客户端和服务器框架
  • HTTP 基本和摘要身份验证
  • NTLM 身份验证
  • JWT(JSON Web 令牌)支持
  • 用于在HTML页面中嵌入c++代码的c++服务器页面编译器
  • FTP 客户端
  • 用于发送和接收电子邮件的 SMTP 和 POP3 客户端
  • URI 和 UUID 处理
  • HTML 表单 处理
  • HTML 模板编译器
  • MIME 多部分消息
  • 基于 OpenSSL
  • WebSocket (RFC 6455) 客户端和服务器的 SSL/TLS 支持

4.9 进程和IPC

  • 启动和停止进程
  • 进程同步
  • 共享内存

4.10 流

  • Base64 和 HexBinary 编码/解码
  • 压缩 (zlib)
  • 行尾转换
  • 内存流文本
  • 编码转换
  • URI 流打开器

4.11 文本编码

  • UTF-8 和 Unicode 处理
  • 文本编码和转换
  • 字符分类

4.12 实用工具

  • 命令行和服务器应用程序的框架
  • 命令行选项 处理
  • 配置文件 解析
  • unix 守护进程和 windows 服务

4.13 XML 和 JSON

  • 基于Expat的快速XML解析
  • SAX2 (XML的简单API,版本2)解析器
  • DOM(文档对象模型,1-3级)解析器
  • XML 编写器
  • JSON 解析器和编写器

5、SDK参考手册

https://docs.pocoproject.org/current/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/164433.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QMI8658A(6轴)-EVB 评估板-使用说明书

QMI8658A6<6轴>-EVB 评估板-使用说明书 0.前言 1.硬件准备 1.1 I2C 接口 1.2 USART 接口 1.3 引脚序号功能定义 2.程序运行 0.前言 【相关博文】 【QMI8658 - 姿态传感器学习笔记 - Ⅰ】 【QMI8658 - 姿态传感器学习笔记 - Ⅱ】 【QMI8658 - 姿态传感器学习…

基于单片机的光伏发电并网系统设计(论文+源码)

1.系统设计 片作为主控制器。由于太阳能板本身的能量输出受到负载影响&#xff0c;因此需要在太阳能板后面加入一级DC/DC电路&#xff0c;来实现最大功率跟踪&#xff0c;以提高整个系统的效率。接着&#xff0c;由于光伏逆变器需要产生220V的交流电给居民使用&#xff0c;因此…

[MySQL] MySQL 表的增删查改

本篇文章对mysql表的增删查改进行了详细的举例说明解释。对表的增删查改简称CRUD : Create(创建), Retrieve(读取)&#xff0c;Update(更新)&#xff0c;Delete&#xff08;删除&#xff09;。其中重点是对查询select语句进行了详细解释&#xff0c;并且通过多个实际例子来帮助…

香港科技大学广州|先进材料学域博士招生宣讲会—华中科技大学大学专场!!!(暨全额奖学金政策)

“跨学科融合创新&#xff0c;引领新兴与未来行业的突破与发展——先进材料学域” 世界一流的新型可持续材料创新研究 夯实的先进材料领域国际学术影响力 教授亲临现场&#xff0c;面对面答疑解惑助攻申请&#xff01; 一经录取&#xff0c;享全额奖学金1.5万/月&#xff01; …

【性能优化】JVM调优与写出JVM友好高效的代码

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;2022年度博客之星全国TOP3&#xff0c;专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化&#xff0c;文章内容兼具广度、深度、大厂技术方案&#xff0c;对待技术喜欢推理加验证&#xff0c;就职于…

面试:Kafka相关问题

文章目录 简单介绍kafkakafka应用场景为什么需要zookeeperZookeeper 对于 Kafka 的作用是什么&#xff1f;kafka高效的原因kafka的特点kafka的核心组成Kafka中的Topic和Partition有什么关系&#xff1f;Kafka的消费消息是如何传递的&#xff1f;Kafka 的多副本机制了解吗&#…

STM32:基本定时器原理和定时程序

一、初识定时器TIM 定时器就是计数器&#xff0c;定时器的作用就是设置一个时间&#xff0c;然后时间到后就会通过中断等方式通知STM32执行某些程序。定时器除了可以实现普通的定时功能&#xff0c;还可以实现捕获脉冲宽度&#xff0c;计算PWM占空比&#xff0c;输出PWM波形&am…

Vue3 + Vite + TSX + vue3-ace-editor 踩坑

前言 由于 ace-editor 官网并没有提供各个前端框架Vue&#xff0c;React&#xff0c;Angular的直接使用的适配版本&#xff0c; 所以本次使用的vue3-ace-editor 是个人开源者维护的版本&#xff0c;原生是支持 SFC 模版用的&#xff0c;由于我这里习惯使用 JSX 或 TSX的方式&a…

【03】ES6:解构赋值

一、数组的解构赋值 ES6 允许按照一定模式&#xff0c;从数组和对象中提取值&#xff0c;对变量进行赋值&#xff0c;这被称为解构&#xff08;Destructuring&#xff09;。 1、基本使用 遵循 “模式匹配” &#xff0c;索引值相同的完成赋值 // 为变量赋值&#xff0c;只能…

Centos7 Python环境和yum修复

1、删除现有残余包 [rootlocalhost ]# rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps[rootlocalhost ]# rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps[rootlocalhost ]# whereis python |xargs rm -frv[rootlocalhost ]# whereis python ##验证清除&…

mybatis注解方式动态标签时有特殊符号,出现元素内容必须由格式正确的字符数据或标记组成

原始代码demo Select("SELECT COUNT(1) FROM AAAA WHERE name #{nage} AND age< 4") public Integer sumXxxxx(String nage, String age);现需求改为nage可以为空&#xff0c;因此使用了动态拼接 Select("<script> SELECT COUNT(1) FROM AAAA WHERE …

SWT/Jface(2): 表格的编辑

前言 上节说到, 创建和渲染表格需要如下几个步骤: 接收源数据数组(也可以是单个对象或者其他集合类型): TableViewer.setInput(Object)渲染接收的数据 渲染表头: TableViewer.setLabelProvider(IBaseLabelProvider)渲染内容: TableViewer.setContentProvider(IContentProvide…

java.lang.IllegalArgumentException: java.net.UnknownHostException: xxx

windows系统下连接hdfs进行操作时&#xff0c;上来就出现java.lang.IllegalArgumentException: java.net.UnknownHostException: xxx java.lang.IllegalArgumentException: java.net.UnknownHostException: liujianat org.apache.hadoop.security.SecurityUtil.buildTokenServ…

Keil Vision5—新建工程project

注意&#xff1a;创建的工程目录必须是纯英文目录 目录 1.开始配置 2.为该路径下新建个文件夹 3.选择器件 4.工程配置 4.右击魔术棒&#xff0c;设置参数 ​编辑 &#xff08;1&#xff09;target配置 &#xff08;2&#xff09;output配置 &#xff08;3&#xff09;c…

字符串结尾空格比较相关参数BLANK_PAD_MODE(DM8:达梦数据库)

DM8:达梦数据库 字符串结尾空格比较相关参数BLANK_PAD_MODE 环境介绍1 BLANK_PAD_MODE01.1 初始化数据库1.2 创建测试表 T0 2 BLANK_PAD_MODE12.1 初始化数据库2.2 创建测试表 T1 3 BLANK_PAD_MODE只对字段varchar类型生效3.1 BLANK_PAD_MODE 对char 类型对比无效3.2 在两个数据…

计算机中了halo勒索病毒怎么清除,halo勒索病毒解密数据恢复

科技的进步加快了企业发展的步伐&#xff0c;网络技术的不断应用为企业的生产运营提供了极大帮助&#xff0c;但随之而来的网络安全威胁也不断增加&#xff0c;近期&#xff0c;云天数据恢复中心接到很多企业的求助&#xff0c;企业的计算机服务器遭到了halo勒索病毒攻击&#…

Jmeter快速入门

文章目录 1.安装Jmeter1.1.下载1.2.解压1.3.运行 2.快速入门2.1.设置中文语言2.2.基本用法 1.安装Jmeter Jmeter依赖于JDK&#xff0c;所以必须确保当前计算机上已经安装了JDK&#xff0c;并且配置了环境变量。 1.1.下载 可以Apache Jmeter官网下载&#xff0c;地址&#xf…

uni-app打包后,打开软件时使其横屏显示

找到page.json文件&#xff0c;在global加入以下代码&#xff1a; 这样就可以横屏显示了。

CANdelaStudio 使用教程 1

文章目录 CANdelaStudio 软件下载CANdelaStudio 软件的权限View Edition 和 Admin Edition 区别&#xff1a;打开文件 CDD / CDDT 文件新建 CDD 文件新建 CDDT 文件CDD 和 CDDT 文件的区别 CANdelaStudio 软件下载 1、 来到 Vector 官网下载中心 https://www.vector.com/cn/zh…

[shader] 光照入门(未完结。。。

反射 漫反射&#xff1a;而当物体表面粗糙时&#xff0c;我们把物体表面看作无数不同方向的微小镜面&#xff0c;则这些镜面反射出的光方向均不相同&#xff0c;这就是漫反射。 高光反射&#xff1a;我们假定物体表面光滑&#xff0c;只有一个镜面&#xff0c;那么所有的光都…