
boost
伯诚
这个作者很懒,什么都没留下…
展开
-
轻量级序列化库boost serialization
对象序列化是项目中最经常看到的场景,因此实现该功能的库也有很多,如:thrift、protobuf、avro,但我觉得这些库都太过沉重,因为他们还提供了rpc的功能,如果只是单纯做对象序列化,boost serialization是个不错的选择,以下boost serialization简称BS。一、代码目录1.$BOOST_HOME/archive存档方式类目录类型原创 2013-01-31 17:02:30 · 9583 阅读 · 0 评论 -
boost::interprocess 内存映射文件的用法
一、闲聊 今天项目中要读写一个将近40M的文件,发现使用fstream读文件时,预先分配一个40M的缓冲区buffer时,随机性的会申请内存失败,因此查了下相关资料,发现使用内存映射文件可以解决此类读写大文件的问题。内存文件映射其实是内存中分配了一块区域映射到文件所在的物理磁盘上,内存和物理磁盘的数据交换是以页大小处理的,因此在操作过程中,不会将整个文件缓存到内存上,因此使用的内存特别的小,原创 2013-06-29 18:42:56 · 9533 阅读 · 0 评论 -
控制台输出重定向到MFC的view对象里
一、闲扯今天领导心血来潮说服务器的运行界面是一个黑乎乎的控制台,太低端了,看我们能不能把它图形化,至少做成一个窗口有按钮点启动、停止。好吧,领导拍脑袋就叫人干活的事不少,也没有产品规划,也就是让他看的舒服,只能去做了。其中有一个关键性问题,就是原先是往控制台输出的信息,使用mfc图形化之后该往哪输出,工程维护人员肯定还是希望能在图形界面上能够看到这些信息的,因此就涉及到了如何获取到输出控制原创 2013-07-24 17:37:09 · 4289 阅读 · 0 评论 -
boost asio 异步实现tcp通讯
一、前言boost asio可算是一个简单易用,功能又强大可跨平台的C++通讯库,效率也表现的不错,linux环境是epoll实现的,而windows环境是iocp实现的。而tcp通讯是项目当中经常用到通讯方式之一,实现的方法有各式各样,因此总结一套适用于自己项目的方法是很有必要,很可能下一个项目直接套上去就可以用了。二、实现思路1.通讯包数据结构Tag:检查数据包原创 2013-02-04 16:48:06 · 26268 阅读 · 26 评论 -
使用boost::iostreams库压缩和解压数据
今天项目中正好要用到gzip对数据进行压缩,正好查到了boost::iostreams这个库,因此查了相关资料,下面记录下自己对这个库的一些理解吧。iostreams主要有两类东西组成,一个是device,另一个是filter,可以到源码目录下找,iostreams目录下有这两个目录可以找到相关类。device像是一种设备,不能单独使用,要配合普通流stream或stream_bu原创 2013-01-06 17:11:46 · 17561 阅读 · 6 评论