从2013-05-18 pm 到 2013-05-25 am, 终于完成了基础库的第一个版本:
我的基础库: common-v1.0
common目录下有目录:
bulid: Makefile和编译生成的objs文件所在的目录
inc: 头文件目录,下一级是工程目录,此工程目录下包含了所有的头文件
src: 实现文件目录,下一级是工程目录,此工程目录下包含了所有的实现文件
lib: 包含linux和windows, windows下包含debug和release,目录包含编译生成的动态库等文件
sln: 包含项目和工程目录 (暂时只有base工程)
release: 包含应用、测试程序需要用到的文件: inc包含头文件,lib包含动态库之类,还有更新日志文件
test: 包含所有的测试工程 (暂时只有base工程的测试工程),里面几乎有所有接口的测试代码
目前所含功能:
1. base_namespace.h: 命名空间的定义文件
2. base_export.h: 动态库导出宏的定义文件
3. base_common.h: 常用头文件集合:
base_namespace.h, base_export.h, base_macro.h
4. base_macro.h: 一些简单宏
5. base_io.h: 标准IO的简单封装宏
6. base_memory.h: new、new[]、delete、delete[]的简单封装宏
7. base_uncopy.h: 不可拷贝类的基类
8. base_exception.h: 简单异常类, 及抛出此异常的宏BASE_THROW()
9. base_string.h: snprintf等函数的跨平台封装: base_snprintf, base_vsnprintf
10. base_hex.h: 十六进制格式编解码(转换)
11. base_base64.h: Base64编解码
12. base_time.h: 时间相关的函数的封装
13. base_locker.h: 简单的线程锁、进程锁、空锁(什么也不做)
14. base_guard.h: 资源守卫, 构造时获取资源, 析构时释放资源
15. base_thread.h: 线程对象
16. base_object_pool.hpp: 简单的对象池类模板 (第二个模板参数为内部锁类型, 默认为空锁)
17. base_byte_stream.h: 网络字节流实现, IBStream输入流, OBStream输出流
18. base_log_types.h: 日志模块配置类型
19. base_log.h: 日志模块的初始化、销毁函数, 及一些日志操作宏
未列出的为被间接引用的头文件
个人感觉至少有两处值得一看的地方: 1. 网络字节流(整数压缩的算法, 微创新); 2. 日志模块(结构与接口)
完成日志模块后, 就不想动了, 信号量、同步的队列什么的理应封装下的, 但最近心情实在不行, 投了两天简历也没个反应, 而且来深圳的第二周居然皮肤过敏......
等一切好起来再说吧