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

news2024/11/16 6:04:22

【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.coloradmin.cn/o/1243741.html

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

相关文章

【C语法学习】26 - strcmp()函数

文章目录 1 函数原型2 参数3 返回值4 比较机制5 示例5.1 示例1 1 函数原型 strcmp():比较str1指向的字符串和str2指向的字符串,函数原型如下: int strcmp(const char *str1, const char *str2);2 参数 strcmp()函数有两个参数str1和str2&a…

【python爬虫】scrapy在pycharm 调试

scrapy在pycharm 调试 1、使用scrapy创建一个项目 scrapy startproject tutorial 2、在朋友pycharm中调试scrapy 2.1 通过文件run.py调试 在根目录下新建一个文件run.py(与scrapy.cfg文件的同一目录下), debug ‘run’即可 # -*- coding:utf-8 -*- from scrapy import c…

excel单元格加背景颜色不生效?

如果在 Excel 中设置单元格背景颜色而发现不生效,可能有几个原因。以下是一些常见的解决方法: 1. **单元格锁定:** 检查所在单元格是否被锁定。如果单元格被锁定,并且工作表被保护,你可能无法更改其背景颜色。在工作表…

基于51单片机数字电流表数码管显示( proteus仿真+程序+设计报告+讲解视频)

电流表 1. 主要功能:2. 讲解视频:3. 仿真4. 程序代码5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接: 基于51单片机数字电流表数码管显示( proteus仿真程序设计报告讲解视频) 仿真图proteus7.8及以上 程序编译器…

Flutter学习(四)如何取消listview的越界效果

背景 在flutter的开发过程中,ListView是很常见的一个组件,但是,由于ListView的某些自带的体验,导致不太好的用户体验。例如ListView中,滑动到顶部或者底部的时候,再次滑动,会有越界的效果&…

(保姆级教程)Mysql中事务的概念,什么是事务,如何使用事务,以及事务的隔离级别,什么是脏读、幻读,代码演示

继续讲解 Mysql 数据库中最重要的一个概念:事务 文章目录 事务1.1 什么是事务1.2 执行原理1.3 如何操作事务1.4 事务的特点(ACID原则)1.5 事务并发1.6 事务隔离级别1.6.1 事务并发问题操作演示1.6.2 脏读演示1.6.3 不可重复读演示1.6.4 幻读演…

CANdelaStudio 使用教程 1

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

网工内推 | Base北京,国企网工运维,最高30k*14薪,IE认证优先

01 万方数据股份有限公司 招聘岗位:网络工程师 职责描述: 1.负责完成基础网络组网工作; 2.负责网络对象的访问控制及安全策略,配置VLan,黑白名单、地址转换、故障排查及网络安全监控工作; 3.负责对操作系…

如何在AD上创建完整的项目

首先,我们先安装好AD,这里我使用的是AD22,安装过程如下: Altium Designer 22下载安装教程-CSDN博客 Altium Designer 22是全球领先的PCB设计软件之一,为电路板设计师提供了一种集成的解决方案,旨在简化和加…

Spring+Mybatis解析

源码执行流程 通过MapperScan导入MapperScannerRegistrar类MapperScannerRegistrar类实现了ImportBeanDefinitionRegistrar接口,Spring启动会调MapperScannerRegistrar类中的registerBeanDefinitions方法在registerBeanDefinitions方法中注册一个MapperScannerConf…

Mock 数据

1. Mock 数据的方式 2. json-server 实现 Mock 数据 项目中安装json-server npm i -D json-server准备一个json文件添加启动命令 //package.json"scripts": {"start": "craco start","build": "craco build","test&q…

怎样用AIDL Service 传递复杂数据

大家都知道在Android中通过AIDL可以跨进程调用Service中的数据,网上也有很多实例,但是大部分实例都是关于基本数据类型的远程调用,很少讲到复杂数据的调用,今天我用一个例子来演示一下怎样用AIDL Service 传递复杂数据。 我们分2…

给做steam游戏搬砖项目新手小白的5个警示

CSGO搬砖日常出货更新 今天,阿阳要向你们揭秘一个备受瞩目的项目——Steam搬砖项目。或许你们已经听闻过它的名字,但今天我要带领你们深入了解这个项目的本质,为你们揭示五个必须警惕的警示。让我们共同探索这个项目是否适合你们,…

微服务保护 Sentinel

1.初识Sentinel 文章目录 1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题1.1.2.超时处理1.1.3.仓壁模式1.1.4.断路器1.1.5.限流1.1.6.总结 1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel1.3.2.安装Sentinel 1.4.微服务整合Sentinel 2.流量控制2.1.簇点链…

Springboot整合MybatisPlus及分页功能

1 引入pom <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot</artifactId><version>2.7.14</version> </dependency> <dependency><groupId>com.baomidou</groupId><a…

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

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

劲松中西医医院HPV诊疗中心科普:扁平疣4个知识点要了解

扁平疣是一种常见的皮肤病&#xff0c;其表现为皮肤上的扁平丘疹&#xff0c;通常无痛无痒&#xff0c;但会影响患者的外貌和心理。许多人在患上扁平疣后会考虑是否可以自己消退&#xff0c;下面我们将从几个方面进行探讨。 扁平疣的病因 扁平疣是由人乳头瘤病毒(HPV)引起的。…

Go语言中结构体的使用和示例

结构体&#xff08;简称struct&#xff09;用于创建不同数据类型的成员集合&#xff0c;放入一个单一的变量中。虽然数组用于将相同数据类型的多个值存储在单一变量中&#xff0c;但结构体用于将不同数据类型的多个值存储在单一变量中。结构体对于将数据组合在一起以创建记录非…

【封装UI组件库系列】封装Icon图标组件

封装UI组件库系列第三篇封装Icon图标组件 &#x1f31f;前言 &#x1f31f;封装Icon 1.创建Icon组件 2.引用svg图标库 第一步 第二步 第三步 3.二次封装 4.封装自定义属性 &#x1f31f;总结 &#x1f31f;前言 在前端开发中&#xff0c;大家可能已经用过各种各样的UI组…

机器学习【01】相关环境的安装

学习实例 参考资料&#xff1a;联邦学习实战{杨强}https://book.douban.com/subject/35436587/ 项目地址&#xff1a;https://github.com/FederatedAI/Practicing-Federated-Learning/tree/main/chapter03_Python_image_classification 一、环境准备 GPU安装CUDA、cuDNN pytho…