【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.hqwc.cn/news/211762.html

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

相关文章

Vue框架学习笔记——Vue实例中el和data的两种写法

文章目录 前文提要Vue实例的el第一种写法第二种写法小结 Vue实例中data第一种写法&#xff0c;对象式效果图片第二种写法&#xff0c;函数式效果图片小结 前文提要 本文仅做自己的学习记录&#xff0c;如有错误&#xff0c;请多谅解 Vue实例的el 第一种写法 <body><…

spring 是如何开启事务的, 核心原理是什么

文章目录 spring 是如何开启事务的核心原理1 基于注解开启事务2 基于代码来开启事务 spring 是如何开启事务的 核心原理 Spring事务管理的实现有许多细节&#xff0c;如果对整个接口框架有个大体了解会非常有利于我们理解事务&#xff0c;下面通过讲解Spring的事务接口来了解…

【CCF-PTA】第03届Scratch第04题 -- 数字加密

数字加密 【题目描述】 "狼群战术"是第二次世界大战中德军对大西洋上盟军商船所使用的潜艇战术&#xff0c;一度遏制住英国的海上贸易。直到艾伦图灵成功破译了德国的英格尔码密码&#xff0c;成为二战的一个重要转折点。时至今日&#xff0c;图灵仍然是计算机的一…

【数据结构/C++】线性表_顺序表的基本操作

#include <iostream> using namespace std; #define MaxSize 10 // 1. 顺序表 // 静态分配 typedef struct {int data[MaxSize];int length; // 当前长度 } SqList; // 静态分配初始化顺序表 void InitList(SqList &L) {for (int i 0; i < MaxSize; i){L.data[i]…

k8s-pod生命周期 4

容器环境初始化 pod 由pod 镜像来提供&#xff0c;在pod 生命周期里容器主要分为两种&#xff1a;初始化容器和主容器 初始化容器一定要成功运行并退出&#xff0c;当初始化容器运行退出完了之后主容器开始和运行 主容器开始运行的时候&#xff0c;有两个探针&#xff1a;存…

漏洞盒子公益SRC

漏洞盒子公益SRC&#xff0c;小小地记录一下第一个月的成果

MySQL的Redo Log跟Binlog

文章目录 概要Redo Log日志Redo Log的作用Redo Log的写入机制 Binlog日志Binlog的作用Binlog写入机制 两段提交 概要 Redo Log和Binlog是MySQL日志系统中非常重要的两种机制&#xff0c;也有很多相似之处&#xff0c;本文主要介绍两者细节和区别。 Redo Log日志 Redo Log的作…

Pikachu(二)

CSRF (跨站请求伪造)概述 Cross-site request forgery 简称为“CSRF”&#xff0c;在CSRF的攻击场景中攻击者会伪造一个请求&#xff08;这个请求一般是一个链接&#xff09;&#xff0c;然后欺骗目标用户进行点击&#xff0c;用户一旦点击了这个请求&#xff0c;整个攻击就完…

MySQL数据库约束你真的懂吗?

✏️✏️✏️今天给各位带来的是关于数据库约束方面的知识 清风的CSDN博客 &#x1f61b;&#x1f61b;&#x1f61b;希望我的文章能对你有所帮助&#xff0c;有不足的地方还请各位看官多多指教&#xff0c;大家一起学习交流&#xff01; 动动你们发财的小手&#xff0c;点点关…

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 …

港口大型设备状态监测及预测性维护策略

在现代港口运营中&#xff0c;大型设备的正常运行对于保障港口作业的高效性至关重要。为了实现设备的可靠性和持续性&#xff0c;港口管理者需要采取一系列状态监测和预测性维护策略。 推进自动化和智能化是提高港口大型设备状态监测和维护管理效率的重要途径。通过应用先进的…

投资房产的理由与好处,投资买房的方法与技巧

一、教程描述 本套买房教程&#xff0c;大小2.15G&#xff0c;共有23个文件。 二、教程目录 00.她23岁北漂月薪600&#xff0c;7年后50万在京买了第一套房&#xff0c;如今身价上千万.mpg 01.这个游戏&#xff0c;有些人输了所有钱&#xff0c;一辈子也不明白这个道理.mpg …