2016-02-04 ruki
这里为了使代码更加简洁,直接用了transfer来挂接两路流的传输操作。 ```c // 初始化文件输入流 tb_stream_ref_t istream = tb_stream_init_from_url("/home/file.txt"); // 初始化文件输出流 tb_stream_ref_t ostream = tb_stream_init_from_file("/home/file.gz", TB_FILE_MODE_RW | TB_FILE_MODE_CREAT | TB_FILE_MODE_BINARY | TB_FILE_MODE_TRUNC); // 初始化解压缩流,以istream作为输入 继续阅读 »
2016-12-07 ruki
之前介绍过了stackfull的一些服务器使用例子,这里在贴一些使用stackless协程接口实现的server代码。 其实大部分接口,两者都是类似的,仅仅只是前缀的区别:tb_co_xx 和 tb_lo_xx,唯一需要注意的是: * stackless协程尽量不要使用局部变量 * 不要再嵌套的过程里面进行协程挂起等待 文件接收服务器 这个文件服务器的功能很简单,就是不停的接收连接,然后开新协程,进行文件传输。 通过协程,从原始socket写起,也只需要不到100行代码,就可以实现一个高并发的文件服务器。 此处用到了tb_socket_sendf直接对文件句柄操作,发送到socket,内部使用sendfile实现,不 继续阅读 »
2016-08-06 ruki
xmake将依赖库、依赖头文件、依赖类型、依赖接口统一用 option 选项机制进行了封装,更在上一层引入package包的机制,使得添加和检测依赖更加的模块化,简单化。。。 下面通过一个具体实例,来看下xmake的包机制怎么使用。。 假如你现在的工程已经有了两个包:zlib.pkg,polarssl.pkg(如何构建包,后续会详细说明,现在可以参考TBOX依赖包下已有包的例子),你的工程目录结构如下: demo - xmake.lua - src main.c - pkg zlib.pkg polarssl.pkg 那么你可以修改xmake.lua来使用上述的两个依赖包: 继续阅读 »
2016-07-21 ruki
虽然已经一年多没有维护gbox这个图形库项目了,最近确实时间不够用。。。 今年的重点是把xmake彻底正好,至少在架构和大功能(包依赖管理)上,要完全落实下来,后期就是零散的维护和插件功能扩展了。。 tbox我会陆陆续续一直进行一些小规模更新,明年上半年稍微重构一些模块后,就开始重点重新搞gbox了,这才是我一直最想做,也是最喜欢做的项目了 所以我宁愿开发的慢点,也要把它做精,做到最好。。 好了,回归正题,虽然现在gbox还处于早期开发中,并不能用到实际的项目中去,但是里面的一些算法,还是很有参考学习价值的。。 我这两天没事就拿出来分享下,如果有感兴趣的同学,可以直接阅读源码:monotone.c 毕竟这个算法我陆陆续 继续阅读 »
2016-07-24 ruki
之前xmake默认编译windows目标,debug模式下采用的是-Z7编译选项,内置的调试符号信息到obj文件里面 但是这种方式按msdn的文档上说,是属于旧式的调试符号文件格式,所以为了考虑后续的兼容性,xmake修改了默认的调试符号生成规则, 改为默认启用pdb符号文件,并且pdb的方式更为常用。。 这个行为的修改,并不会影响到xmake.lua的设置,如果在这个文件中,设置了启用调试符号: lua set_symbols("debug") 那么,编译debug版本的目标时,就会自动生成pdb文件,以tbox为例: bash $ xmake f -m debug $ xmake 编译完成后,会自动在build 继续阅读 »
2016-07-25 ruki
现在xmake在windows下,也已经支持调试运行了,可以在编译完debug版本的程序后,直接进行调试开发。。 我们继续以tbox工程为例: bash $ xmake f -m debug $ xmake r -d demo 上述命令,先配置了debug模式编译,为了启用pdb调试符号文件的生成,然后自动编译后,调试运行demo程序。。 xmake会在配置的时候,自动检测windows上注册表里面的默认调试器,然后加载我们的目标程序并运行。 一般情况下,加载的是vs自带的vsjitdebugger调试器,当然xmake也支持windbg和ollydbg(做逆向的,这个用的比较多哈。。) 我们试着运行demo中的exc 继续阅读 »
2017-01-08 ruki
In order to better promote TBOOX open source project development, we decided to adopt a more relaxed, more developer-friendly Apache License 2.0 The tbox and xmake projects have updated to new license. If you want to known more, please refer to:Apache License 2.0 继续阅读 »
2017-01-08 ruki
为了更好地促进TBOOX开源项目的发展,我们决定采用更加宽松、对开发者更加友好的Apache License 2.0 目前tbox和xmake已经更新到新的license 详细license说明见:Apache License 2.0 继续阅读 »