摘要:
简介 [easypack][1]是基于[boost.serialization][2]的二进制序列化框架,使用极其方便。 Examples 基本类型 可以看到,pack/unpack支持变参,并且还支持出栈式反序列化,使用非常方便。 std::tuple boost序列化默认不支持std::tupl 阅读全文
摘要:
概述 工作中我们在网络传输时使用time_t来传输时间,在显示时使用字符串来显示,下面是一个日期转换类的实现,方便以后使用: 下面是DateTime的具体使用例子: c++ // main.cpp include include "DateTime.hpp" int main() { std::st 阅读全文
摘要:
概述 C++在处理字符串时相对于python等脚本语言并没有什么优势,下面将常用的字符串处理函数封装成一个String工具类,方便以后使用,后期还会对该类进行扩充,下面是具体的实现: 下面是String的具体使用例子: c++ // main.cpp include include "String. 阅读全文
摘要:
概述 最近在工作上需要用到定时器,然后看到boost里面的deadline_timer可以实现一个定时器,所以就直接将其封装成了ATimer类,方便使用,ATimer有以下优点: 1. 可以支持纳秒、毫秒、秒、分、小时定时。 2. 可以随时停止定时器。 3. 支持单次调用。 4. 因为使用了dead 阅读全文
摘要:
smartdb是一个纯c++11开发,header only,简洁高效的sqlite封装库. github地址:https://github.com/chxuan/smartdb,如果您觉得不错,请不要吝啬给个start! 连接数据库,若 不存在,则会创建一个. INSERT操作. 或者可以这样写: 阅读全文
摘要:
概述 最近在学习《深入应用C++11 代码与优化与工程级应用》,我的gcc版本是gcc 4.8.5是支持C++11的,但是我在作者的github上看了一些C++例子,其中有些是C++14的语法,我的gcc版本并不支持,之前安装了ubuntu16.04LTS,该系统的gcc版本是5.3.1这个是支持C 阅读全文
摘要:
概述 最近我们项目有一个需求就是解决客户端播放RTSP视频流花屏的问题,一般来说丢包就会引起花屏,导致客户端花屏的因素又有很多,比如说: 相机到服务器丢包 服务器到客户端丢包 等等。。。 其中服务器到客户端的丢包问题我们已经解决了,那么相机到服务器的丢包问题怎么解决呢?这个问题解决不了的,可以解决的 阅读全文
摘要:
概述 Qt的信号槽机制是Qt的核心机制,按钮点击的响应、线程间通信等都是通过信号槽来实现的,boost里也有信号槽,但和Qt提供的使用接口很不一样,本文主要是用C++11来实现一个简单的信号槽,该信号槽也实现了emit、slots、signals、connect关键字和函数、使用方法和Qt的信号槽基 阅读全文
摘要:
概述 有些时候,我们要求一个程序在系统中只能启动一个实例。比如,Windows自带的播放软件Windows Medea Player在Windows里就只能启动一个实例。原因很简单,如果同时启动几个实例,却播放不同的文件,那么声音和图像就会引起混乱。在设计模式中,就有一个SINGLETON模式。对于 阅读全文
摘要:
Intro 当我们编写服务器代码时,为了让自己的服务器在意外崩溃时能够及时的重启,软件看门狗就显示出它的作用了,该看门狗进程是通过fork一个子进程(业务进程),父进程一旦捕获到了子进程的结束信号就重新再fork一个子进程来实现的,下面将完整代码贴上。 / 该例程讲解Linux软件看门狗的优雅编写方 阅读全文