
UtilBox基础组件
曦轩
Im a Software Designer
展开
-
UtilBox基础组件
最近写了一些构建c、c++用的基础组件库,比如基础的log日志、通用数据结构、内部缓存等应用或者工具,拿出来分享(之后还会有java和php的),随想了一个UtilBox的名字(简称ub)。这些基础组件都是平时写程序都会用到的,为了可以复用,就剥离出来成lib了,方便以后统一使用。如果大家有什么觉得基础组件平时用的很多,在互联网公司也有应用,也可以写出来分享哈。原创 2012-08-04 13:34:04 · 1468 阅读 · 0 评论 -
UtilBox(ub)基础组件 -- epoll_server网络事件模型
今天事情比较少,突然在在网上看到了一篇关于网络同步异步IO的帖子,正好想起了前几天分析过的Redis的代码。Redis的代码很精练也很轻巧,基本没有第三方以来的库(最新版本中加入了jemalloc,但已集成在了redis的src里,所以依旧可以直接make),并实现一套轻量型的非阻塞半异步框架-aeEvent(很少有大型互联网后台应用采用全异步框架,一是逻辑和IO都是异步的这样即时性较低,二是编程原创 2012-04-25 21:45:04 · 2294 阅读 · 0 评论 -
UtilBox(ub)基础组件 -- Log日志(1)
文章内容和代码为作者原创,转载请说明 ^_^ 这篇文章主要介绍一下log组件,平时大家调试程序和记录程序异常,这是最常用的。比如调试小程序的正确性,有些同学就在代码里放一堆的printf,可是这样带来的后果就是想去掉这写debug用的printf很麻烦(这个可以用宏来代替,比如类似ASSERT,通过开关来控制)。还有,如果程序写成了daemon,放到后台,printf的作用就没了。所原创 2012-08-04 13:32:03 · 2243 阅读 · 2 评论 -
UtilBox(ub)基础组件 -- EasyCurl 发送http请求(1)
昨天晚上锻炼身体,好久没激烈与动了,爽快!回到家,赶紧把之前写好的curl组件分享出来,EasyCurl其实就是对libcurl的一个封装,libcurl如果没用过的可以百度之。 curl其实很简单理解,socket大家都用过,其实http请求也是个socket短链接,只是通信的字段会按着HTTP字段来组包,而且都是明文的。比如在浏览器里输入www.baidu.com,就能开原创 2012-08-17 14:22:50 · 2398 阅读 · 0 评论 -
UtilBox(ub)基础组件 -- Log日志(2)
文章内容和代码为作者原创,转载请说明 ^_^ 之前的文章把Log的大体设计和框架展示出来了,还有根据时间和大小进行分割,目前实现还不支持direct_io模式。但是接口以留出,之后还会对Log进行一次升级,因为有的业务可能存在日志量很大的问题,所以提供一个ub_log_set_buffer(char* buf,size_t size)的函数,来使用用户的buffer,这样可以类似原创 2012-08-17 13:34:53 · 2055 阅读 · 0 评论 -
UtilBox(ub)基础组件 -- EasyCurl 发送http请求(2)
EasyCurl简单封装了一下libcurl调用,对外的提供抽象化的接口,下面就把源码分享出来,此源码和接口还带进一步完善优化,尤其是一些curl_set_opt()的上层封装。大家可以自己写哈,最后写一个满足自己需求的Curl。 ubplus_curl.h : EasyCurl的类定义和接口,还有一些宏/** ================================原创 2012-08-19 15:40:27 · 2161 阅读 · 0 评论 -
UtilBox(ub)基础组件 -- 并发任务队列Taskqueue/TaskDispatcher (一)
Task dispatcher, 任务分发队列,也可以叫做Taskqueue。之前好多同学看到这篇文章内容是“.....”,我是想做一个标记,想写这篇文章,但是没填内容,看的同学还挺多的,以为我是标题党,这里首先表示一下歉意。下次不会了哈。 1. Taskqueue模型简介 2. Taskqueue的用处和优势 3. Taskqueue原创 2012-09-04 17:46:57 · 2945 阅读 · 0 评论