
开源项目学习使用
文章平均质量分 72
_RTFSC
Linux 下 C/C++ 程序员一枚~~
展开
-
Cocos2d-x-3.5 学习 -- 功能/ 文件夹
引擎基本概念 ( base 文件夹 )杂项ATITC 编码 模拟后台运行线性 AsyncTaskPool 类对象管理 Ref RefPtr AutoReleasePool 智能数组ccArray二进制数据块 DataDataVisitorMap各种协议 RGBBlend Texture Label 触摸屏 Touch 随机数 random 编码 UTF原创 2015-04-21 14:46:36 · 598 阅读 · 0 评论 -
Linux Epool 使用学习笔记
头文件#include <sys/epool.h>接口和结构体/* Creates an epoll instance. Returns an fd for the new instance. The "size" parameter is a hint specifying the number of file descriptors to be associated with th原创 2015-11-17 14:07:59 · 1434 阅读 · 0 评论 -
Skynet 源码学习 -- 服务ID skynet_handle.c , 服务模块skynet_module.c
服务ID skynet_handle.cIDID的定义是一个 uint32_t 。ID在一个独立的进程中是唯一的。ID在多个Harbor组成的Skynet网中是唯一的。ID的高8位是harbor ID 。ID的底24为是此服务模块在这个进程中的唯一id。每个ID对应一个独立的服务模块,拥有在此进程中唯一的服务名字。服务ID管理者handle_storage 源码struct handl原创 2015-11-17 18:29:22 · 1675 阅读 · 0 评论 -
Skynet 源码学习 -- Socket Server 和 Skynet_socket
异步IO选用底层接口Linux –> epool其他Unix变种 –> kevent 宏选择如下 :#ifdef __linux__#include "socket_epoll.h"#endif#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined (__NetBSD__)#in原创 2015-11-18 17:26:41 · 2897 阅读 · 1 评论 -
log4cplus 学习速记
Log需求统一的 、信息齐全的log可以方便配置Log的打印等级可以更加细粒度的控制各个模块的Log等级可以将Log输出到希望的地方。 …log4cplus基本模块各解决了什么问题logger模块·基本逻辑一个应用程序可以使用多个Logger 。Logger是我们使用log4cplus打印LOG的句柄。Logger使用setLogger接口设置打印LOG的最低等级。 NOT_SE原创 2015-11-19 16:55:10 · 1380 阅读 · 0 评论 -
log4cplus 使用方法 配置
目录[-]1. Log4cplus简介2. 安装方法2.1. linux2.2. win3. 主要类说明4. 基本使用4.1. 基本步骤4.2. 使用示例4.2.1. 例1-标准使用4.2.2. 例2-简洁使用4.2.3. 例3-输出日志到控制台4.2转载 2015-11-03 14:15:28 · 1360 阅读 · 0 评论 -
boost Data & Time 笔记
简介规范boost基于公历(儒略历)和 POSIX 时间规范编写了boost::gregorian 和boost::posix_time 两部分代码。天 以及天以上的时间概念( 周 、 月 、 年 ) 属于Data* , 之下的概念(小时 、 分 、 秒、 毫秒 。。。 )属于Time* 基本概念 :时刻 : 唯一,明确的时间点 。> boost::gregorian::date > boo原创 2015-12-20 15:02:17 · 1194 阅读 · 2 评论 -
boost property tree 解析Json ini
简介Property Tree(属性树)提供这样一种数据结构 : 存储任意深度嵌套的, 由某种key索引的, 数据树 。每个树上的节点保存它自己的value加上一个它的子节点的key和节点的有序链表。 Property Tree允许通过多个key的连接(表示节点的路径)很方便的访问树上的每一个节点。 另外,库(boost::property_tree) 提供了解析器, 可以将其他利于表示为原创 2015-09-09 19:39:39 · 1731 阅读 · 0 评论 -
UnitTest++ 学习笔记
简介最近没事 就看了下 unittestpp 的源码, 记录下一点东西和一个好的博客 . 笔记 自己做的UnitTestpp 的XML 图: 主要架构 Reporter 部分的细致分类关于如何使用 unittestpp 的一个好博客 :http://www.ultimatepp.org/srcdocUnitTest++UnitTest++UnitTestpp$de-de.html#####原创 2015-12-26 16:43:26 · 1503 阅读 · 0 评论 -
[翻译] Protobuf 语言指南 ( proto 2 )
定义一个消息首先来看一个简单的例子,定义一个搜索请求的消息格式,每个消息包含一个请求字符串,你感兴趣的页数和每页的结果数。下面是在.proto 文件中定义的消息。message SearchRequest { required string query = 1; optional int32 page_number = 2; optional int32 result_per_原创 2016-02-16 16:14:11 · 14966 阅读 · 6 评论 -
boost::asio::coroutine 文档翻译 + 源码解析
文档地址 http://www.boost.org/doc/libs/1_60_0/doc/html/boost_asio/reference/coroutine.html文档翻译协程提供实现不需要栈的协程的支持class coroutine成员函数 函数名 描述 coroutine 构造成为初始化状态 is_child 如果是一个fork子协程的话返回true is原创 2016-02-23 14:24:11 · 5658 阅读 · 0 评论 -
log4go 源码剖析
log4go 源码下载https://github.com/alecthomas/log4go.git 源码目录...config.goexamples filelog.go.git.gitignoreLICENSElog4go.golog4go_test.gopattlog.goREADMEsocklog.gotermlog.gowrapper.go源码剖析对问题的抽象原创 2016-04-05 16:01:25 · 4132 阅读 · 0 评论 -
cron表达式解析 + robfig/cron 源码剖析
robfiig/cron 源码剖析项目信息下载地址https://github.com/robfig/cron.git文件目录讲解constantdelay.go #一个最简单的秒级别定时系统。与cron无关constantdelay_test.go #测试cron.go #Cron系统。管理一系列的cron定时任务(Schedul原创 2016-04-07 11:39:06 · 14478 阅读 · 8 评论 -
Skynet 源码学习 -- 二级消息队列,Worker 工作线程池, Monitor 。
二级链表构造简介Skynet 为了消息处理实现了一个二级链表:如下图所示 , 第一级链表是一个基于动态开辟节点实现的链表, 每一个节点对应一个服务单元,第二级链表是一个由数组实现的链表(需要时会以2倍的规模扩容),存储的是这个服务单元的所有待处理消息。 图示:功能点每个节点对应一个独立的服务单元。加锁 一级链表自带自旋锁,但是仅仅在Push和Pop一个节点的时候加锁即可二级链表同样自带自旋原创 2015-11-16 17:54:29 · 1808 阅读 · 0 评论 -
boost -- program_options 学习笔记
简介program_options 是一个实现了类似 optarg 但是比 optargs 功能强大的 boost库. 使用它来解析命令行参数或者配置文件都是很简单的.官方教程 http://www.boost.org/doc/libs/1_57_0/doc/html/program_options.html依赖安装boost库, 至少编译 program_options 部分.添加incl原创 2015-02-27 14:29:03 · 3401 阅读 · 0 评论 -
boost -- signals 教程翻译
教程如何阅读教程兼容性提示Hello, World! (初级)使用多个槽向槽/从槽中 传递数值管理连接的槽例子: Document-View链接库How to Read this TutorialThis tutorial is not meant to be read linearly. Its top-levels翻译 2015-03-03 13:51:32 · 1061 阅读 · 0 评论 -
thpool 线程工作池
工作原理创建一个线程池 ( 线程数组 ) , 一个基于链表的任务队列, 线程池中的线程从任务队列中循环领取任务并执行. 使用介绍开辟固定大小的线程池 : thpool_t* threadpool; threadpool=thpool_init(4); 定义工作 ( 以简单输出为例) : void task1(){ print原创 2015-05-22 10:49:46 · 1729 阅读 · 0 评论 -
Boost::asio 学习笔记
简介boost asio 是个一由C++编写的、 跨平台的、 使用现代化C++的、 提供了统一的异步模型的网络和底层I/O 开发库。 Boost.Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent原创 2015-08-13 15:25:01 · 1089 阅读 · 0 评论 -
HelloWorld by Thrift
Thrift 是什么 The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and原创 2015-07-09 11:06:56 · 529 阅读 · 0 评论 -
Jsoncpp 学习笔记
相关信息源码网址 github : https://github.com/open-source-parsers/jsoncppGit remote https://github.com/open-source-parsers/jsoncpp.git优质学习博客 http://www.cnblogs.com/kex1n/archive/2011/12原创 2015-04-30 15:10:03 · 923 阅读 · 0 评论 -
Boost / C++11 功能速记
慢慢来吧~正则表达式 boost::regex std::regex线程 boost::thread std::thread时间 boost::chrono std::chronostring 操作 boost/algorithm/*slot / signal 编程机制 boost::signal boost::signal2原创 2015-03-13 13:12:03 · 583 阅读 · 0 评论 -
boost 线程同步速记
参考资料: http://www.boost.org/doc/libs/1_57_0/doc/html/thread/synchronization.html互斥量 boost::mutex 获取释放 , 尝试获取boost::mutex m_lock;m_lock.lock();/* do somthing that need thread safe */m_lock.un原创 2015-03-09 13:47:39 · 568 阅读 · 0 评论 -
boost -- regex 学习笔记
官方当前文档 http://www.boost.org/doc/libs/1_57_0/libs/regex/doc/html/index.html头文件 boost/regex.hpp链接库 -lboost_regex命名空间 boost::regex请先安装好boost库, 添加boost的include 和 lib 路径.例子```C++#include <boost原创 2015-02-26 15:51:54 · 637 阅读 · 0 评论 -
UnitTestpp 笔记
最近没事 就看了下 unittestpp 的源码, 记录下一点东西和一个好的博客 .笔记 自己做的UnitTestpp 的XML 图: 1. 主要架构2. Reporter 部分的细致分类关于如何使用 unittestpp 的一个好博客 :http://www.ultimatepp.org/src原创 2015-01-26 14:51:23 · 644 阅读 · 0 评论 -
Cocos2d-x 异步加载纹理学习
数据存储单例类 CCTextureCache 有一个字典m_pTextures , 其中key是文件名, 数据是cocos2d-x的纹理类指针CCTexture2D* .异步加载数据队列保存 AsyncStruct*(需要加载文件和回调信息)的 s_pAsyncStructQueue 队列.保存ImageInfo*(加载后图片信息) 的s_pImageQueue队列 .异步加载接口 addIm原创 2015-05-29 09:45:12 · 854 阅读 · 0 评论 -
Linux 下 Boost 配置 . bootstrap.sh , b2 ,bcp 使用.
Linux 下 Boost 配置 . bootstrap.sh , b2 ,bcp 使用.下载官方链接 http://sourceforge.net/projects/boost/files/你会下载到一个70+M 的压缩包 . 我下载的是版本 1.57.0 解压后放置到你的工作目录 , 比如 ~/test/boost编译安装官方链接 http://www.boost.org/d原创 2015-02-26 13:46:54 · 8123 阅读 · 0 评论 -
从开源项目学到的编程技巧
最直接的学习方式就是RTFSC1. OOC 之 OVERRIDE --- 使用函数指针实现重载和代码重用机制.假设我需要编写库接口 do_something 但是我只能明确这个接口的通用功能, 可能不同工程会有些自己的定制需求. 于是我就这样实现: void (*do_something)(void);void do_something_default原创 2015-02-02 11:20:20 · 691 阅读 · 0 评论 -
cocos2d-x-3.5 中new 出来的对象大部分是如何处理的
以下来自对 cocos2d-x-3.5 的源码分析, 今天重点研究它的动态开辟的对象释放问题.涉及以下3个基本的class手动引用计数类 class Ref Ref 是 cocos2d 中很大一部分类的祖先类 . Ref 支持以下三个接口: retain() 累加引用计数 , 当我们将指针复制给新的指针的时候, 请自觉手动调用! release() 指针释放无用或者即将挪作它用之前,自己自原创 2015-04-15 15:25:15 · 1108 阅读 · 0 评论 -
google protobuf 反射机制学习笔记
何为反射机制基本概念指程序可以访问、检测和修改它本身状态或行为的一种能力程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。我(c++程序员)关注的问题如何在程序运行过程中通过类型名字(一个字符串,合法但是内容在编译期间未知,比如是在原创 2016-09-06 17:50:22 · 23149 阅读 · 4 评论